This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.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) // ... }