11.6.3.2. 클라우드 이벤트에서 트리거한 함수
들어오는 클라우드 이벤트가 수신되면 CloudEvents Go SDK 에서 이벤트를 호출합니다. 호출은 이벤트
유형을 매개 변수로 사용합니다.
지원되는 함수 서명 목록에 표시된 대로 Go Context 를 함수 계약의 선택적 매개변수로 활용할 수 있습니다.
지원되는 함수 서명
Handle() Handle() error Handle(context.Context) Handle(context.Context) error Handle(cloudevents.Event) Handle(cloudevents.Event) error Handle(context.Context, cloudevents.Event) Handle(context.Context, cloudevents.Event) error Handle(cloudevents.Event) *cloudevents.Event Handle(cloudevents.Event) (*cloudevents.Event, error) Handle(context.Context, cloudevents.Event) *cloudevents.Event Handle(context.Context, cloudevents.Event) (*cloudevents.Event, error)
11.6.3.2.1. CloudEvent 트리거 예
데이터 속성에 JSON 문자열이 포함된 클라우드 이벤트가 수신됩니다.
{ "customerId": "0123456", "productId": "6543210" }
이 데이터에 액세스하려면 클라우드 이벤트 데이터에서 속성을 매핑하는 구조를 정의하고 들어오는 이벤트에서 데이터를 검색해야 합니다. 다음 예제에서는 Purchase
구조를 사용합니다.
type Purchase struct { CustomerId string `json:"customerId"` ProductId string `json:"productId"` } func Handle(ctx context.Context, event cloudevents.Event) (err error) { purchase := &Purchase{} if err = event.DataAs(purchase); err != nil { fmt.Fprintf(os.Stderr, "failed to parse incoming CloudEvent %s\n", err) return } // ... }
또는 Go encoding/json
패키지를 사용하여 바이트 배열 형식의 JSON으로 클라우드 이벤트에 직접 액세스할 수 있습니다.
func Handle(ctx context.Context, event cloudevents.Event) { bytes, err := json.Marshal(event) // ... }