

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

# EventBridge 的AWS AppSync 解析程式映射範本參考
<a name="resolver-mapping-template-reference-eventbridge"></a>

**注意**  
我們現在主要支援 APPSYNC\$1JS 執行期及其文件。請考慮[在此處](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-js-version.html)使用 APPSYNC\$1JS 執行期及其指南。

與 EventBridge 資料來源搭配使用的 AWS AppSync 解析程式映射範本可讓您將自訂事件傳送至 Amazon EventBridge 匯流排。

## 請求映射範本
<a name="request-mapping-template"></a>

`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"
    }
    
    ]
}
```

## 回應映射範本
<a name="response-mapping-template"></a>

如果`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 常見錯誤參考](https://docs.aws.amazon.com/eventbridge/latest/APIReference/CommonErrors.html)。

`result` 將採用下列格式：

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

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

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

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

如需 回應的詳細資訊`PutEvents`，請參閱 [PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html#API_PutEvents_ResponseElements)。

**範例回應 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` 欄位
<a name="putevents-field"></a>

`PutEvents` 包含下列映射範本欄位：
+ **版本**

  在所有請求映射範本中， `version` 欄位會定義範本使用的版本。此欄位為必填。此值`2018-05-29`是 EventBridge 映射範本唯一支援的版本。
+ **操作**

  唯一支援的操作是 `PutEvents`。此操作可讓您將自訂事件新增至事件匯流排。
+ **事件**

  將新增至事件匯流排的事件陣列。此陣列的配置應為 1 - 10 個項目。

  `Event` 物件是有效的 JSON 物件，具有下列欄位：
  + `"source"`：定義事件來源的字串。
  + `"detail"`：您可以用來連接事件相關資訊的 JSON 物件。此欄位可以是空的映射 `{ }` ()。
  + `"detailType`：識別事件類型的字串。
  + `"resources"`：可識別事件中所涉及資源的字串 JSON 陣列。此欄位可以是空陣列。
  + `"time"`：以字串提供的事件時間戳記。這應該遵循 [RFC3339](https://www.rfc-editor.org/rfc/rfc3339.txt) 時間戳記格式。

以下程式碼片段是一些有效`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" : []
}
```