EventBridge 用 AWS AppSync リゾルバーのマッピングテンプレートリファレンス - AWS AppSync

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)

InternalExceptionsTimeouts などの PutEvents 操作の実行中に発生したエラーは、$ctx.error に表示されます。EventBridge の一般的なエラーのリストについては、EventBridge の一般的なエラーのリファレンスを参照してください。

result は、次の形式になります。

{ "Entries" [ { "ErrorCode" : String, "ErrorMessage" : String, "EventId" : String } ], "FailedEntryCount" : number }
  • エントリ

    取り込まれたイベントは、成功と失敗の両方の結果になります。取り込みが成功すると、エントリには EventID が含まれます。それ以外の場合は、ErrorCodeErrorMessage を使用してエントリの問題を特定できます。

    各レコードの応答要素のインデックスは、リクエスト配列のインデックスと同じです。

  • 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" : [] }