

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

# 教學課程：使用 EventBridge 輸入轉換器，依排程將事件資訊傳遞至 AWS Batch 目標
<a name="cwe-input-transformer"></a>

您可以使用 EventBridge 輸入轉換器，在任務提交 AWS Batch 中將事件資訊傳遞至 。如果您因為其他 AWS 事件資訊而叫用任務，這會特別重要。其中一個範例是物件上傳至 Amazon S3 儲存貯體。您也可以將任務定義與容器命令中的參數替換值搭配使用。EventBridge 輸入轉換器可以根據事件資料提供參數值。

然後，您會建立 AWS Batch 事件目標，從啟動該目標的事件剖析資訊，並將其轉換為`parameters`物件。當任務執行時，來自觸發事件的參數會傳遞至任務容器的 命令。

**注意**  
在此案例中，所有 AWS 資源 （例如 Amazon S3 儲存貯體、EventBridge 規則和 CloudTrail 日誌） 都必須位於相同的區域。

**建立使用輸入轉換器 AWS Batch 的目標**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 從導覽列中，選取要 AWS 區域 使用的 。

1. 在導覽窗格中，選擇**規則**。

1. 選擇**建立規則**。

1. 針對**名稱**，指定運算環境的唯一名稱。名稱最多可包含 64 個字元。可以包含大小寫字母、數字、連字號 (-) 和底線 (\$1)。
**注意**  
規則不能與相同 AWS 區域 和相同事件匯流排上的另一個規則具有相同的名稱。

1. (選用) 對於**描述**，請輸入規則的描述。

1. 針對**事件匯流排**，選擇要與此規則建立關聯的事件匯流排。如果您想要此規則匹配來自您的帳戶的事件，請選取**預設值**。當您帳戶中 AWS 服務 的 發出事件時，一律會前往您帳戶的預設事件匯流排。

1. （選用） 如果您不想立即執行規則，請關閉所選匯流排上的規則。

1. 針對**規則類型**，選擇**排程**。

1. 選擇**繼續以建立規則**或**下一步**。

1. 針對 **Schedule pattern** (排程模式)，執行下列其中一項動作：
   + 選擇**在特定時間執行的精細排程，例如上午 8:00 每月第一個星期一的 PST**，然後輸入 Cron 表達式。如需詳細資訊，請參閱《*Amazon EventBridge 使用者指南*》中的 [Cron Expressions](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html#eb-cron-expressions)。
   + **選擇以一般速率執行的排程，例如每 10 分鐘。**然後輸入速率表達式。

1. 選擇**下一步**。

1. 對於 **Target types** (目標類型)，選擇 **AWS 服務**。

1. 針對**選取目標**，選擇**批次任務佇列**。然後，設定下列項目：
   + **Job queue** (任務佇列)：輸入任務佇列的 Amazon Resource Name (ARN) 以排程任務。
   + **Job definition** (任務定義)：輸入用於任務之任務定義的名稱，及其修訂版或完整 ARN。
   + **Job name (任務名稱)**：輸入任務的名稱。
   + **Array size (陣列大小)**：(選擇性) 輸入任務要執行多個副本的陣列大小。如需詳細資訊，請參閱[陣列任務](array_jobs.md)。
   + **Job attempts (任務嘗試)**：(選擇性) 輸入任務失敗時的重試次數。如需詳細資訊，請參閱[自動化任務重試](job_retries.md)。

1. 對於 **Batch job queue** (批次任務佇列) 目標類型而言，EventBridge 需要許可才能將事件傳送到目標。EventBridge 可建立執行您的規則所需的 IAM 角色。執行以下任意一項：
   + 若要自動建立 IAM 角色，請選擇**為此特定資源建立新角色**。
   + 若要使用您已建立的 IAM 角色，請選擇**使用現有角色**。

1. (選用) 展開 **Additional settings (其他設定)**。

1. 在 **Additional settings** (其他設定) 區段中，針對 **Configure target input** (設定目標輸入)，選擇 **Input Transformer** (輸入轉換器)。

1. 選擇**設定輸入轉換器**。

1. （選用） 對於**範例事件**：

   1. 針對**範例事件類型**，選擇**AWS 事件**。

   1. 針對**範例事件**，選擇**批次任務狀態變更**。

1. 在 **Target input transformer** (目標輸入轉換器) 區段中，針對 **Input path** (輸入路徑)，指定透過觸發事件剖析的值。例如，若要剖析**批次任務狀態變更**事件，請使用下列 JSON 格式。

   ```
   {
       "instance": "$.detail.jobId",
       "state": "$.detail.status"
   }
   ```

1. 在**範本**中，輸入下列內容。

   ```
   {
       "instance": <jobId> ,
       "status": <status>
   }
   ```

1. 選擇**確認**。

1. 針對**事件的最長存**留期，請指定未處理事件保留多久的時間間隔。

1. 針對**重試嘗試**，輸入事件重試的次數。

1. 針對**無效字母佇列，**選擇未處理事件處理方式的選項。如有必要，請指定要用作無效字母佇列的 Amazon SQS 佇列。

1. （選用） 選擇**新增另一個目標**以新增其他目標。

1. 選擇**下一步**。

1. （選用） 針對**標籤**，選擇**新增標籤**以新增資源標籤。如需詳細資訊，請參閱《Amazon EventBridge 使用者指南》**中的 [Amazon EventBridge 標籤](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html)。

1. 選擇**下一步**。

1. 對於**檢閱和建立**，請檢閱組態步驟。如需變更，請選擇 **Edit** (編輯)。完成後，請選擇**建立規則**。