在 Amazon 中創建按計劃運行的規則 EventBridge - Amazon EventBridge

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

在 Amazon 中創建按計劃運行的規則 EventBridge

規則可以在回應事件或特定時間間隔執行。例如,若要定期執行 AWS Lambda 函數,您可建立依照排程執行的規則。

注意

雖然您可以建立按排程執行的規則,但 EventBridge 現在提供了一種更靈活且功能強大的方式來集中建立、執行和管理排程的工作: EventBridge 排程器. 使用 EventBridge 排程器,您可以使用循環模式的 cron 和速率運算式來建立排程,或設定一次性呼叫。您可以設定彈性的傳送時間範圍、定義重試限制,以及設定失敗API呼叫的最長保留時間。

Scheduler 具有高度可自訂性,並提供比排程規則改善的延展性,並提供更廣泛的目標API作業和 AWS 服務。我們建議您使用排程器依排程叫用目標。

如需詳細資訊,請參閱 建立排程

在中 EventBridge,您可以建立兩種類型的排程規則:

  • 以一般費率執行的規則

    EventBridge 定期執行這些規則;例如,每 20 分鐘執行一次。

    若要指定排程規則的比率,請定義 Rate 表達式

  • 在特定時間執行的規則

    EventBridge 在特定的時間和日期執行這些規則;例如,上午 8:00 PST在每個月的第一個星期一。

    若要指定排程規則執行的時間和日期,請定義 Cron 表達式

Rate 表達式的定義較為簡單,而 Cron 表達式則提供詳細的排程控制。例如,透過 cron 表達式,您可以定義一條規則,在每週或每個月的特定某一天中指定的時間執行。相對的,rate 表達式會以固定的頻率執行規則,例如每個小時一次或是每天一次。

所有已排程的事件都使用 UTC +0 時區,排程的最小精確度為一分鐘。

注意

EventBridge 在排程運算式中不提供第二層精確度。使用 cron 表達式的最小解析是一分鐘。由於目標服務 EventBridge 和目標服務的分散式本質,在觸發排定的規則到目標服務執行目標資源的時間之間,可能會有幾秒鐘的延遲。

下列影片提供排程工作的概觀:

建立依排程執行的規則

下列步驟將逐步引導您如何建立以定期排程執行的 EventBridge 規則。

注意

您只能使用預設事件匯流排建立排程規則。

定義規則

首先,輸入規則的名稱和說明以定義規則。

若要定義規則詳細資訊
  1. 在打開 Amazon EventBridge 控制台https://console.aws.amazon.com/events/

  2. 在導覽窗格中,選擇規則

  3. 選擇建立規則

  4. 輸入名稱,(選用) 輸入規則描述

    規則的名稱不能 AWS 區域 與相同事件匯流排中的另一個規則相同。

  5. 針對選取事件匯流排,選擇預設事件匯流排。您只能使用預設事件匯流排建立排程規則。

  6. 若要在建立規則後立即生效,請確定已啟用在選取的事件匯流排上啟用規則選項。

  7. 針對規則類型,選擇排程

    此時,您可以選擇繼續建立依排程執行的規則,或使用 Amazon EventBridge 排程器。

  8. 選擇您要繼續的方式:

    • 使用 EventBridge 排程器建立您的排程

      注意

      EventBridge Scheduler 是無伺服器排程器,可讓您從單一中央受管理的服務建立、執行及管理工作。其提供與事件匯流排和規則無關的一次性和週期性排程功能。 EventBridge Scheduler 具有高度可自訂性,並提供比 EventBridge 排程規則改善的延展性,並提供更廣泛的目標API作業和 AWS 服務。

      我們建議您使用 EventBridge 排程器依排程叫用目標。如需詳細資訊,請參閱什麼是 Amazon EventBridge 排程器?Amazon EventBridge 調度程序用戶指南

      1. 在 EventBridge 排程器中選取繼續

        EventBridge 開啟 [ EventBridge 排程器] 主控台至 [建立排程] 頁面。

      2. 在 [ EventBridge 排程器] 主控台中立排程。

    • 繼續使用 EventBridge 為預設事件匯流排建立排程規則

      1. 選取繼續建立規則

定義排程

下一步,定義排程模式。

若要定義排程模式
  1. 針對排程模式,請選擇要在特定時間執行排程,還是以固定速率執行:

    Specific time
    1. 選擇在特定時間執行的精細排程,例如上午 8:00 PST在每個月的第一個星期一。

    2. 對於 Cron 運算式,請指定欄位以定義 Cron 運算式,以決定何時執行此排程規則。 EventBridge

      指定所有欄位後, EventBridge 會 EventBridge 顯示執行此排程規則的後十個日期。您可以選擇是以當地時區顯示這些日期UTC還是顯示當地時區

      如需建構 Cron 表達式的詳細資訊,請參閱 Cron 表達式

    Regular rate
    1. 選擇以固定速率執行的排程,例如每 10 分鐘執行一次

    2. 對於「比率表示式」,請指定「」和「單位」欄位,以定義 EventBridge 應執行此排定規則的比率。

      如需建構 Rate 表達式的詳細資訊,請參閱 Rate 運算式

  2. 選擇下一步

選取目標

選擇一或多個目標以接收符合指定模式的事件。目標可以包括 EventBridge 事件匯流排、 EventBridge API目的地,包括 SaaS 合作夥伴 (例如 Salesforce) 或其他 AWS 服務。

若要選取目標
  1. 針對目標類型,請選擇下列其中一個:

    Event bus

    若要選取 EventBridge 事件匯流排,請選取EventBridge 事件匯流排,然後執行下列操作:

    API destination

    若要使用 EventBridge API目的地,請選取EventBridge API目的地,然後執行下列其中一項操作:

    • 若要使用現有的API目的地,請選取 [使用現有的API目的地]。然後從下拉列表中選擇一個API目的地。

    • 若要建立新的API目的地,請選取建立新的API目的地。接下來,為目的地提供以下詳細資訊:

      • 名稱:輸入目的地名稱。

        名稱在您的 AWS 帳戶內必須是獨一無二的。名稱長度最長可達 64 個字元。有效字元為 A-Za-z0-9 - (連字號)。

      • (選用) 說明:請輸入目的地的說明。

        說明最多可有 512 個字元。

      • API目標端點 — 目標的URL端點。

        端點URL必須以開頭https。您可以包含 * 作為路徑參數萬用字元。您可以從目標的 HttpParameters 屬性設置路徑參數。

      • HTTP方法 — 選取呼叫端點時使用的HTTP方法。

      • (選用) 每秒調用速率限制:輸入此目的地每秒可接受的調用數目上限。

        該值必須大於零。依預設,此值設為 300。

      • 連線:選擇使用新的或現有的連線:

        • 若要使用現有的連線,請選取使用現有連線,然後從下拉式清單中選取連線。

        • 若要為此目的地建立新連線,請選取建立新連線,然後定義連線的名稱目的地類型授權類型。您也可以為此連線新增選擇性的描述

    如需詳細資訊,請參閱 API目的地作為 Amazon 的目標 EventBridge

    AWS 服務

    若要使用 AWS 服務,請選取 AWS 服務,然後執行下列動作:

    1. 針對選取目標,請選取 AWS 服務 要用作目標的目標。提供您所選取服務所要求的資訊。

      注意

      顯示的欄位會因選擇的服務而異。如需目標的詳細資訊,請參閱 主控台中 EventBridge可用的事件匯流排目標

  2. 對於許多目標類型, EventBridge 需要將事件傳送至目標的權限。在這些情況下, EventBridge 可以建立規則執行所需的IAM角色。

    針對執行角色,執行下列任何一項:

    • 若要為此規則建立新的執行角色:

      1. 選取為此特定資源建立新角色

      2. 輸入此執行角色的名稱,或使用由產生的名稱 EventBridge。

    • 若要針對此規則使用現有的執行角色:

      1. 選取使用現有角色

      2. 從下拉式清單中輸入或選取要使用的執行角色名稱。

  3. (選用) 在其他設定中,指定任何可供您目標類型使用的選擇性設定:

    Event bus

    (選擇性) 對於無效字母佇列,請選擇是否使用標準 Amazon SQS 佇列做為無效字母佇列。 EventBridge 如果符合此規則的事件未成功傳遞至目標,則會將符合此規則的事件傳送至無效字母佇列。執行以下任意一項:

    • 選擇,即不使用無效字母佇列。

    • 選擇選取目前 AWS 帳戶中的 Amazon SQS 佇列作為無效字母佇列,然後從下拉式清單中選取要使用的佇列。

    • 選擇選取其他 AWS 帳戶中的 Amazon SQS 佇列作為無效字母佇列,然後輸入要使用ARN的佇列。您必須將以資源為基礎的政策附加至佇列,以授與傳送訊息給該佇列的 EventBridge權限。

      如需詳細資訊,請參閱 將許可授予無效字母佇列

    API destination
    1. (選用) 對於設定目標輸入,請選擇您要如何自訂傳送至目標的文字以進行相符事件。選擇下列其中一項:

      • 相符事件 — EventBridge 將整個原始來源事件傳送至目標。此為預設值。

      • 相符事件的一部分 — EventBridge 僅將原始來源事件的指定部分傳送至目標。

        在 [指定相符事件的部分] 下,指定定義要傳送 EventBridge 至目標之事件部分的JSON路徑。

      • 常數 (JSON文字) — 僅 EventBridge 將指定的JSON文字傳送至目標。不會傳送原始來源事件的任何部分。

        在「指定常數於」下JSON,指JSON定要傳送 EventBridge 至目標而不是事件的文字。

      • 輸入轉換器 — 設定輸入轉換器以自訂要 EventBridge 傳送至目標的文字。如需詳細資訊,請參閱 Amazon EventBridge 輸入轉換

        1. 選取設定輸入轉換器

        2. 按照中的步驟配置輸入轉換器 在 中建立規則時設定輸入轉換器 EventBridge

    2. (選擇性) 在「重試」原則下,指定發生錯誤後,如何 EventBridge 重試將事件傳送至目標。

      • 最長事件保留時間 — 輸入保留未處理事件的時間上限 (以小時、分鐘和秒 EventBridge 為單位)。預設值為 24 小時。

      • 重試嘗試 — 輸入錯誤發生後 EventBridge ,重試將事件傳送至目標的次數上限。預設值為 185 次。

    3. (選擇性) 對於無效字母佇列,請選擇是否使用標準 Amazon SQS 佇列做為無效字母佇列。 EventBridge 如果符合此規則的事件未成功傳遞至目標,則會將符合此規則的事件傳送至無效字母佇列。執行以下任意一項:

      • 選擇,即不使用無效字母佇列。

      • 選擇選取目前 AWS 帳戶中的 Amazon SQS 佇列作為無效字母佇列,然後從下拉式清單中選取要使用的佇列。

      • 選擇選取其他 AWS 帳戶中的 Amazon SQS 佇列作為無效字母佇列,然後輸入要使用ARN的佇列。您必須將以資源為基礎的政策附加至佇列,以授與傳送訊息給該佇列的 EventBridge 權限。

        如需詳細資訊,請參閱 將許可授予無效字母佇列

    AWS service

    請注意, EventBridge 可能不會顯示指定 AWS 服務的下列所有欄位。

    1. (選用) 對於設定目標輸入,請選擇您要如何自訂傳送至目標的文字以進行相符事件。選擇下列其中一項:

      • 相符事件 — EventBridge 將整個原始來源事件傳送至目標。此為預設值。

      • 相符事件的一部分 — EventBridge 僅將原始來源事件的指定部分傳送至目標。

        在 [指定相符事件的部分] 下,指定定義要傳送 EventBridge 至目標之事件部分的JSON路徑。

      • 常數 (JSON文字) — 僅 EventBridge 將指定的JSON文字傳送至目標。不會傳送原始來源事件的任何部分。

        在「指定常數於」下JSON,指JSON定要傳送 EventBridge 至目標而不是事件的文字。

      • 輸入轉換器 — 設定輸入轉換器以自訂要 EventBridge 傳送至目標的文字。如需詳細資訊,請參閱 Amazon EventBridge 輸入轉換

        1. 選取設定輸入轉換器

        2. 按照中的步驟配置輸入轉換器 在 中建立規則時設定輸入轉換器 EventBridge

    2. (選擇性) 在「重試」原則下,指定發生錯誤後,如何 EventBridge 重試將事件傳送至目標。

      • 最長事件保留時間 — 輸入保留未處理事件的時間上限 (以小時、分鐘和秒 EventBridge 為單位)。預設值為 24 小時。

      • 重試嘗試 — 輸入錯誤發生後 EventBridge ,重試將事件傳送至目標的次數上限。預設值為 185 次。

    3. (選擇性) 對於無效字母佇列,請選擇是否使用標準 Amazon SQS 佇列做為無效字母佇列。 EventBridge 如果符合此規則的事件未成功傳遞至目標,則會將符合此規則的事件傳送至無效字母佇列。執行以下任意一項:

      • 選擇,即不使用無效字母佇列。

      • 選擇選取目前 AWS 帳戶中的 Amazon SQS 佇列作為無效字母佇列,然後從下拉式清單中選取要使用的佇列。

      • 選擇選取其他 AWS 帳戶中的 Amazon SQS 佇列作為無效字母佇列,然後輸入要使用ARN的佇列。您必須將以資源為基礎的政策附加至佇列,以授與傳送訊息給該佇列的 EventBridge 權限。

        如需詳細資訊,請參閱 將許可授予無效字母佇列

  4. (選用) 選擇新增其他目標,為此規則新增另一個目標。

  5. 選擇下一步

設定標籤和檢閱規則

最後,為規則輸入任何想要的標籤,然後檢閱並建立規則。

若要設定標籤,以及檢閱和建立規則
  1. (選用) 為規則輸入一或多個標籤。如需詳細資訊,請參閱 在 Amazon 中標記資源 EventBridge

  2. 選擇下一步

  3. 檢閱新規則的詳細資料。若要對區段進行變更,請為要編輯的區段選擇編輯按鈕。

    如果您滿意規則詳細資訊,請選擇建立規則