EventBridge 用 AWS AppSync リゾルバーのマッピングテンプレートリファレンス
注記
現在、主に APPSYNC_JS ランタイムとそのドキュメントをサポートしています。こちらにある APPSYNC_JS ランタイムとそのガイドの使用をご検討ください。
EventBridge データソースで使用される AWS AppSync リゾルバーマッピングテンプレートを使用すると、Amazon EventBridge バスにカスタムイベントを送信できます。
リクエストマッピングテンプレート
PutEvents
リクエストマッピングテンプレートを使用すると、複数のカスタムイベントを EventBridge イベントバスに送信できます。 マッピングドキュメントの構造は次のとおりです。
{ "version" : "2018-05-29", "operation" : "PutEvents", "events" : [{}] }
次の例は、EventBridge のリクエストマッピングテンプレートの例です。
{ "version": "2018-05-29", "operation": "PutEvents", "events": [{ "source": "com.mycompany.myapp", "detail": { "key1" : "value1", "key2" : "value2" }, "detailType": "myDetailType1" }, { "source": "com.mycompany.myapp", "detail": { "key3" : "value3", "key4" : "value4" }, "detailType": "myDetailType2", "resources" : ["Resource1", "Resource2"], "time" : "2023-01-01T00:30:00.000Z" } ] }
レスポンスマッピングテンプレート
PutEvents
操作が成功すると、EventBridge からの応答が $ctx.result
に含まれます。
#if($ctx.error) $util.error($ctx.error.message, $ctx.error.type, $ctx.result) #end $util.toJson($ctx.result)
InternalExceptions
や Timeouts
などの PutEvents
操作の実行中に発生したエラーは、$ctx.error
に表示されます。EventBridge の一般的なエラーのリストについては、EventBridge の一般的なエラーのリファレンスを参照してください。
result
は、次の形式になります。
{ "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
フィールドはテンプレートが使用するバージョンを定義します。このフィールドは必須です。値2018-05-29
は、EventBridge マッピングテンプレートでサポートされている唯一のバージョンです。 -
操作
サポートされている操作は
PutEvents
のみです。この操作により、カスタムイベントをイベントバスに追加できます。 -
イベント
イベントバスに追加されるイベントの配列。この配列には 1~10 個の項目が割り当てられている必要があります。
Event
オブジェクトは、以下のフィールドを持つ有効な JSON オブジェクトです。-
"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" : [] }