EventBridge 的AWS AppSync 解析程式映射範本參考 - AWS AppSync GraphQL

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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或 等PutEvents操作時發生的錯誤Timeouts將出現在 中$ctx.error。如需 EventBridge 常見錯誤的清單,請參閱 EventBridge 常見錯誤參考

result 將採用下列格式:

{ "Entries" [ { "ErrorCode" : String, "ErrorMessage" : String, "EventId" : String } ], "FailedEntryCount" : number }
  • 項目

    擷取的事件結果成功和失敗。如果擷取成功,項目EventID中會有 。否則,您可以使用 ErrorCodeErrorMessage 來識別項目的問題。

    對於每個記錄,回應元素的索引與請求陣列中的索引相同。

  • FailedEntryCount

    失敗項目的數量。此值以整數表示。

如需 回應的詳細資訊PutEvents,請參閱 PutEvents

範例回應 1

下列範例是具有兩個成功事件PutEvents的操作:

{ "Entries" : [ { "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860" }, { "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82" } ], "FailedEntryCount" : 0 }

範例回應 2

下列範例是具有三個事件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" : [] }