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

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

先決條件

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

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

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

    注意

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

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

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

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

    2. 針對描述 - 選用,輸入排程的描述。例如:My first schedule

    3. 對於排程群組,請從下拉式清單選項中選擇排程群組。如果您先前尚未建立任何排程群組,您可以選擇排程的default群組。若要建立新的排程群組,請在主控台描述中選擇建立您自己的排程連結。您可以使用排程群組,為不同群組的排程加上標籤。

  4. 排程模式區段中,執行下列動作:

    1. 針對發生,選擇下列其中一個模式選項。組態選項會根據您選擇的模式而變更。

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

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

      • 週期性排程 – 週期性排程會以您使用cron表達式或速率表達式指定的速率叫用目標。

        選擇以 Cron 為基礎的排程,以使用cron表達式設定排程。若要使用速率表達式,請選擇以速率為基礎的排程,並輸入的正數,然後從下拉式清單選項中選擇單位

      如需使用 Cron 和 Rate 表達式的詳細資訊,請參閱 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. 針對目標,輸入您希望 EventBridge Scheduler 交付至目標的承載。在此範例中,我們會將下列訊息傳送至目標佇列: Hello, it's EventBridge Scheduler.

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

    1. 排程狀態區段中,針對啟用排程,使用開關開啟或關閉功能。根據預設,EventBridge 排程器會啟用您的排程。

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

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

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

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

    4. 針對事件的最長存留期 - 選用,輸入 EventBridge 排程器必須保留未處理事件的最大小時數 (s)分鐘數 (s)

      注意

      最大值為 24 小時。

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

      注意

      最大值為重試 185 次。

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

      • – 如果您不想設定 DLQ,請選擇此選項。

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

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

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

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

      如果您希望 EventBridge Scheduler 為您建立新的執行角色,請改為選擇為此排程建立新角色。接著輸入角色名稱。如果您選擇此選項,EventBridge Scheduler 會將範本目標所需的許可新增至角色。

  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 Scheduler 傳送至目標佇列的訊息。

$ 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)
範例 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"); } }

後續步驟?