EventBridge スケジューラの開始方法 - EventBridge スケジューラ

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

EventBridge スケジューラの開始方法

このトピックでは、新しい EventBridge スケジューラのスケジュールの作成について説明します。EventBridge スケジューラのコンソール、AWS Command Line Interface (AWS CLI)、または AWS SDK を使用して、テンプレート化された Amazon SQS ターゲットを使用してスケジュールを作成します。次に、ロギングを設定し、再試行回数を設定し、失敗したタスクの最大保持時間を設定します。スケジュールを作成したら、スケジュールがターゲットを正常に呼び出し、ターゲットキューにメッセージを送信することを確認します。

注記

このガイドに従うには、「アイデンティティベースのポリシーを使用する」で説明されている最低限の権限で IAM ユーザーを設定することをお勧めします。ユーザーを作成して設定したら、次のコマンドを実行してアクセス認証情報を設定します。AWS CLI を設定するには、アクセスキー ID と シークレットアクセスキーが必要です。

$ 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

認証情報を設定するさまざまな方法について詳しくは、「バージョン 2 用 AWS Command Line Interface ユーザーガイド」の「構成設定と優先順位」を参照してください。

前提条件

このセクションの手順を開始する前に、次を実行します。

EventBridge スケジューラのコンソールを使用してスケジュールを作成する

コンソールを使用して新しいスケジュールを作成するには
  1. AWS Management Console にサインインし、次のリンクを選択して EventBridge コンソールの EventBridge スケジューラのセクションを開きます。https://us-west-2.console.aws.amazon.com/scheduler/home?region=us-west-2#home

    注記

    AWS Management Console のリージョンセレクターを使用して AWS リージョン を切り替えることができます。

  2. [スケジュール] ページで、[スケジュールを作成] を選択します。

  3. [スケジュールの詳細を指定] ページの [スケジュールの名前と説明] セクションで、次を実行します。

    1. [スケジュール名] で、スケジュールの名前を入力します。例えば、MyTestSchedule などです。

    2. [説明 - オプション] で、スケジュールの説明を入力します。例えば、My first schedule です。

    3. [スケジュールグループ] で、ドロップダウンオプションからスケジュールグループを選択します。スケジュールグループをまだ作成していない場合は、スケジュールの default グループを選択できます。新しいスケジュールグループを作成するには、コンソールの説明にある [独自のスケジュールを作成] リンクを選択します。スケジュールグループを使用して、スケジュールのグループにタグを追加します。

  4. [スケジュールのパターン] セクションで、次の操作を行います。

    1. [頻度] で、以下のいずれかのパターンオプションを選択します。設定オプションは、選択したパターンによって変わります。

      • [1 回限りのスケジュール] – 1 回限りのスケジュールは、指定した日時に 1 回だけターゲットを呼び出します。

        [日付と時刻] には、有効な日付を YYYY/MM/DD 形式で入力します。次に、24 時間の hh:mm 形式でタイムスタンプを指定します。最後に、ドロップダウンオプションからタイムゾーンを選択します。

      • [繰り返しのスケジュール] – 繰り返しのスケジュールは、cron 式または rate 式を使用して指定したレートでターゲットを呼び出します。

        cron 式を使用してスケジュールを構成するには [CRON ベースのスケジュール] を選択します。rate 式を使用する場合は、[レートベースのスケジュール] を選択し、[値] に正の数を入力して、ドロップダウンオプションから [単位] を選択します。

      cron 式と rate 式の詳細については、「EventBridge スケジューラのスケジュールタイプ」を参照してください。

    2. [柔軟な時間枠] で、[オフ] を選択してオプションをオフにするか、ドロップダウンリストから事前定義された時間枠のいずれかを選択します。例えば、[15 分] を選択し、1 時間に 1 回ターゲットを呼び出す繰り返しのスケジュールを設定した場合、スケジュールは毎時の開始後 15 分以内に実行されます。

  5. 注記

    柔軟な時間枠機能は 1 回限りのスケジュールでは使用できません。

    前のステップで [繰り返しのスケジュール] を選択した場合は、[時間枠] セクションでタイムゾーンを指定し、必要に応じてスケジュールの開始日時と終了日時を設定します。開始日のない繰り返しのスケジュールは、作成されて利用可能になるとすぐに開始されます。終了日のない繰り返しのスケジュールは、そのターゲットを無期限に呼び出し続けます。

  6. [Next] (次へ) をクリックします。

  7. [ターゲットを選択] ページで、次の操作を行います。

    1. [テンプレート化されたターゲット] を選択し、ターゲット API を選択します。この例では、Amazon SQS SendMessage のテンプレート化されたターゲットを選択します。

    2. [SendMessage] セクションの [SQS キュー] で、ドロップダウンリストから arn:aws:sqs:us-west-2:123456789012:TestQueue などの既存の Amazon SQS キュー ARN を選択します。新しいキューを作成するには、[新しい SQS キューの作成] を選択して Amazon SQS コンソールに移動します。キューの作成が完了したら、EventBridge スケジューラのコンソールに戻り、ドロップダウンを更新します。新しいキュー ARN が表示され、選択できるようになります。

    3. [ターゲット] には、EventBridge スケジューラがターゲットに配信するペイロードを入力します。この例では、次のメッセージをターゲットキューに送信します: Hello, it's EventBridge Scheduler.

  8. [次へ] を選択し、[設定 - オプション] ページで次の操作を行います。

    1. [スケジュールの状態] セクションの [スケジュールを有効にする] で、スイッチを使って機能のオンとオフを切り替えます。デフォルトでは、EventBridge スケジューラはスケジュールを有効にします。

    2. [スケジュール完了後のアクション] セクションで、スケジュール完了後に EventBridge スケジューラが実行するアクションを設定します。

      • スケジュールを自動的に削除したい場合は、[削除] を選択します。1 回限りのスケジュールの場合は、スケジュールがターゲットを一度呼び出した後に削除が実行されます。繰り返しのスケジュールの場合は、スケジュールが最後に予定されていた呼び出しの後に削除が実行されます。自動削除の詳細については、「スケジュール完了後の削除」を参照してください。

      • スケジュールの完了後に EventBridge スケジューラにアクションを実行させない場合は [なし] を選択するか、値を選択しないでください。

    3. [再試行ポリシーとデッドレターキュー (DLQ)] セクションの [再試行ポリシー][再試行] をオンにして、スケジュールの再試行ポリシーを設定します。再試行ポリシーを使用すると、スケジュールがそのターゲットの呼び出しに失敗した場合、EventBridge スケジューラはスケジュールを再実行します。設定されている場合は、スケジュールの最大保持時間と再試行を設定する必要があります。

    4. [イベントの最大有効期間 - オプション] で、EventBridge スケジューラが未処理のイベントを保持しなければならない最大の [時間][分] を入力します。

      注記

      最大値は 24 時間です。

    5. [最大再試行回数] で、ターゲットがエラーを返した場合に EventBridge スケジューラがスケジュールを再試行する最大回数を入力します。

      注記

      再試行の最大値は 185 です。

    6. [デッドレターキュー (DLQ)] で、次のオプションから選択します。

      • [なし] — DLQ を設定しない場合は、このオプションを選択してください。

      • [自分の AWS アカウントの Amazon SQS キューを DLQ として選択] — このオプションを選択し、ドロップダウンリストからキュー ARN を選択し、スケジュールを作成しているのと同じ AWS アカウント に DLQ を設定します。

      • [他の AWS アカウントの Amazon SQS キューを DLQ として指定] — キューが別の AWS アカウント にある場合は、このオプションを選択し、DLQ として設定するキューの ARN を入力します。このオプションを使用するには、キューの正確な ARN を入力する必要があります。

    7. カスタマーマネージド KMS キーを使用してターゲットの入力を暗号化するには、[暗号化] セクションで [暗号化設定をカスタマイズする (高度)] を選択します。このオプションを選択した場合は、既存の KMS キー ARN を入力するか、[AWS KMS キーを作成] を選択して AWS KMS コンソールに移動します。EventBridge スケジューラが保管中のデータを暗号化する方法の詳細については、「保管中の暗号化」を参照してください。

    8. [アクセス許可][既存のロールを使用] を選択し、セットアップ手順中に作成したロールをドロップダウンリストから選択します。[IAM コンソールに移動] を選択して新しいロールを作成することもできます。

      EventBridge スケジューラに新しい実行ロールを作成させるには、[このスケジュールの新しいロールを作成] を選択します。その後、[ロール名] で名前を入力します。このオプションを選択すると、EventBridge スケジューラは、テンプレート化されたターゲットに必要な許可をロールに追加します。

  9. [Next] (次へ) をクリックします。

  10. [スケジュールの確認と作成] ページで、スケジュールの詳細を確認します。各セクションで、そのステップに戻って詳細を編集するには、[編集] を選択します。

  11. [スケジュールを作成] を選択して、新しいスケジュールの作成を完了します。[スケジュール] ページで、新規および既存のスケジュールのリストを表示できます。[ステータス] 列で、新しいスケジュールが [有効] になっていることを確認します。

  12. スケジュールが Amazon SQS ターゲットを呼び出すことを確認するには、Amazon SQS コンソールを開いて以下を実行します。

    1. [キュー] リストからターゲットキューを選択します。

    2. [メッセージの送信と受信] を選択します。

    3. [メッセージの送信と受信] ページの [メッセージの受信][メッセージのポーリング] を選択し、スケジュールによってターゲットキューに送信されたテストメッセージを取得します。

AWS CLI を使用してスケジュールを作成する

次の例は、AWS CLI コマンド create-schedule を使用して、テンプレート化された Amazon SQS ターゲットを使用して EventBridge スケジューラのスケジュールを作成する方法を示しています。次のパラメータのプレースホルダ値を自分自身の情報へと置き換えます。

  • --name – スケジュールの名前を入力します。

  • RoleArn — スケジュールに関連付ける実行ロールの ARN を入力します。

  • Arn — ターゲットの ARN を入力します。この場合、ターゲットは Amazon SQS キューです。

  • Input – EventBridge スケジューラがターゲットキューに配信するメッセージを入力します。

$ 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 スケジューラ SDK を使用してスケジュールタスクを作成する

次の例では、EventBridge スケジューラ SDK を使用して、テンプレート化された 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 SDK
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 スケジューラのデータ型と API オペレーションの詳細については、「EventBridge スケジューラ API リファレンス」を参照してください。