AWS AppSync JavaScript EventBridge データソースのリゾルバー関数リファレンス - AWS AppSync

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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 }

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

result には以下のタイプ定義があります。

type PutEventsResult = { 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 フィールドはテンプレートが使用するバージョンを定義します。このフィールドは必須です。この値は、 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" : [] }