View a markdown version of this page

スケジュールに従って Lambda 関数を呼び出す - AWS Lambda

スケジュールに従って Lambda 関数を呼び出す

Amazon EventBridge スケジューラはサーバーレススケジューラで、一元化されたマネージドサービスからタスクを作成、実行、管理するために使用できます。EventBridge スケジューラでは、繰り返しのパターンに cron やレート式を使ってスケジュールを作成したり、1回限りの呼び出しを設定したりできます。配信の時間枠を柔軟に設定したり、再試行制限を定義したり、未処理のイベントの最大保持時間を設定できます。

Lambda で EventBridge スケジューラを設定すると、EventBridge スケジューラは Lambda 関数を非同期的に呼び出します。スケジュールは、Lambda コンソール ([トリガーを追加] フローを使用)、EventBridge スケジューラコンソール、AWS CLI、または CloudFormation から作成できます。このページでは、EventBridge スケジューラを使用してスケジュールに基づき Lambda 関数を呼び出す方法について説明します。

実行ロールを設定する

新しいスケジュールを作成する場合、EventBridge スケジューラにはユーザーに代わってターゲット API オペレーションを呼び出すアクセス許可が必要です。実行ロールを使用して、これらのアクセス許可を EventBridge スケジューラに付与します。スケジュールの実行ロールにアタッチするアクセス許可ポリシーによって、必要なアクセス許可が定義されます。これらのアクセス許可は、EventBridge スケジューラが呼び出すターゲット API によって異なります。

Lambda コンソールまたは EventBridge スケジューラコンソールを使用してスケジュールを作成すると、EventBridge スケジューラは選択したターゲットに基づき実行ロールを自動的に設定します。EventBridge スケジューラ SDK、AWS CLI、または CloudFormation のいずれかを使用してスケジュールを作成する場合、EventBridge スケジューラがターゲットを呼び出すために必要なアクセス許可を付与する既存の実行ロールが必要です。スケジュールに合わせて実行ロールを手動で設定する方法についての詳細は、「EventBridge スケジューラユーザーガイド」の「実行ロールを設定する」を参照してください。

Lambda コンソールからスケジュールを作成する

Lambda コンソールで [トリガーを追加] フローを使用して、コンソールを離れることなく EventBridge スケジューラのスケジュールを作成します。

Lambda コンソールを使用してスケジューラトリガーを作成するには
  1. Lambda コンソールの [関数] ページを開きます。

  2. スケジュールする関数を選択します。

  3. [関数の概要] ペインで、[トリガーを追加] を選択します。

  4. トリガーソースのドロップダウンから、[スケジューラ] を選択します。

  5. スケジュール設定を設定します。

    1. [スケジュール名] – スケジュールの名前を入力します。

    2. [スケジュールグループ] – スケジュールグループを選択するか、default を使用します。

    3. [スケジュールの種類] – 次のいずれかを選択します。

      • [1 回限りのスケジュール] – 指定された日時に関数を 1 回呼び出します。

      • [定期的なスケジュール] – cron 式または rate 式を使用して関数を繰り返し呼び出します。

    4. (オプション) JSON ペイロードを入力します。ペイロードを入力しない場合、EventBridge スケジューラは空のイベントを使用して関数を呼び出します。

    5. 実行ロールを設定します。EventBridge スケジューラに新しい実行ロールを作成させるには、[このスケジュールの新しいロールを作成] を選択します。その後、[ロール名] で名前を入力します。このオプションを選択すると、EventBridge スケジューラは必要なアクセス許可を持つポリシーを作成し、ロールにアタッチします。

  6. [Add] (追加) を選択します。

ヒント

[トリガーを追加] フローで schedulecrontime、または recurring を検索してこのトリガーを検索することもできます。

EventBridge スケジューラコンソールを使用してスケジュールを作成することもできます。EventBridge スケジューラコンソールを使用すると、フレックスタイムウィンドウやデッドレターキューなどの追加オプションを設定できます。

EventBridge スケジューラのトリガーを表示する

関数を対象とするすべての EventBridge スケジューラのスケジュールは、関数設定ページの [トリガー] セクションの [スケジューラ] ラベルの下に表示されます。これには、次のいずれかのソースから作成されたスケジュールが含まれます。

  • Lambda コンソール ([トリガーを追加] フロー)

  • EventBridge スケジューラコンソール

  • AWS CLI、SDK、CloudFormation、AWS SAM (ScheduleV2 イベントタイプを使用)、または AWS CDK (aws-scheduler モジュールを使用)

注記

スケジュールがユニバーサルターゲット呼び出し (UTI) ターゲットによる暗号化にカスタマーマネージドキーを使用している場合、トリガーリストに表示されないことがあります。これらのスケジュールを表示するには、EventBridge スケジューラコンソールを使用します。

EventBridge スケジューラが関数を呼び出したことを確認するには、関数の Amazon CloudWatch ログを確認してください。

EventBridge スケジューラに関する詳細については、次を参照してください。