本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 版使用者指南》中的組態設定和優先順序。
先決條件
在嘗試本節中的步驟之前,您必須執行下列動作:
-
完成中所述的任務 設定 Amazon EventBridge 排程器
使用 EventBridge 排程器主控台建立排程
使用主控台建立新排程
-
登入 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 區域 來切換您的 。
-
在排程頁面上,選擇建立排程。
-
在指定排程詳細資訊頁面的排程名稱和描述區段中,執行以下動作:
-
在排程名稱中,輸入排程的名稱,例如
MyTestSchedule
-
針對描述 - 選用,輸入排程的描述。例如:
My first schedule
。 -
對於排程群組,請從下拉式清單選項中選擇排程群組。如果您先前尚未建立任何排程群組,您可以選擇排程的
default
群組。若要建立新的排程群組,請在主控台描述中選擇建立您自己的排程連結。您可以使用排程群組,為不同群組的排程加上標籤。
-
-
在排程模式區段中,執行下列動作:
-
針對發生,選擇下列其中一個模式選項。組態選項會根據您選擇的模式而變更。
-
一次性排程 – 一次性排程只會在您指定的日期和時間叫用目標一次。
針對日期和時間,以
YYYY/MM/DD
格式輸入有效的日期。然後,以 24 小時hh:mm
格式指定時間戳記。最後,從下拉式清單選項中選擇時區。 -
週期性排程 – 週期性排程會以您使用cron表達式或速率表達式指定的速率叫用目標。
選擇以 Cron 為基礎的排程,以使用cron表達式設定排程。若要使用速率表達式,請選擇以速率為基礎的排程,並輸入值的正數,然後從下拉式清單選項中選擇單位。
如需使用 Cron 和 Rate 表達式的詳細資訊,請參閱 EventBridge 排程器中的排程類型。
-
-
對於彈性時段,請選擇關閉以關閉選項,或從下拉式清單中選擇其中一個預先定義的時段。例如,如果您選擇 15 分鐘並設定週期性排程,每小時調用目標一次,則排程會在每小時一開始的 15 分鐘內執行。
-
-
如果您在上一個步驟中選擇週期性排程,請在時間範圍區段中指定時區,並選擇性地設定排程的開始日期和時間,以及結束日期和時間。沒有開始日期的週期性排程會在建立和可用時立即開始。沒有結束日期的週期性排程將繼續無限期地調用其目標。
-
選擇 Next (下一步)。
-
在選取目標頁面上,執行下列動作:
-
選取範本目標,然後選擇目標 API。在此範例中,我們將選擇 Amazon SQS
SendMessage
範本化目標。 -
在 SendMessage 區段中,針對 SQS 佇列,
arn:aws:sqs:
從下拉式清單中選擇現有的 Amazon SQS 佇列 ARN,例如 。若要建立新的佇列,請選擇建立新的 SQS 佇列以導覽至 Amazon SQS 主控台。建立佇列完成後,返回 EventBridge 排程器主控台並重新整理下拉式清單。您的新佇列 ARN 隨即出現,並且可以選取。us-west-2
:123456789012
:TestQueue
-
針對目標,輸入您希望 EventBridge Scheduler 交付至目標的承載。在此範例中,我們會將下列訊息傳送至目標佇列:
Hello, it's EventBridge Scheduler.
-
-
選擇下一步,然後在設定 - 選用頁面上,執行下列動作:
-
-
在排程狀態區段中,針對啟用排程,使用開關開啟或關閉功能。根據預設,EventBridge 排程器會啟用您的排程。
-
在排程完成後的動作區段中,設定 EventBridge Scheduler 在排程完成後採取的動作:
-
如果您想要自動刪除排程,請選擇刪除。對於一次性排程,這會在排程調用目標一次之後發生。對於週期性排程,這發生在排程的最後一次計劃調用之後。如需自動刪除的詳細資訊,請參閱排程完成後刪除。
-
如果您不希望 EventBridge Scheduler 在排程完成後採取任何動作,請選擇 NONE,或不選擇值。
-
-
在重試政策和無效字母佇列 (DLQ) 區段中,針對重試政策,開啟重試以設定排程的重試政策。設定好重試政策後,如果排程無法調用其目標,EventBridge 排程器會重新執行排程。一旦設定此功能,您就必須設定排程的最長保留時間和重試次數。
-
針對事件的最長存留期 - 選用,輸入 EventBridge 排程器必須保留未處理事件的最大小時數 (s) 和分鐘數 (s)。
注意
最大值為 24 小時。
-
針對重試次數上限,輸入目標傳回錯誤時,EventBridge 排程器重新嘗試執行排程的次數上限。
注意
最大值為重試 185 次。
-
針對無效字母佇列 (DLQ),請從下列選項中選擇:
-
無 – 如果您不想設定 DLQ,請選擇此選項。
-
在我的 AWS 帳戶中選取 Amazon SQS 佇列做為 DLQ – 選擇此選項,然後從下拉式清單中選取佇列 ARN,設定 AWS 帳戶 與您建立排程的 DLQ 相同的 DLQ。
-
將其他 AWS 帳戶中的 Amazon SQS 佇列指定為 DLQ – 選擇此選項,然後輸入佇列的 ARN,如果佇列位於另一個 DLQ AWS 帳戶。您必須輸入佇列的確切 ARN,才能使用此選項。
-
-
在加密區段中,選擇自訂加密設定 (進階),以使用客戶受管 KMS 金鑰來加密您的目標輸入。如果您選擇此選項,請輸入現有的 KMS 金鑰 ARN,或選擇建立 AWS KMS 金鑰以導覽至 AWS KMS 主控台。如需 EventBridge Scheduler 如何加密靜態資料的詳細資訊,請參閱 EventBridge 排程器中的靜態加密。
-
針對許可,選擇使用現有角色,然後從下拉式清單中選取您在設定程序期間建立的角色。您也可以選擇前往 IAM 主控台來建立新的角色。
如果您希望 EventBridge Scheduler 為您建立新的執行角色,請改為選擇為此排程建立新角色。接著輸入角色名稱。如果您選擇此選項,EventBridge Scheduler 會將範本目標所需的許可新增至角色。
-
-
選擇 Next (下一步)。
-
在檢閱和建立排程頁面上,檢閱排程的詳細資訊。在每個區段中選擇編輯,即可返回該步驟並編輯其詳細資訊。
-
選擇建立排程以完成建立新的排程。您可以在排程頁面檢視新建立和現有的排程。在狀態欄底下,確認您的新排程狀態為已啟用。
-
若要驗證您的排程是否叫用 Amazon SQS 目標,請開啟 Amazon SQS 主控台並執行下列動作:
-
從佇列清單中選擇目標佇列。
-
選擇傳送及接收訊息。
-
在傳送和接收訊息頁面的接收訊息下,選擇輪詢訊息,以擷取排程傳送至目標佇列的測試訊息。
-
使用 建立排程 AWS CLI
下列範例示範如何使用 AWS CLI 命令create-schedule
--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"); } }
後續步驟?
-
如需使用 主控台 AWS CLI或 EventBridge 排程器 SDK 管理排程的詳細資訊,請參閱 在 EventBridge 排程器中管理排程。
-
如需如何設定範本目標並了解如何使用通用目標參數的詳細資訊,請參閱在 EventBridge Scheduler 中管理目標。
-
如需 EventBridge 排程器資料類型和 API 操作的詳細資訊,請參閱 EventBridge 排程器 API 參考。