AWS Batch 作為 EventBridge 目標的工作 - AWS Batch

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

AWS Batch 作為 EventBridge 目標的工作

亞馬遜 EventBridge提供近乎即時的系統事件串流,用於描述 Amazon Web 服務資源中的變更。通常, AWS Batch 在 Amazon 彈性容器服務上,Amazon Elastic Kubernetes Service 和 AWS Fargate 任務可作為目標使用。 EventBridge 使用簡單的規則,您可以匹配事件並提交 AWS Batch 作業以響應它們。如需詳細資訊,請參閱什麼是 EventBridge?Amazon 用 EventBridge 戶指南

您也可以使用 EventBridge 來排程使用cron或評估運算式在特定時間叫用的自動動作。如需詳細資訊,請參閱 Amazon EventBridge 使用者指南中的建立按排程執行的 Amazon EventBridge 規則

有關如何建立在事件符合事件模式時執行的規則的詳細資訊,請參閱 Amazon EventBridge 使用者指南中的建立對事件做出反應的 Amazon EventBridge 規則

作為 EventBridge 目標的 AWS Batch 工作常見使用案例包括下列使用案例:

  • 排定的工作會以固定的時間間隔執行。例如,只有在 Amazon EC2 競價型cron執行個體較便宜的情況下,才會在低使用時間內執行任務。

  • AWS Batch 工作會執行以回應已登入的 API 作業 CloudTrail。例如,每當物件上傳到指定的 Amazon S3 儲存貯體時,就會提交任務。每次發生這種情況時, EventBridge 輸入轉換器都會將對象的存儲桶和密鑰名稱傳遞給 AWS Batch 參數。

    注意

    在這個案例中,所有相關 AWS 資源都必須位於相同的區域中。這包括 Amazon S3 儲存貯體、 EventBridge 規則和 CloudTrail 日誌等資源。

在您可以提交具有 EventBridge 規則和目標的 AWS Batch 工作之前, EventBridge 服務需要數個權限才能執行 AWS Batch 工作。在將 AWS Batch 工作指定為目標的 EventBridge 主控台中建立規則時,您也可以建立此角色。如需有關此角色必要的服務主體和 IAM 權限的詳細資訊,請參閱 EventBridge IAM 角色

建立排定的 AWS Batch 工作

下列程序涵蓋如何建立排程 AWS Batch 工作和所需的 EventBridge IAM 角色。

若要建立排定的 AWS Batch 工作 EventBridge
注意

此程序適用 AWS Batch 於所有 Amazon ECS、Amazon EKS 和 AWS Fargate 工作。

  1. 在以下位置打開 Amazon EventBridge 控制台 https://console.aws.amazon.com/events/

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

  3. 在導覽窗格中,選擇規則

  4. 選擇建立規則

  5. 對於「名稱」,請為您的計算環境指定唯一的名稱。名稱最多可包含 64 個字元。可以包含大小寫字母、數字、連字號 (-) 和底線 (_)。

    注意

    在同一個區域和同一個事件匯流排上,規則不能與另一個規則同名。

  6. (選擇性) 在說明中,輸入規則的說明。

  7. 針對事件匯流排,選擇要與此規則建立關聯的事件匯流排。如果您想要此規則匹配來自您的帳戶的事件,請選取預設值。當您帳戶 AWS 服務 中的某個事件發出時,它始終會進入您帳戶的默認事件總線。

  8. (選擇性) 如果您不想立即執行規則,請關閉所選匯流排上的規則。

  9. 針對規則類型,選擇排程

  10. 選擇「繼續」建立規則或「下一步」。

  11. 針對 Schedule pattern (排程模式),執行下列其中一項動作:

    • 選擇在特定時間執行的精細排程,例如上午 8:00 PST 在每個月的第一個星期一,然後輸入一個 cron 表達式。如需詳細資訊,請參閱 Amazon EventBridge 使用者指南中的 Cron 運算式

    • 選擇以一般費率執行的排程,例如每 10 分鐘執行一次。 ,然後輸入比率表示式。

  12. 選擇下一步

  13. 對於 Target types (目標類型),選擇 AWS 服務

  14. 對於選取目標,請選擇 Batch 工作佇列。然後,設定下列項目:

    • Job queue (任務佇列):輸入任務佇列的 Amazon Resource Name (ARN) 以排程任務。

    • Job definition (任務定義):輸入用於任務之任務定義的名稱,及其修訂版或完整 ARN。

    • Job name (任務名稱):輸入任務的名稱。

    • Array size (陣列大小):(選擇性) 輸入任務要執行多個副本的陣列大小。如需詳細資訊,請參閱 陣列工作

    • Job attempts (任務嘗試):(選擇性) 輸入任務失敗時的重試次數。如需詳細資訊,請參閱 自動化工作重試

  15. 對於 Batch 工作佇列目標類型, EventBridge 需要將事件傳送至目標的權限。 EventBridge 可以建立規則執行所需的 IAM 角色。執行以下任意一項:

    • 若要自動建立 IAM 角色,請選擇為此特定資源建立新角色

    • 若要使用已建立的 IAM 角色,請選擇 [使用現有角色]。

  16. (選用) 展開 Additional settings (其他設定)

    1. 在「設定目標輸入」中,選擇事件中的文字在傳送至目標之前的處理方式。

    2. 對於事件的保留時間上限,請指定未處理事件保留多久的時間間隔。

    3. 對於「重試嘗試」,請輸入重試事件的次數。

    4. 對於無效字母佇列,請選擇處理未處理事件的選項。如有必要,請指定要用作無效字母佇列的 Amazon SQS 佇列。

  17. (選用) 選擇新增其他目標,為此規則新增另一個目標。

  18. 選擇下一步

  19. (選擇性) 對於標,請選擇「新增標籤」以新增規則的資源標籤。如需詳細資訊,請參閱 Amazon EventBridge 標籤

  20. 選擇下一步

  21. 對於「檢閱和建立」,請檢閱組態步驟。如需變更,請選擇 Edit (編輯)。完成時,請選擇 Create rule (建立規則)。

如需有關建立規則的詳細資訊,請參閱 Amazon EventBridge 使用者指南中的建立按排程執行的 Amazon 規 EventBridge 則

使用事件模式建立規則

下列程序涵蓋如何使用事件模式建立規則。

若要建立在事件符合定義的模式時,將事件傳送至目標的規則
注意

此程序適用 AWS Batch 於所有 Amazon ECS、Amazon EKS 和 AWS Fargate 工作。

  1. 在以下位置打開 Amazon EventBridge 控制台 https://console.aws.amazon.com/events/

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

  3. 在導覽窗格中,選擇規則

  4. 選擇建立規則

  5. 對於「名稱」,請為您的計算環境指定唯一的名稱。名稱最多可包含 64 個字元。可以包含大小寫字母、數字、連字號 (-) 和底線 (_)。

    注意

    在同一個區域和同一個事件匯流排上,規則不能與另一個規則同名。

  6. (選擇性) 在說明中,輸入規則的說明。

  7. 針對事件匯流排,選擇要與此規則建立關聯的事件匯流排。如果您想要此規則匹配來自您的帳戶的事件,請選取預設值。當您帳戶 AWS 服務 中的某個事件發出時,它始終會進入您帳戶的默認事件總線。

  8. (選擇性) 如果您不想立即執行規則,請關閉所選匯流排上的規則。

  9. 針對規則類型,選擇具有事件模式的規則

  10. 選擇下一步

  11. 對於事件來源,請選擇AWS 事件或 EventBridge 合作夥伴事件。

  12. (選擇性) 對於範例事件

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

    2. 對於範例事件,請選擇 Batch Job 狀態變更

  13. 針對建立方法,選取使用模式表單

  14. 對於事件模式

    1. Event source (事件來源),選擇 AWS 服務

    2. 對於 AWS 服務,選擇「Batch」。

    3. 對於事件類型,請選擇 Batch Job 狀態變更

  15. 選擇下一步

  16. 對於 Target types (目標類型),選擇 AWS 服務

  17. 在「選取目標」中,選擇目標類型。例如,選擇 Batch 工作佇列。然後指定下列項目:

    • Job queue (任務佇列):輸入任務佇列的 Amazon Resource Name (ARN) 以排程任務。

    • Job definition (任務定義):輸入用於任務之任務定義的名稱,及其修訂版或完整 ARN。

    • Job name (任務名稱):輸入任務的名稱。

    • Array size (陣列大小):(選擇性) 輸入任務要執行多個副本的陣列大小。如需詳細資訊,請參閱 陣列工作

    • Job attempts (任務嘗試):(選擇性) 輸入任務失敗時的重試次數。如需詳細資訊,請參閱 自動化工作重試

  18. 對於 Batch 工作佇列目標類型, EventBridge 需要將事件傳送至目標的權限。 EventBridge 可以建立規則執行所需的 IAM 角色。執行以下任意一項:

    • 若要自動建立 IAM 角色,請選擇為此特定資源建立新角色

    • 若要使用您之前建立的 IAM 角色,請選擇 Use existing role (使用現有角色)

  19. (選用) 展開 Additional settings (其他設定)

    1. 在「設定目標輸入」中,選擇處理事件中文字的方式。

    2. 對於事件的保留時間上限,請指定未處理事件保留多久的時間間隔。

    3. 對於「重試嘗試」,請輸入重試事件的次數。

    4. 對於無效字母佇列,請選擇處理未處理事件的選項。如有必要,請指定要用作無效字母佇列的 Amazon SQS 佇列。

  20. (選擇性) 選擇「新增其他目標」以新增其他目標。

  21. 選擇下一步

  22. (選擇性) 對於標,請選擇新增標籤以新增資源標籤。如需詳細資訊,請參閱 Amazon EventBridge 使用者指南中的 Amazon EventBridge 標籤

  23. 選擇下一步

  24. 對於「檢閱和建立」,請檢閱組態步驟。如需變更,請選擇 Edit (編輯)。完成後,請選擇 [建立規則]。

    如需有關建立規則的詳細資訊,請參閱 Amazon EventBridge 使用者指南中的建立可對事件做出反應的 Amazon EventBridge 則。

使用 EventBridge 輸入轉換器按排程將事件資訊傳遞至 AWS Batch Target

您可以使用 EventBridge 輸入轉換器將事件資訊傳遞至工作提交 AWS Batch 中。如果您因為其他 AWS 事件資訊而呼叫工作,這可能會特別有用。其中一個範例是將物件上傳到 Amazon S3 儲存貯體。您也可以在容器的命令中使用具有參數替代值的工作定義。 EventBridge 輸入變壓器可以根據事件資料提供參數值。

然後,您會建立一個 AWS Batch 事件目標,從啟動它的事件剖析資訊,並將其轉換為parameters物件。工作執行時,觸發器事件中的參數會傳遞至工作容器的命令。

注意

在這個案例中,所有資 AWS 源 (例如 Amazon S3 儲存貯體、 EventBridge 規則和 CloudTrail日誌) 都必須位於同一個區域。

建立使用輸入變壓器的 AWS Batch 目標的步驟
  1. 在以下位置打開 Amazon EventBridge 控制台 https://console.aws.amazon.com/events/

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

  3. 在導覽窗格中,選擇規則

  4. 選擇建立規則

  5. 對於「名稱」,請為您的計算環境指定唯一的名稱。名稱最多可包含 64 個字元。可以包含大小寫字母、數字、連字號 (-) 和底線 (_)。

    注意

    規則的名稱不能 AWS 區域 與相同事件匯流排中的另一個規則相同。

  6. (選擇性) 在說明中,輸入規則的說明。

  7. 針對事件匯流排,選擇要與此規則建立關聯的事件匯流排。如果您想要此規則匹配來自您的帳戶的事件,請選取預設值。當您帳戶 AWS 服務 中的某個事件發出時,它始終會進入您帳戶的默認事件總線。

  8. (選擇性) 如果您不想立即執行規則,請關閉所選匯流排上的規則。

  9. 針對規則類型,選擇排程

  10. 選擇「繼續」建立規則或「下一步」。

  11. 針對 Schedule pattern (排程模式),執行下列其中一項動作:

    • 選擇在特定時間執行的精細排程,例如上午 8:00 PST 在每個月的第一個星期一,然後輸入一個 cron 表達式。如需詳細資訊,請參閱 Amazon EventBridge 使用者指南中的 Cron 運算式

    • 選擇以一般費率執行的排程,例如每 10 分鐘執行一次。 ,然後輸入比率表示式。

  12. 選擇下一步

  13. 對於 Target types (目標類型),選擇 AWS 服務

  14. 對於選取目標,請選擇 Batch 工作佇列。然後,設定下列項目:

    • Job queue (任務佇列):輸入任務佇列的 Amazon Resource Name (ARN) 以排程任務。

    • Job definition (任務定義):輸入用於任務之任務定義的名稱,及其修訂版或完整 ARN。

    • Job name (任務名稱):輸入任務的名稱。

    • Array size (陣列大小):(選擇性) 輸入任務要執行多個副本的陣列大小。如需詳細資訊,請參閱 陣列工作

    • Job attempts (任務嘗試):(選擇性) 輸入任務失敗時的重試次數。如需詳細資訊,請參閱 自動化工作重試

  15. 對於 Batch 工作佇列目標類型, EventBridge 需要將事件傳送至目標的權限。 EventBridge 可以建立規則執行所需的 IAM 角色。執行以下任意一項:

    • 若要自動建立 IAM 角色,請選擇為此特定資源建立新角色

    • 若要使用已建立的 IAM 角色,請選擇 [使用現有角色]。

  16. (選用) 展開 Additional settings (其他設定)

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

  18. 選擇設定輸入轉換器

  19. (選擇性) 對於範例事件

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

    2. 對於範例事件,請選擇 Batch Job 狀態變更

  20. Target input transformer (目標輸入轉換器) 區段中,針對 Input path (輸入路徑),指定透過觸發事件剖析的值。例如,若要剖析「Batch Job 狀態變更」事件,請使用下列 JSON 格式。

    { "instance": "$.detail.jobId", "state": "$.detail.status" }
  21. 在「範本」中,輸入以下內容。

    { "instance": <jobId> , "status": <status> }
  22. 選擇確認

  23. 對於事件的保留時間上限,請指定未處理事件保留多久的時間間隔。

  24. 對於「重試嘗試」,請輸入重試事件的次數。

  25. 對於無效字母佇列,請選擇處理未處理事件的選項。如有必要,請指定要用作無效字母佇列的 Amazon SQS 佇列。

  26. (選擇性) 選擇「新增其他目標」以新增其他目標。

  27. 選擇下一步

  28. (選擇性) 對於標,請選擇新增標籤以新增資源標籤。如需詳細資訊,請參閱 Amazon EventBridge 使用者指南中的 Amazon EventBridge 標籤

  29. 選擇下一步

  30. 對於「檢閱和建立」,請檢閱組態步驟。如需變更,請選擇 Edit (編輯)。完成後,請選擇 [建立規則]。