Amazon EventBridge でスケジュールに従って実行するルールの作成 - Amazon EventBridge

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

Amazon EventBridge でスケジュールに従って実行するルールの作成

ルールは、イベントに応じて実行したり、一定の時間間隔で実行したりすることができます。例えば、AWS Lambda 関数を定期的に実行するには、スケジュールに従って実行するルールを作成します。

注記

スケジュールに基づいて実行されるルールを作成できますが、EventBridge では、スケジュールされたタスクを一元的に作成、実行、管理するための、より柔軟で強力な方法として、EventBridge スケジューラ が提供されるようになりました。EventBridge スケジューラ では、繰り返しのパターンに cron や rate 式を使ってスケジュールを作成したり、1 回限りの呼び出しを設定したりできます。配信時間枠の柔軟な設定、再試行制限の定義、失敗した API 呼び出しの最大保持時間の設定を行うことができます。

Scheduler は高度にカスタマイズ可能で、スケジュールルールよりもスケーラビリティが高く、ターゲット API 操作と AWS のサービスの範囲が広がります。スケジュールに従ってターゲットを呼び出すには、Scheduler を使用することをお勧めします。

詳細については、「新しいスケジュールを作成する」を参照してください。

EventBridge では、次の 2 種類のスケジュールされたルールを作成できます。

  • 一定の間隔で実行するルール

    EventBridge は、これらのルールを定期的に (20 分間隔など) に実行します。

    スケジュールされたルールのレートを指定するには、rate 式を定義します。

  • 特定の時間に実行するルール

    EventBridge は、これらのルールを特定の日時 (毎月第一月曜日の 太平洋標準時午前 8:00 時など)

    スケジュールされたルールを実行する時刻と日付を指定するには、cron 式を定義します。

rate 式は定義がより簡単であり、cron 式はスケジュールを詳細に制御します。例えば、cron 式を使用すると、毎週、または毎月の特定の日の指定した時刻に実行されるルールを定義できます。それに対して、rate 式では、1 時間に 1 回または 1 日 1 回など、一定の間隔でルールを実行します。

スケジュールされたイベントはすべて UTC+0 のタイムゾーンを使用し、スケジュールの最小精度は 1 分です。

注記

Eventbridge のスケジュール式は、秒レベルの精度ではありません。cron 式を使用した最小の粒度は 1 分です。EventBridge とターゲットサービスは分散しているため、スケジュールされたルールがトリガーされてからターゲットサービスがターゲットリソースを実行するまでの間に数秒の遅延が発生することもあります。

次のビデオでは、タスクのスケジューリングの概要を示します。

定期的に実行するルールの作成

次の手順では、定期的に実行する Eventbridge ルールを作成する方法を示します。

注記

スケジュールされたルールは、デフォルトのイベントバスを使用してのみ作成できます。

ルールを定義する

まず、ルールを識別するため、ルールの名前と説明を入力します。

ルールの詳細を定義するには
  1. Amazon EventBridge コンソール (https://console.aws.amazon.com/events/) を開きます。

  2. ナビゲーションペインで ルール] を選択します。

  3. [Create rule] (ルールの作成) を選択します。

  4. ルールの名前を入力し、オプションで説明を入力します。

    ルールには、同じ AWS リージョン 内および同じイベントバス上の別のルールと同じ名前を付けることはできません。

  5. [イベントバス] で、デフォルトのイベントバスを選択します。スケジュールされたルールは、デフォルトのイベントバスを使用してのみ作成できます。

  6. ルールを作成してすぐに有効にするには、[選択したイベントバスでルールを有効にする] オプションをオンにします。

  7. ルールタイプ では、スケジュール] を選択します。

    この時点で、定期的に実行するルールの作成を続けるか、Amazon EventBridge スケジューラを使用するかを選択できます。

  8. 続行する方法を選択します。

    • EventBridge スケジューラを使用してスケジュールを作成する

      注記

      EventBridge スケジューラーはサーバーレススケジューラであり、一元化されたマネージドサービスからタスクを作成、実行、管理できます。イベントバスやルールに依存しない、1 回限りの定期的なスケジューリング機能を提供します。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 がこのスケジュールされたルールをいつ実行するかを決めるために使用する cron 式を定義するフィールドを指定します。

      すべてのフィールドを指定すると、EventBridge はこのスケジュールされたルールを実行する以降の 10 個の日付を表示します。これらの日付を UTC で表示するか、ローカルタイムゾーンで表示するかを選択できます。

      cron 式の作成の詳細については、「cron 式」を参照してください。

    Regular rate
    1. 一定の間隔 (10 分ごとなど) で実行するスケジュールを選択します。

    2. [rate 式] で、[値] フィールドと [単位] フィールドを指定し、EventBridge がこのスケジュールされたルールを実行するレートを定義します。

      rate 式の作成の詳細については、「rate 式」を参照してください。

  2. [Next] を選択します。

ターゲットを選択する

指定されたパターンに一致するイベントを受信するターゲットを 1 つまたは複数選択します。ターゲットには、EventBridge のイベントバス、Salesforce などの SaaS パートナーを含む EventBridge API 送信先、または別の AWS のサービス を含めることができます。

ターゲットを選択するには
  1. [ターゲットタイプ] で、以下のいずれかのターゲットタイプを選択します。

    Event bus

    EventBridge イベントバスを選択するには、[EventBridge event bus] (EventBridge イベントバス) を選択してから、次の操作を行います。

    API destination

    EventBridge API 送信先を使用するには、[EventBridge API の宛先] を選択し、次のいずれかの操作を行います。

    • 既存の API 送信先を使用するには、[Use an existing API destination] (既存の API 送信先を使用する) を選択します。次に、ドロップダウンリストから API 送信先を選択します。

    • 新しい API 送信先を作成するには、[Create a new API destination] (新しい API 送信先を作成する) を選択します。次に、送信先について次の詳細を指定します。

      • [Name] (名前) に、イベント送信先の名前を入力します。

        ロール名は AWS アカウント 内で一意である必要があります。文字列は 64 文字まで設定できます。有効な文字は、A-Za-z0-9、および ._- (ハイフン) です。

      • (オプション) [Description (説明) に、アクションの簡潔な説明を入力します。

        説明の長さは、最大 512 文字です。

      • [API destination endpoint] (API 送信先エンドポイント) — ターゲットの URL エンドポイント。

        エンドポイント URL は https で始まる必要があります。* をパスパラメータワイルドカードとして含めることができます。ターゲットの HttpParameters 属性からパスパラメータを設定できます。

      • [HTTP method] (HTTP メソッド) — エンドポイントを呼び出すときに使用する HTTP メソッドを選択します。

      • (オプション) [Invocation rate limit per second] (1 秒あたりの呼び出しレート制限) — この送信先で 1 秒あたりに受け入れられる呼び出しの最大数を入力します。

        この値はゼロより大きくなければなりません。デフォルトでは、この値は 300 に設定されます。

      • [接続] — 新しい接続を使用するか既存の接続を使用するかを選択します。

        • 既存の接続を使用するには、[既存の接続を使用] を選択し、ドロップダウンリストから接続を選択します。

        • この送信先に新しい接続を作成するには、[新しい接続を作成] を選択し、その接続の [名前][送信先タイプ]、および [認証タイプ] を定義します。この接続にオプションの [Description] (説明) を追加することもできます。

    詳細については、「Amazon EventBridge のターゲットとしての API 送信先」を参照してください。

    AWS のサービス

    AWS のサービス を使用するには、AWS のサービス を選択し、次の操作を行います。

    1. [Select a target] (ターゲットの選択) で、ターゲットとして使用する AWS のサービス を選択します。選択したサービスにリクエストされた情報を入力します。

      注記

      表示されるフィールドは、選択したサービスによって異なります。利用できるターゲットの詳細については、「EventBridge コンソールで利用可能なイベントバスターゲット」を参照してください。

  2. 多くのターゲットタイプでは、EventBridge はターゲットにイベントを送信するためのアクセス許可が必要です。これらの場合、EventBridge は、イベントの実行に必要な IAM ロールを作成できます。

    [Execution role] (実行ロール) では、次のいずれかを実行します。

    • このルールの新しい実行ロールを作成するには:

      1. [この特定のリソースについて新しいロールを作成] を選択します。

      2. この実行ロールの名前を入力するか、EventBridge によって生成された名前を使用します。

    • このルールに既存の実行ロールを使用するには:

      1. [既存のロールを使用] を選択します。

      2. 使用する実行ロールの名前を入力するか、ドロップダウンリストから選択します。

  3. (オプション) [追加設定] には、ターゲットタイプで使用できるオプション設定のいずれかを指定します。

    Event bus

    (オプション) [デッドレターキュー] で、標準 Amazon SQS キューをデッドレターキューとして使用するかどうかを選択します。EventBridge は、このルールに一致するイベントがターゲットに正常に配信されなかった場合に、そのイベントをデッドレターキューに送信します。次のいずれかを行います。

    • デッドレターキューを使用しない場合は、[None] (なし) を選択します。

    • Select an Amazon SQS queue in the current AWS account to use as the dead-letter queue(デッドレターキューとして使用する現在の アカウントの Amazon SQS キューを選択) を選択し、ドロップダウンリストから使用するキューを選択します。

    • Select an Amazon SQS queue in an other AWS account as a dead-letter queue(他の アカウントの Amazon SQS キューをデッドレターキューとして選択) を選択し、使用するキューの ARN を入力します。キューにメッセージを送信するための EventBridge 許可を付与するリソースベースのポリシーをそのキューにアタッチする必要があります。

      詳細については、「デッドレターキューへのアクセス許可の付与」を参照してください。

    API destination
    1. (オプション) [ターゲット入力を設定] で、一致するイベントに対してターゲットに送信されるテキストをカスタマイズする方法を選択します。以下のうちのひとつを選択します。

      • 一致したイベント — EventBridge は元のソースイベント全体をターゲットに送信します。これがデフォルトです。

      • 一致したイベントの一部 — EventBridge は、元のソースイベントの指定された部分のみをターゲットに送信します。

        [一致したイベントの一部を指定] で、EventBridge からターゲットに送信するイベント部分を定義する JSON パスを指定します。

      • 定数 (JSON テキスト) — EventBridge は指定された JSON テキストのみをターゲットに送信します。元のソースイベントは、いずれの部分も送信されません。

        [JSON で定数を指定] で、EventBridge がイベントの代わりにターゲットに送信する JSON テキストを指定します。

      • 入力トランスフォーマー — EventBridge からターゲットに送信するテキストをカスタマイズするように入力トランスフォーマーを設定します。詳細については、「Amazon EventBridge 入力変換」を参照してください。

        1. [入力トランスフォーマーを設定] を選択します。

        2. EventBridge でルールを作成するときに入力トランスフォーマーを設定する」の手順に従って入力トランスフォーマーを設定します。

    2. (オプション) [再試行ポリシー] で、エラーが発生した後に EventBridge がターゲットへのイベント送信を再試行する方法を指定します。

      • イベントの最大経過時間 — EventBridge が未処理のイベントを保持する最大時間 (時間、分、秒単位) を入力します。デフォルトは 24 時間です。

      • 再試行回数 — エラーが発生した後、EventBridge がターゲットへのイベント送信を再試行する最大回数を入力します。デフォルトは 185 回です。

    3. (オプション) [デッドレターキュー] で、標準 Amazon SQS キューをデッドレターキューとして使用するかどうかを選択します。EventBridge は、このルールに一致するイベントがターゲットに正常に配信されなかった場合に、そのイベントをデッドレターキューに送信します。次のいずれかを行います。

      • デッドレターキューを使用しない場合は、[None] (なし) を選択します。

      • Select an Amazon SQS queue in the current AWS account to use as the dead-letter queue(デッドレターキューとして使用する現在の アカウントの Amazon SQS キューを選択) を選択し、ドロップダウンリストから使用するキューを選択します。

      • Select an Amazon SQS queue in an other AWS account as a dead-letter queue(他の アカウントの Amazon SQS キューをデッドレターキューとして選択) を選択し、使用するキューの ARN を入力します。キューにメッセージを送信するための EventBridge 許可を付与するリソースベースのポリシーをそのキューにアタッチする必要があります。

        詳細については、「デッドレターキューへのアクセス許可の付与」を参照してください。

    AWS service

    特定の AWS のサービスに対しては、以下のフィールドがすべて表示されない場合があることに注意してください。

    1. (オプション) [ターゲット入力を設定] で、一致するイベントに対してターゲットに送信されるテキストをカスタマイズする方法を選択します。以下のうちのひとつを選択します。

      • 一致したイベント — EventBridge は元のソースイベント全体をターゲットに送信します。これがデフォルトです。

      • 一致したイベントの一部 — EventBridge は、元のソースイベントの指定された部分のみをターゲットに送信します。

        [一致したイベントの一部を指定] で、EventBridge からターゲットに送信するイベント部分を定義する JSON パスを指定します。

      • 定数 (JSON テキスト) — EventBridge は指定された JSON テキストのみをターゲットに送信します。元のソースイベントは、いずれの部分も送信されません。

        [JSON で定数を指定] で、EventBridge がイベントの代わりにターゲットに送信する JSON テキストを指定します。

      • 入力トランスフォーマー — EventBridge からターゲットに送信するテキストをカスタマイズするように入力トランスフォーマーを設定します。詳細については、「Amazon EventBridge 入力変換」を参照してください。

        1. [入力トランスフォーマーを設定] を選択します。

        2. EventBridge でルールを作成するときに入力トランスフォーマーを設定する」の手順に従って入力トランスフォーマーを設定します。

    2. (オプション) [再試行ポリシー] で、エラーが発生した後に EventBridge がターゲットへのイベント送信を再試行する方法を指定します。

      • イベントの最大経過時間 — EventBridge が未処理のイベントを保持する最大時間 (時間、分、秒単位) を入力します。デフォルトは 24 時間です。

      • 再試行回数 — エラーが発生した後、EventBridge がターゲットへのイベント送信を再試行する最大回数を入力します。デフォルトは 185 回です。

    3. (オプション) [デッドレターキュー] で、標準 Amazon SQS キューをデッドレターキューとして使用するかどうかを選択します。EventBridge は、このルールに一致するイベントがターゲットに正常に配信されなかった場合に、そのイベントをデッドレターキューに送信します。次のいずれかを行います。

      • デッドレターキューを使用しない場合は、[None] (なし) を選択します。

      • Select an Amazon SQS queue in the current AWS account to use as the dead-letter queue(デッドレターキューとして使用する現在の アカウントの Amazon SQS キューを選択) を選択し、ドロップダウンリストから使用するキューを選択します。

      • Select an Amazon SQS queue in an other AWS account as a dead-letter queue(他の アカウントの Amazon SQS キューをデッドレターキューとして選択) を選択し、使用するキューの ARN を入力します。キューにメッセージを送信するための EventBridge 許可を付与するリソースベースのポリシーをそのキューにアタッチする必要があります。

        詳細については、「デッドレターキューへのアクセス許可の付与」を参照してください。

  4. (オプション) [Add another target] (別のターゲットを追加) を選択して、このルールに別のターゲットを追加します。

  5. [Next] を選択します。

タグとレビュールールを設定する

最後に、ルールに一致する任意のタグを入力し、ルールを確認して作成します。

タグを設定し、ルールを確認して作成するには
  1. (オプション) ルールに 1 つ以上のタグを入力します。詳細については、「Amazon EventBridge でのリソースのタグ付け」を参照してください。

  2. [Next] を選択します。

  3. 新しいルールの詳細を確認します。セクションを変更するには、そのセクションの横にある [Edit] (編集) ボタンを選択します。

    ルールの詳細を確認したら、[Create rule] (ルールを作成) を選択します。