建立依排程執行的 Amazon EventBridge 規則。 - Amazon EventBridge

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

建立依排程執行的 Amazon EventBridge 規則。

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

注意

Amazon EventBridge 排程器是無伺服器排程器,可讓您從單一受管的中央服務中建立、執行及管理任務。EventBridge 排程器具有高度可自訂性,並透過 EventBridge 排程規則改善可擴展性,提供更廣泛的目標 API 操作和 AWS 服務。

我們建議您使用 EventBridge 排程器,依照排程調用目標。如需更多詳細資訊,請參閱 使用 Amazon EventBridge 排程器搭配 Amazon EventBridge

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

  • 以一般費率執行的規則

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

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

  • 在特定時間執行的規則

    EventBridge 會在特定的時間和日期執行這些規則,例如:上午 8:00 太平洋標準時間為每個月的第一個星期一。

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

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

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

注意

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

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

建立依排程執行的規則

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

注意

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

定義規則

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

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

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

  3. 選擇 Create rule (建立規則)

  4. 輸入 Name (名稱), (可選) 輸入規則描述。

    在同一個 AWS 區域 和同一個事件匯流排上,規則不能與另一個規則同名。

  5. 對於Event bus (選取事件匯流排),選擇 default event bus ( 預設事件匯流排)。您只能使用預設事件匯流排建立排程規則。

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

  7. 針對 Rule type(規則類型),選擇 Schedule(排程)

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

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

    • 使用 EventBridge 排程器建立排程

      注意

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

      我們建議您使用 EventBridge 排程器,依照排程調用目標。如需詳細資訊,請參閱《Amazon EventBridge 排程器 使用者指南》中的什麼是 Amazon EventBridge 排程器?

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

        EventBridge 會開啟「EventBridge 排程器」主控台至建立排程頁面。

      2. 在 EventBridge 排程器主控台中建立排程

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

      1. 選取「繼續」以建立規則

定義排程

下一步,定義排程模式。

若要定義排程模式
  1. 對於「排程」模式,請選擇要在特定時間執行排程,還是以一般費率執行:

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

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

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

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

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

    2. 對於Rate 表達式,請指定單位欄位,以定義 EventBridge 應執行此排定規則的速率。

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

  2. 選擇 Next (下一步)

選取目標

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

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

    Event bus

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

    API destination

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

    • 若要使用現有的 API 目的地,請選取 [使用現有的 API 目的地]。然後從下拉式清單中選取 API 目標。

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

      • Name (名稱):輸入目的地名稱。

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

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

        說明最多可有 512 個字元。

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

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

      • HTTP 方法:選取調用端點時使用的 HTTP 方法。

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

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

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

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

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

    如需更多詳細資訊,請參閱 API 目的地

    AWS 服務

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

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

      注意

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

  2. 對於許多目標類型而言,EventBridge 需要許可才能將事件傳送到目標。在這些情況下,EventBridge 可建立執行您的規則所需的 IAM 角色。

    對於 Execution role(執行角色),執行下列任何一項:

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

      1. 選擇 Create a new role for this specific resource (為此特定資源建立新角色)

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

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

      1. 選取 [使用現有角色]。

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

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

    Event bus

    針對 Dead-letter queue (無效字母佇列),選擇是否使用標準 Amazon SQS 佇列做為無效字母佇列。若與此規則匹配的事件未成功傳送到目標,則 EventBridge 會將其傳送至無效字母佇列。執行下列任意一項:

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

    • 選擇 Select an Amazon SQS queue in the current AWS account to use as the dead-letter queue (選擇當前 AWS 帳戶中的 Amazon SQS 佇列以用作無效字母佇列),然後從下拉式清單中選擇要使用的佇列。

    • 選擇 Select an Amazon SQS queue in an other AWS account as a dead-letter queue (選擇其他 AWS 帳戶中的 Amazon SQS 佇列做為無效字母佇列),然後輸入要使用的佇列的 ARN。您必須將以資源為基礎政策連接到佇列,而且該佇列授與 EventBridge 向其傳送簡訊的許可。

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

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

      • 符合的事件:EventBridge 會將整個原始來源事件傳送至目標。此為預設值。

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

        指定相符事件的部分下,指定定義您希望 EventBridge 傳送至目標之事件部分的 JSON 路徑。

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

        在 JSON 中指定常數下,指定您希望 EventBridge 傳送到目標而非事件的 JSON 文字。

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

        1. 選擇 Configure input transformer (設定輸入轉換器)

        2. 按照 將輸入轉換器設定為建立規則的一部分 中的步驟配置輸入轉換器。

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

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

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

    3. (選用) 針對 Dead-letter queue (無效字母佇列),選擇是否使用標準 Amazon SQS 佇列做為無效字母佇列。若與此規則匹配的事件未成功傳送到目標,則 EventBridge 會將其傳送至無效字母佇列。執行下列任意一項:

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

      • 選擇 Select an Amazon SQS queue in the current AWS account to use as the dead-letter queue (選擇當前 AWS 帳戶中的 Amazon SQS 佇列以用作無效字母佇列),然後從下拉式清單中選擇要使用的佇列。

      • 選擇 Select an Amazon SQS queue in an other AWS account as a dead-letter queue (選擇其他 AWS 帳戶中的 Amazon SQS 佇列做為無效字母佇列),然後輸入要使用的佇列的 ARN。您必須將以資源為基礎政策連接到佇列,而且該佇列授與 EventBridge 向其傳送簡訊的許可。

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

    AWS service

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

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

      • 符合的事件:EventBridge 會將整個原始來源事件傳送至目標。此為預設值。

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

        指定相符事件的部分下,指定定義您希望 EventBridge 傳送至目標之事件部分的 JSON 路徑。

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

        在 JSON 中指定常數下,指定您希望 EventBridge 傳送到目標而非事件的 JSON 文字。

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

        1. 選擇 Configure input transformer (設定輸入轉換器)

        2. 按照 將輸入轉換器設定為建立規則的一部分 中的步驟配置輸入轉換器。

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

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

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

    3. (選用) 針對 Dead-letter queue (無效字母佇列),選擇是否使用標準 Amazon SQS 佇列做為無效字母佇列。若與此規則匹配的事件未成功傳送到目標,則 EventBridge 會將其傳送至無效字母佇列。執行下列任意一項:

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

      • 選擇 Select an Amazon SQS queue in the current AWS account to use as the dead-letter queue (選擇當前 AWS 帳戶中的 Amazon SQS 佇列以用作無效字母佇列),然後從下拉式清單中選擇要使用的佇列。

      • 選擇 Select an Amazon SQS queue in an other AWS account as a dead-letter queue (選擇其他 AWS 帳戶中的 Amazon SQS 佇列做為無效字母佇列),然後輸入要使用的佇列的 ARN。您必須將以資源為基礎政策連接到佇列,而且該佇列授與 EventBridge 向其傳送簡訊的許可。

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

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

  5. 選擇 Next (下一步)

設定標籤和檢閱規則

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

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

  2. 選擇 Next (下一步)

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

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