翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS AppSync JavaScript EventBridge データソースのリゾルバー関数リファレンス
EventBridge データソースで使用される AWS AppSync リゾルバー関数のリクエストとレスポンスにより、Amazon EventBridge バスにカスタムイベントを送信できます。
リクエスト
リクエストハンドラーを使用すると、複数のカスタムイベントを EventBridge イベントバスに送信できます。
export function request(ctx) { return { "operation" : "PutEvents", "events" : [{}] } }
EventBridge PutEvents
リクエストには次のタイプ定義があります。
type PutEventsRequest = { operation: 'PutEvents' events: { source: string detail: { [key: string]: any } detailType: string resources?: string[] time?: string // RFC3339 Timestamp format }[] }
レスポンス
PutEvents
オペレーションが成功すると、 からのレスポンス EventBridge が に含まれますctx.result
。
export function response(ctx) { if(ctx.error) util.error(ctx.error.message, ctx.error.type, ctx.result) else return ctx.result }
InternalExceptions
や Timeouts
などの PutEvents
操作の実行中に発生したエラーは、ctx.error
に表示されます。 EventBridgeの一般的なエラーのリストについては、EventBridge 「一般的なエラーリファレンス」を参照してください。
result
には以下のタイプ定義があります。
type PutEventsResult = { Entries: { ErrorCode: string ErrorMessage: string EventId: string }[] FailedEntryCount: number }
-
エントリ
取り込まれたイベントは、成功と失敗の両方の結果になります。取り込みが成功すると、エントリには
EventID
が含まれます。それ以外の場合は、ErrorCode
とErrorMessage
を使用してエントリの問題を特定できます。各レコードの応答要素のインデックスは、リクエスト配列のインデックスと同じです。
-
FailedEntryCount
失敗したエントリの数。この値は整数として表されます。
のレスポンスの詳細についてはPutEvents
、「」を参照してくださいPutEvents。
サンプルレスポンスの例: 1
次の例は、2 つのイベントが成功する PutEvents
操作です。
{ "Entries" : [ { "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860" }, { "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82" } ], "FailedEntryCount" : 0 }
サンプルレスポンスの例: 2
次の例は、3 つのイベント (2 つの成功、1 つの失敗) がある PutEvents
操作です。
{ "Entries" : [ { "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860" }, { "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82" }, { "ErrorCode" : "SampleErrorCode", "ErrorMessage" : "Sample Error Message" } ], "FailedEntryCount" : 1 }
PutEvents
フィールド
PutEvents
には、次のマッピングテンプレートフィールドが含まれています。
-
バージョン
すべてのリクエストマッピングテンプレートに共通で、
version
フィールドはテンプレートが使用するバージョンを定義します。このフィールドは必須です。この値は、 EventBridge マッピングテンプレートでサポートされている唯一のバージョン2018-05-29
です。 -
操作
サポートされている操作は
PutEvents
のみです。この操作により、カスタムイベントをイベントバスに追加できます。 -
イベント
イベントバスに追加されるイベントの配列。この配列には 1~10 個の項目が割り当てられている必要があります。
Event
オブジェクトには以下のフィールドがあります。-
"source"
: イベントのソースを識別する文字列。 -
"detail"
: イベントに関する情報をアタッチするために使用できるJSONオブジェクト。このフィールドは空のマップ ({ }
) でもかまいません。 -
"detailType
: イベントの種類を識別する文字列。 -
"resources"
: イベントに関与するリソースを識別する文字列のJSON配列。このフィールドは、空白の配列でもかまいません。 -
"time"
: 文字列として提供されるイベントのタイムスタンプ。これはRFC3339タイムスタンプ形式に従う必要があります。
-
以下のスニペットは有効な Event
オブジェクトの例です。
例 1
{ "source" : "source1", "detail" : { "key1" : [1,2,3,4], "key2" : "strval" }, "detailType" : "sampleDetailType", "resources" : ["Resouce1", "Resource2"], "time" : "2022-01-10T05:00:10Z" }
例 2
{ "source" : "source1", "detail" : {}, "detailType" : "sampleDetailType" }
例 3
{ "source" : "source1", "detail" : { "key1" : 1200 }, "detailType" : "sampleDetailType", "resources" : [] }