

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

# EventBridge 排程器入門
<a name="getting-started"></a>

本主題說明建立新的 EventBridge 排程器排程。您可以使用 EventBridge 排程器主控台 AWS Command Line Interface (AWS CLI) 或 AWS SDKs來建立具有範本 Amazon SQS 目標的排程。然後，您將設定記錄、設定重試，並設定失敗任務的最長保留時間。建立排程後，您將驗證排程是否成功叫用目標，並將訊息傳送至目標佇列。

**注意**  
若要遵循本指南，建議您設定具有 中所述最低必要許可的 IAM 使用者[在 EventBridge 排程器中使用身分型政策](security_iam_id-based-policy-examples.md)。在您建立和設定使用者之後，請執行下列命令來設定您的存取憑證。您需要存取金鑰 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 版使用者指南*》中的[組態設定和優先順序](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-precedence)。

**Topics**
+ [先決條件](#getting-started-prerequisites)
+ [使用 EventBridge 排程器主控台建立排程](#getting-started-console)
+ [使用 建立排程 AWS CLI](#getting-started-cli)
+ [使用 EventBridge 排程器 SDKs建立排程](#getting-started-sdk)
+ [後續步驟？](#working-with-cli-sdk-whats-next)

## 先決條件
<a name="getting-started-prerequisites"></a>

在嘗試本節中的步驟之前，您必須執行下列動作：
+  完成中所述的任務 [設定 Amazon EventBridge 排程器](setting-up.md) 

## 使用 EventBridge 排程器主控台建立排程
<a name="getting-started-console"></a>

**使用主控台建立新排程**

1. 登入 AWS 管理主控台，然後選擇以下連結，開啟 EventBridge 主控台的 EventBridge 排程器區段：https：//[https://us-west-2.console.aws.amazon.com/scheduler/home?region=us-west-2\$1home](https://us-west-2.console.aws.amazon.com/scheduler/home?region=us-west-2#home) 
**注意**  
 您可以使用 AWS 管理主控台的區域選擇器 AWS 區域 來切換您的 。

1.  在**排程**頁面上，選擇**建立排程**。

1.  在**指定排程詳細資訊**頁面的**排程名稱和描述**區段中，執行以下動作：

   1. 在**排程名稱**中，輸入排程的名稱，例如 **MyTestSchedule** 

   1. 針對**描述 - *選用***，輸入排程的描述。例如：**My first schedule**。

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

1. 在**排程模式**區段中，執行下列動作：

   1.  針對**發生**，選擇下列其中一個模式選項。組態選項會根據您選擇的模式而變更。
      + **一次性排程** – 一次性排程只會在您指定的日期和時間叫用目標一次。

        針對**日期和時間**，以 `YYYY/MM/DD` 格式輸入有效的日期。然後，以 24 小時`hh:mm`格式指定時間戳記。最後，從下拉式清單選項中選擇時區。
      + **週期性排程** – 週期性排程會以您使用**cron**表達式或速率表達式指定的速率叫用目標。

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

      如需使用 Cron 和 Rate 表達式的詳細資訊，請參閱 [EventBridge 排程器中的排程類型](schedule-types.md)。

   1. 對於**彈性時段**，請選擇**關閉**以關閉選項，或從下拉式清單中選擇其中一個預先定義的時段。例如，如果您選擇 **15 分鐘**並設定週期性排程，每小時調用目標一次，則排程會在每小時一開始的 15 分鐘內執行。

1. 如果您在上一個步驟中選擇**週期性排程**，請在**時間範圍**區段中指定時區，並選擇性地設定排程的開始日期和時間，以及結束日期和時間。沒有開始日期的週期性排程會在建立和可用時立即開始。沒有結束日期的週期性排程將繼續無限期地調用其目標。

1. 選擇 **Next (下一步)**。

1. 在**選取目標**頁面上，執行下列動作：

   1. 選取**範本目標**，然後選擇目標 API。在此範例中，我們將選擇 **Amazon SQS `SendMessage`** 範本化目標。

   1. 在 **SendMessage** 區段中，針對 **SQS 佇列**，`arn:aws:sqs:us-west-2:123456789012:TestQueue`從下拉式清單中選擇現有的 Amazon SQS 佇列 ARN，例如 。若要建立新的佇列，請選擇**建立新的 SQS 佇列**以導覽至 Amazon SQS 主控台。建立佇列完成後，返回 EventBridge 排程器主控台並重新整理下拉式清單。您的新佇列 ARN 隨即出現，並且可以選取。

   1. 針對**目標**，輸入您希望 EventBridge Scheduler 交付至目標的承載。在此範例中，我們會將下列訊息傳送至目標佇列： **Hello, it's EventBridge Scheduler.**

1. 選擇**下一步**，然後在**設定 - *選用***頁面上，執行下列動作：

1. 

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

   1.  在**排程完成後的動作**區段中，設定 EventBridge Scheduler 在排程完成後採取的動作：
      +  如果您想要自動刪除排程，請選擇**刪除**。對於一次性排程，這會在排程調用目標一次之後發生。對於週期性排程，這發生在排程的最後一次計劃調用之後。如需自動刪除的詳細資訊，請參閱[排程完成後刪除](managing-schedule-delete.md#managing-schedule-automatic-deletion)。
      +  如果您不希望 EventBridge Scheduler 在排程完成後採取任何動作，請選擇 **NONE**，或不選擇值。

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

   1. 針對**事件的最長存留期 - *選用***，輸入 EventBridge 排程器必須保留未處理事件的最大**小時數 (s)** 和**分鐘數 (s)**。
**注意**  
最大值為 24 小時。

   1. 針對**重試次數上限**，輸入目標傳回錯誤時，EventBridge 排程器重新嘗試執行排程的次數上限。
**注意**  
 最大值為重試 185 次。

   1. 針對**無效字母佇列 (DLQ)**，請從下列選項中選擇：
      + **無** – 如果您不想設定 DLQ，請選擇此選項。
      + 在**我的 AWS 帳戶中選取 Amazon SQS 佇列做為 DLQ** – 選擇此選項，然後從下拉式清單中選取佇列 ARN，設定 AWS 帳戶 與您建立排程的 DLQ 相同的 DLQ。
      + 將**其他 AWS 帳戶中的 Amazon SQS 佇列指定為 DLQ** – 選擇此選項，然後輸入佇列的 ARN，如果佇列位於另一個 DLQ AWS 帳戶。您必須輸入佇列的確切 ARN，才能使用此選項。

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

   1. 針對**許可**，選擇**使用現有角色**，然後從下拉式清單中選取您在[設定](setting-up.md#setting-up-execution-role)程序期間建立的角色。您也可以選擇**前往 IAM 主控台**來建立新的角色。

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

1. 選擇 **Next (下一步)**。

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

1. 選擇**建立排程**以完成建立新的排程。您可以在**排程**頁面檢視新建立和現有的排程。在**狀態**欄底下，確認您的新排程狀態為**已啟用**。

1. 若要驗證您的排程是否叫用 Amazon SQS 目標，請開啟 Amazon SQS 主控台並執行下列動作：

   1. 從佇列清單中選擇目標**佇列**。

   1. 選擇**傳送及接收訊息**。

   1. 在**傳送和接收訊息**頁面的**接收訊息**下，選擇**輪詢訊息**，以擷取排程傳送至目標佇列的測試訊息。

## 使用 建立排程 AWS CLI
<a name="getting-started-cli"></a>

下列範例示範如何使用 AWS CLI 命令[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/scheduler/create-schedule.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/scheduler/create-schedule.html)，以建立具有範本 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建立排程
<a name="getting-started-sdk"></a>

在下列範例中，您可以使用 EventBridge 排程器 SDKs 建立具有範本 Amazon SQS 目標的 EventBridge 排程器排程。

**Example 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)
```

**Example 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");
    }
}
```

## 後續步驟？
<a name="working-with-cli-sdk-whats-next"></a>
+  如需使用 主控台 AWS CLI或 EventBridge 排程器 SDK 管理排程的詳細資訊，請參閱 [在 EventBridge 排程器中管理排程](managing-schedule.md)。
+  如需如何設定範本目標並了解如何使用通用目標參數的詳細資訊，請參閱[在 EventBridge 排程器中管理目標](managing-targets.md)。
+  如需 EventBridge 排程器資料類型和 API 操作的詳細資訊，請參閱 [EventBridge 排程器 API 參考](https://docs.aws.amazon.com/scheduler/latest/APIReference/)。