

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

# 在 EventBridge 中建立規則時設定輸入轉換器
<a name="eb-transform-input-rule"></a>

作爲建立規則的一部分，您可以指定 EventBridge 的輸入轉換器，以便在將這些事件傳送至指定目標之前處理相符事件。您可以為 AWS 服務或 API 目的地的目標設定輸入轉換器。

**建立目標輸入轉換器做為規則的一部分**

1. 請遵循建立規則的步驟，如 [在 Amazon EventBridge 中建立規則](eb-create-rule-visual.md) 中所述。

1. 在**步驟 3 - 選取目標**中，展開**其他設定**。

1. 針對**設定目標輸入**，從下拉式清單中選擇**輸入轉換器**。

   按一下**設定輸入轉換器**。

   EventBridge 會顯示**設定輸入轉換器**對話方塊。

1. 在**範例事件**區段中，選擇您要測試事件模式的**範例事件類型**。您可以選擇 AWS 事件、合作夥伴事件，或輸入您自己的自訂事件。

------
#### [ AWS events ]

   從支援 AWS 服務發出的事件中選取。

   1. 選取 **AWS 事件**。

   1. 在**範例事件**下，選擇所需的 AWS 事件。事件會依 AWS 服務組織。

      當您選取事件時，EventBridge 會填入範例事件。

      例如，如果您選擇 **S3 物件已建立**，EventBridge 會顯示 S3 物件建立事件的範例。

   1. (選用) 您也可以選取**複製**，將範例事件複製到裝置的剪貼簿。

------
#### [ Partner events ]

   從支援 EventBridge 的第三方服務 (例如 Salesforce) 所發出的事件中選取。

   1. 選取 **EventBridge 合作夥伴事件**。

   1. 在**範例事件**下，選擇所需的合作夥伴事件。事件由合作夥伴進行組織。

      當您選取事件時，EventBridge 會填入範例事件。

   1. (選用) 您也可以選取**複製**，將範例事件複製到裝置的剪貼簿。

------
#### [ Enter your own ]

   以 JSON 文字輸入您自己的事件。

   1. 選取**輸入您自己的**。

   1. EventBridge 會以必要事件屬性的範本填入範例事件。

   1. 視需要編輯並新增至範例事件。範例事件必須是有效的 JSON。

   1. (選用) 您也可以選擇下列任一選項：
      + **複製**：將範例事件複製到裝置的剪貼簿。
      + **美化**：透過新增換行符號、定位鍵和空格鍵，讓 JSON 文字更易於閱讀。

------

1. (選用) 展開**範例輸入路徑、範本和輸出**區段，以查看下列範例：
   + 如何使用 JSON 路徑定義代表事件資料的變數
   + 如何在輸入轉換器模板中使用這些變量
   + EventBridge 傳送至目標的結果輸出

   如需輸入轉換的詳細範例，請參閱 [輸入轉換範例](eb-transform-target-input.md#eb-transform-input-examples)。

1. 在**目標輸入轉換器**區段中，定義要在輸入範本中使用的任何變數。

   使用 JSON 路徑來參考原始事件來源中值的變數。然後，您可以在輸入範本中參考這些變數，以便在 EventBridge 傳遞給目標的轉換事件中包含來自原始來源事件的資料。您最多可定義 100 個變數。輸入轉換器必須是有效的 JSON。

   例如，假設您已選擇 AWS 事件 **S3 Object Created** 作為此輸入轉換器的範例事件。然後，您可以定義在模板中使用的以下變量：

   ```
   {
     "requester": "$.detail.requester",
     "key": "$.detail.object.key",
     "bucket": "$.detail.bucket.name"
   }
   ```

   (選用) 您也可以選擇**複製**，將輸入轉換器複製到裝置的剪貼簿。

1. 在**範本**區段中，撰寫您要使用的範本來決定哪些 EventBridge 傳遞至目標。

   您可以使用 JSON、字符串、靜態信息、您定義的變量以及保留變量。如需輸入轉換的詳細範例，請參閱 [輸入轉換範例](eb-transform-target-input.md#eb-transform-input-examples)。

   例如，假設您已經在上一個範例中定義了變數。然後，您可以編寫以下模板，該模板引用這些變量以及保留變量和靜態信息。

   ```
   {
       "message": "<requester> has created the object \"<key>\" in the bucket \"<bucket>\"",
       "RuleName": <aws.events.rule-name>,
       "ruleArn" : <aws.events.rule-arn>,
       "Transformed": "Yes"
   }
   ```

   (選用) 您也可以選擇**複製**，將範本複製到裝置的剪貼簿。

1. 若要測試範本，請選取**產生輸出**。

   EventBridge 會根據輸入範本處理範例事件，並在**輸出**下顯示產生的轉換輸出。這是 EventBridge 將傳遞給目標以取代原始來源事件的資訊。

   上述範例輸入範本所產生的輸出如下：

   ```
   {
       "message": "123456789012 has created the object "example-key" in the bucket "amzn-s3-demo-bucket"",
       "RuleName": rule-name,
       "ruleArn" : arn:aws:events:us-east-1:123456789012:rule/rule-name,
       "Transformed": "Yes"
   }
   ```

   (選用) 您也可以選擇**複製**，將產生的輸出複製到裝置的剪貼簿。

1. 選取**確認**。

1. 請遵循建立規則的其餘步驟，如 [在 Amazon EventBridge 中建立規則](eb-create-rule-visual.md) 中所述。