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

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

開始使用 EventBridge 排程器

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

注意

若要遵循本指南,建議您使IAM用中所述的最低必要權限來設定使用者在排程器中使用身分識別型原則 EventBridge 。建立並設定使用者之後,請執行下列命令來設定您的存取認證。您需要您的存取金鑰 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/首頁? 區域 = 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若要使用費率表示式,請選擇以比率為基準的排程,並在「」中輸入正數,然後從下拉式選項中選擇「單位」。

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

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

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

  6. 選擇 Next (下一步)

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

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

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

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

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

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

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

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

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

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

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

      注意

      最大值為 24 小時。

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

      注意

      最大值為重試 185 次。

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

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

      • 在我的 AWS 帳戶中選擇一個 Amazon SQS 隊列為 DLQ — 選擇此選項,然後ARN從下拉列表中選擇一個隊列,配置與您要創建排程的隊列相同 AWS 帳戶 。DLQ

      • 其他 AWS 帳戶中的 Amazon SQS 佇列指定為 DLQ — 選擇此選項,如果佇ARN列位於另一個佇列中DLQ,則輸入佇列的配置 AWS 帳戶。您必須輸入佇列ARN的確切值,才能使用此選項。

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

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

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

  9. 選擇 Next (下一步)

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

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

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

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

    2. 選擇傳送及接收訊息

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

使用建立排程 AWS CLI

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

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

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

  • 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 排程 SDKs

在下列範例中,您可以使用 EventBridge 排程器SDKs建立具有範本化 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)
範例 爪哇 SDK
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"); } }

後續步驟?