使用 Lambda 與 Amazon EventBridge 排程 - AWS Lambda

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

使用 Lambda 與 Amazon EventBridge 排程

Amazon EventBridge Scheduler 是無伺服器排程器,可讓您從單一中央受管服務建立、執行和管理任務。使用 EventBridge Scheduler,您可以使用循環模式的 cron 和速率運算式來建立排程,或設定一次性呼叫。您可以設定彈性的交付時段、定義重試次數上限,以及設定未處理事件的最長保留時間。

當您使用 Lambda 設定 EventBridge 排程器時, EventBridge 排程器會以非同步方式叫用您的 Lambda 函數。本頁說明如何使用 EventBridge 排程器在排程上叫用 Lambda 函數。

設定執行角色

當您建立新排程時, EventBridge 排程器必須具有代表您呼叫其目標 API 作業的權限。您可以使用執行角色將這些權限授與 EventBridge 「排程器」。排程執行角色所連接的許可政策會定義哪些是必要許可。這些權限取決於您希望 EventBridge 排程器叫用的目標 API。

當您使用「 EventBridge 排程器」主控台建立排程時,如下列程序所示,「 EventBridge 排程器」會根據您選取的目標自動設定執行角色。如果您想要使用其中一個 S EventBridge cheduler SDK、或來建立排程 AWS CloudFormation,您必須具有現有的執行角色,以授與 EventBridge 排程器呼叫目標所需的權限。 AWS CLI如需有關手動設定排程執行角色的詳細資訊,請參閱《EventBridge 排程器使用指南》中的 < 設定執行角色 >。

建立排程

使用主控台建立排程
  1. https://console.aws.amazon.com/scheduler/home 打開 Amazon EventBridge 調度程序控制台。

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

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

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

    2. (選用) 在描述中,輸入對排程的描述,例如 My first schedule

    3. 針對排程群組,從下拉式清單中選擇排程群組。如果您沒有群組,請選擇預設值。若要建立排程群組,請選擇建立自己的排程

      您可以使用排程群組,為不同群組的排程加上標籤。

    1. 選擇排程選項。

      頻率 執行此作業...

      一次性排程

      一次性排程只會在您指定的日期與時間調用目標一次。

      針對日期和時間執行以下動作:

      • YYYY/MM/DD 格式輸入有效日期。

      • hh:mm 格式輸入時間戳記 (24 小時)。

      • 針對時區選擇時區。

      週期性排程

      週期性排程會依您指定的頻率,使用 cron 或 Rate 運算式調用目標。

      1. 排程模式中,執行下列其中一項動作:

      2. 對於彈性時段,選擇關閉可關閉此選項,或者也能選擇其中一個預先定義的時間範圍。例如,如果您選擇 15 分鐘並設定週期性排程,每小時調用目標一次,則排程會在每小時一開始的 15 分鐘內執行。

  4. (選用) 如果您在上一個步驟中選擇週期性排程,請在時間範圍區段執行以下動作:

    1. 針對時區選擇時區。

    2. 對於開始日期和時間,依 YYYY/MM/DD 格式輸入有效日期,接著依 24 小時的 hh:mm 格式指定時間戳記。

    3. 對於結束日期和時間,依 YYYY/MM/DD 格式輸入有效日期,接著依 24 小時的 hh:mm 格式指定時間戳記。

  5. 選擇下一步

  6. 在「選取目標」 頁面上,選擇 EventBridge 排程器呼叫的 AWS API 作業:

    1. 選擇AWS Lambda 調用

    2. 調用區段中,選取函數或選擇建立新的 Lambda 函數

    3. (選用) 輸入 JSON 承載。如果您未輸入裝載, EventBridge Scheduler 會使用空白事件來叫用函數。

  7. 選擇下一步

  8. 設定頁面執行以下動作:

    1. 若要開啟排程,請在排程狀態底下切換到啟用排程

    2. 若要設定排程的重試政策,請在重試政策和無效字母佇列 (DLQ) 底下執行以下動作:

      • 切換到重試

      • 針對事件的保留時間上限,輸入 EventBridge 排程器必須保留未處理事件的大小時數和最小時數。

      • 時間最長可設為 24 小時。

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

        最大值為重試 185 次。

      使用重試原則時,如果排程無法呼叫其目標, EventBridge 排程器會重新執行排程。一旦設定此功能,您就必須設定排程的最長保留時間和重試次數。

    3. 選擇 EventBridge 排程器儲存未傳遞事件的位置。

      無效字母佇列 (DLQ) 選項 執行此作業...
      不儲存 選擇
      將活動儲存在建立排程的相同 AWS 帳戶 位置
      1. 選擇選取我中的一個 Amazon SQS 佇列 AWS 帳戶 作為 DL Q。

      2. 選擇 Amazon SQS 佇列的 Amazon Resource Name (ARN)。

      將活動儲存在與建立排程不同 AWS 帳戶 的位置
      1. 選擇 「 AWS 帳戶 將其他地方的 Amazon SQS 佇列指定為 DL Q」。

      2. 輸入 Amazon SQS 佇列的 Amazon Resource Name (ARN)。

    4. 若要使用由客戶管理的金鑰加密您的目標輸入,請在加密底下選擇自訂加密設定 (進階)

      如果選擇此選項,請輸入現有的 KMS 金鑰 ARN,或選擇建立 AWS KMS key,以導覽至 AWS KMS 控制台。如需 EventBridge 排程器如何加密靜態資料的詳細資訊,請參閱 Amazon EventBridge 排程器使用者指南中的靜態加密

    5. 若要讓 EventBridge 排程器為您建立新的執行角色,請選擇 [為此排程建立新角色]。接著輸入角色名稱。如果您選擇此選項, EventBridge Scheduler 會將範本化目標所需的必要權限附加至角色。

  9. 選擇下一步

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

  11. 選擇建立排程

    您可以在排程頁面檢視新建立和現有的排程。在狀態欄底下,確認您的新排程狀態為已啟用

若要確認 EventBridge 排程器是否呼叫函式,請檢查函式的 Amazon CloudWatch 記錄

如需有關 EventBridge 排程器的詳細資訊,請參閱下列內容: