開始使用 EventBridge 排程器 - EventBridge 排程器

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

開始使用 EventBridge 排程器

本主題說明建立新的 EventBridge 排程器排程。您可以使用 EventBridge 排程器主控台、AWS Command Line Interface (AWS CLI) 或AWS開發套件來建立具有範本化 Amazon SQS 目標的排程。然後,您將設定記錄、設定重試次數,以及設定失敗工作的保留時間上限。建立排程之後,您將驗證排程是否成功叫用目標,並將訊息傳送至目標佇列。

注意

若要遵循本指南,建議您使用中所述的最低必要許可設定 IAM 使用者使用身分型政策。建立並設定使用者之後,請執行下列命令來設定您的存取認證。您需要您的存取金鑰 ID 和秘密存取金鑰,才能設定AWS CLI.

$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json

如需有關不同方式設定認證的詳細資訊,請參閱第 2 版AWS Command Line Interface使用者指南中的組態設定和優先順序

先決條件

在嘗試本節中的步驟之前,您必須執行下列動作:

使用 EventBridge 排程器主控台建立排程

使用主控台建立新排程
  1. 登入AWS Management Console,然後選擇下列連結以開啟 EventBridge 主控台的 [ EventBridge 排程器] 區段:https://us-west-2.console.aws.amazon.com/scheduler/home?region=us-west-2#home

    注意

    您可以使用AWS 區域AWS Management Console的區域選擇器切換您的。

  2. 排程頁面上,選擇建立排程

  3. 指定排程詳細資訊頁面的排程名稱和描述區段中,執行以下動作:

    1. 排程名稱中,輸入排程的名稱,例如:MyTestSchedule

    2. 在「說明-用」中,輸入排程的說明。例如:My first schedule

    3. 在「排程」群組中,從下拉式選項中選擇排程群組。如果您之前沒有建立任何排程群組,您可以選擇排程的default群組。若要建立新的排程群組,請在主控台說明中選擇 [建立您自己的排程] 連結。您可以使用排程群組,為不同群組的排程加上標籤。

  4. 在「排程樣式」區段中,執行下列操作:

    1. 對於「複本」,請選擇下列其中一個陣列選項。組態選項會根據您選取的樣式而變更。

      • 次性排程 — 一次性排程只會在您指定的日期和時間呼叫目標一次。

        在「日期和時間」中,以YYYY/MM/DD格式輸入有效日期。然後,指定 24 小時hh:mm格式的時間戳記。最後,從下拉選項中選擇一個時區。

      • 週期性排程 — 週期性排程會以您使用cron運算式或速率運算式指定的速率叫用目標。

        選擇以 CRON 為基礎的排程,以使用運算式來設定排程cron。o 使用費率表示式,選擇以比率為基準的排程,然後在「」中輸入正數,然後從下拉式選項中選擇「單位」。

      如需使用 cron 和速率運算式的詳細資訊,請參閱 EventBridge 排程器上的排程類型

    2. 對於彈性時間範圍,請選擇關閉以關閉選項,或從下拉式清單中選擇其中一個預先定義的時間範圍。例如,如果您選擇 15 分鐘並設定週期性排程,每小時調用目標一次,則排程會在每小時一開始的 15 分鐘內執行。

  5. 注意

    彈性時間範圍功能不適用於一次性排程。

    如果您在上一個步驟中選擇「週期性」排程,請在「時間範圍」區段中指定時區,並選擇性地設定排程的開始日期和時間,以及結束日期和時間。沒有開始日期的循環排程將在創建並可用後立即開始。沒有結束日期的週期性排程將繼續無限期地調用它的目標。

  6. 選擇下一步

  7. 「選取目標」 頁面上,執行下列動作:

    1. 選取範本化目標,然後選擇目標 API。在此範例中,我們將選擇 Amazon SQS SendMessage 範本化目標。

    2. 在此SendMessage段落arn:aws:sqs:us-west-2:123456789012:TestQueue中,對於 SQS 佇列,請從下拉式清單中選擇現有的 Amazon SQS 佇列 ARN。若要建立新佇列,請選擇「建立新 SQS 佇列」以導覽至 Amazon SQS 主控台。完成建立佇列之後,請返回「 EventBridge 排程器」主控台並重新整理下拉式清單。您的新佇列 ARN 隨即出現,您可以選取該佇列。

    3. 針對 Target,輸入您希望 EventBridge 排程器傳遞至目標的承載。在此範例中,我們會將下列訊息傳送至目標佇列:Hello, it's EventBridge Scheduler.

  8. 選擇 [下步],然後在 [設定]-選用頁面上執行下列動作:

    1. 在「排程狀態」區段中,對於「啟用排程」,使用開關切換功能開啟或關閉。依預設,「 EventBridge 排程器」會啟用您的排程。

    2. 在「排程完成後的動作」區段中,設定排程器在 EventBridge 排程完成後採取的動作:

      • 如果您要自動刪除排程,請選擇「刪除」。對於一次性排程,這會在排程呼叫目標一次之後發生。對於週期性排程,這會在排程的最後一次計劃叫用之後發生。如需自動刪除的更多資訊,請參閱排程完成後刪除

      • 如果您不希望「排程器」在 EventBridge 排程完成後採取任何動作,請選擇「」,或不選擇值。

    3. [重試原則和無效字母佇列 (DLQ)] 區段中,針對 [重試] 原則,開啟 [重試] 以設定排程的重試原則。使用重試原則時,如果排程無法呼叫其目標, EventBridge 排程器會重新執行排程。一旦設定此功能,您就必須設定排程的最長保留時間和重試次數。

    4. 對於事件的最長保留時間-用,請輸入 EventBridge 排程器必須保留未處理事件的最大小時數和最小時數。

      注意

      最大值為 24 小時。

    5. 針對重試次數上限,輸入目標傳回錯誤時, EventBridge 排程器重試排程的次數上限。

      注意

      最大值為重試 185 次。

    6. 對於無效字母佇列 (DLQ),請從下列選項中選擇:

      • — 如果您不想配置 DLQ,請選擇此選項。

      • 在我的AWS帳戶中選取一個 Amazon SQS 佇列做為 DLQ — 選擇此選項,然後從下拉式清單中選取佇列 ARN,設定 DLQ 與您要建立排程的AWS 帳戶相同。

      • 其他AWS帳戶中的 Amazon SQS 佇列指定為 DLQ — 如果佇列位於另一個佇列中,請選擇此選項,然後將佇列設定的 ARN 輸入為 DLQ。AWS 帳戶您必須輸入佇列的正確 ARN,才能使用此選項。

    7. 在 [加密] 區段中,選擇 [自訂加密設定 (進階)] 以使用客戶管理的 KMS 金鑰來加密您的目標輸入。如果選擇此選項,請輸入現有的 KMS 金鑰 ARN,或選擇 [建立 AWS KMS 金鑰] 以導覽至AWS KMS主控台。如需 EventBridge Scheduler 如何加密靜態資料的詳細資訊,請參閱靜態加密

    8. 對於「權限」,請選擇「使用現有角色」,然後從下拉式清單中選取您在設定程序期間建立的角色。您也可以選擇前往 IAM 主控台來建立新角色。

      如果您想要 [ EventBridge 排程器] 為您建立新的執行角色,請改為選擇 [為此排程建立新角色]。接著輸入角色名稱。如果您選擇此選項,「 EventBridge 排程器」會將範本化目標所需的必要權限新增至角色。

  9. 選擇下一步

  10. 檢閱和建立排程頁面上,檢閱排程的詳細資訊。在每個區段中選擇編輯,即可返回該步驟並編輯其詳細資訊。

  11. 選擇 [建立排程] 以完成建立新排程。您可以在排程頁面檢視新建立和現有的排程。在狀態欄底下,確認您的新排程狀態為已啟用

  12. 若要確認您的排程是否呼叫 Amazon SQS 目標,請開啟 Amazon SQS 主控台並執行下列動作:

    1. 從「佇列」清單中選擇目標佇列

    2. 選擇傳送及接收訊息

    3. 在 [傳送及接收訊息] 頁面的 [接收訊息] 下,選擇 [輪詢郵件],以擷取排程傳送至目標佇列的測試訊息。

使用建立排程 AWS CLI

下列範例顯示如何使用命AWS CLI令create-schedule建立具有範本化 Amazon SQS 目標的 EventBridge 排程器排程。以您的資訊取代下列參數的預留位置值:

  • -name — 輸入排程的名稱。

  • RoleArn— 輸入您要與排程產生關聯之執行角色的 ARN。

  • — 輸入目標的 ARN。在這種情況下,目標是 Amazon SQS 佇列。

  • 輸入 — 輸入 EventBridge 排程器傳送至目標佇列的訊息。

$ aws scheduler create-schedule --name sqs-templated-schedule --schedule-expression 'rate(5 minutes)' \ --target '{"RoleArn": "ROLE_ARN", "Arn": "QUEUE_ARN", "Input": "TEST_PAYLOAD" }' \ --flexible-time-window '{ "Mode": "OFF"}'

使用 EventBridge 排程器 SDK 建立排程

在下列範例中,您可以使用 EventBridge 排程器 SDK 建立具有範本化 Amazon SQS 目標的 EventBridge 排程器排程。

範例 Python SDK
import boto3 scheduler = boto3.client('scheduler') flex_window = { "Mode": "OFF" } sqs_templated = { "RoleArn": "<ROLE_ARN>", "Arn": "<QUEUE_ARN>", "Input": "Message for scheduleArn: '<aws.scheduler.schedule-arn>', scheduledTime: '<aws.scheduler.scheduled-time>'" } scheduler.create_schedule( Name="sqs-python-templated", ScheduleExpression="rate(5 minutes)", Target=sqs_templated, FlexibleTimeWindow=flex_window)
範例 Java 開發套件
package com.example; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.scheduler.SchedulerClient; import software.amazon.awssdk.services.scheduler.model.*; public class MySchedulerApp { public static void main(String[] args) { final SchedulerClient client = SchedulerClient.builder() .region(Region.US_WEST_2) .build(); Target sqsTarget = Target.builder() .roleArn("<ROLE_ARN>") .arn("<QUEUE_ARN>") .input("Message for scheduleArn: '<aws.scheduler.schedule-arn>', scheduledTime: '<aws.scheduler.scheduled-time>'") .build(); CreateScheduleRequest createScheduleRequest = CreateScheduleRequest.builder() .name("<SCHEDULE NAME>") .scheduleExpression("rate(10 minutes)") .target(sqsTarget) .flexibleTimeWindow(FlexibleTimeWindow.builder() .mode(FlexibleTimeWindowMode.OFF) .build()) .build(); client.createSchedule(createScheduleRequest); System.out.println("Created schedule with rate expression and an Amazon SQS templated target"); } }

後續步驟?

  • 如需有關使用主控台或 EventBridge Scheduler SDK 管理排程的詳細資訊,請參閱管理排程。AWS CLI

  • 如需有關如何設定範本化目標以及如何使用通用目標參數的詳細資訊,請參閱管理目標

  • 如需有關 EventBridge 排程器資料類型和 API 作業的詳細資訊,請參閱EventBridge 排程器 API 參考