AWS Batch EventBridge ターゲットとしての ジョブ - AWS Batch

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

AWS Batch EventBridge ターゲットとしての ジョブ

Amazon EventBridge は、Amazon Web Services リソースの変更を示すシステムイベントのストリームをほぼリアルタイムで提供します。通常、 AWS Batch Amazon Elastic Container Service、Amazon Elastic Kubernetes Service、および AWS Fargate ジョブでは、 EventBridge ターゲットとして使用できます。シンプルなルールを使用すると、イベントを照合し、それに応じて AWS Batch ジョブを送信できます。詳細については、「Amazon EventBridge ユーザーガイド」の「 とは EventBridge」を参照してください。

EventBridge を使用して、 cronまたは rate 式を使用して特定の時間に呼び出される自動アクションをスケジュールすることもできます。詳細については、「Amazon ユーザーガイド」の「スケジュールに従って実行される Amazon EventBridge ルールの作成」を参照してください。 EventBridge

イベントがイベントパターンに一致したときに実行されるルールを作成する方法については、「Amazon ユーザーガイド」の「イベントに反応する Amazon EventBridge ルールの作成」を参照してください。 EventBridge

EventBridge ターゲットとしての AWS Batch ジョブの一般的なユースケースには、次のユースケースが含まれます。

  • スケジュールされたジョブは、一定の時間間隔で発生します。例えば、cron ジョブは、Amazon EC2 スポットインスタンスのコストが低い時間帯にのみ発生します。

  • AWS Batch ジョブは、 にログインされた API オペレーションに応答して実行されます CloudTrail。例えば、指定したAmazon S3 バケットにオブジェクトがアップロードされるたびにジョブが送信されます。この場合、 EventBridge 入力トランスフォーマーはオブジェクトのバケット名とキー名をパラメータに渡 AWS Batch します。

    注記

    このシナリオでは、すべての関連 AWS リソースが同じリージョンに存在する必要があります。これには、Amazon S3 バケット、 EventBridge ルール、 CloudTrail ログなどのリソースが含まれます。

EventBridge ルールとターゲットを使用して AWS Batch ジョブを送信する前に、 EventBridge サービスには AWS Batch ジョブを実行するためのいくつかのアクセス許可が必要です。 EventBridge コンソールで AWS Batch ジョブをターゲットとして指定するルールを作成する場合、このロールを作成することもできます。このロールに必要なサービスプリンシパルと IAM アクセス権限の詳細については、EventBridge IAM ロールを参照してください。

スケジュールされた AWS Batch ジョブの作成

次の手順では、スケジュールされた AWS Batch ジョブと必要な EventBridge IAM ロールを作成する方法について説明します。

でスケジュールされた AWS Batch ジョブを作成するには EventBridge
注記

この手順は、Amazon ECS、Amazon EKS、および AWS Fargate ジョブのすべての AWS Batch で機能します。

  1. https://console.aws.amazon.com/events/ で Amazon EventBridge コンソールを開きます。

  2. ナビゲーションバーから、 AWS リージョン 使用する を選択します。

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

  4. ルールの作成 を選択します。

  5. 名前 で、コンピューティング環境の一意な名前を指定します。名前は最大 64 文字まで入力できます。大文字、小文字、数字、ハイフン (-)、アンダースコア (_) を含めることができます。

    注記

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

  6. (オプション) 説明に、ルールの説明を入力します。

  7. イベントバス] では、このルールに関連付けるイベントバスを選択します。このルールをアカウントからのイベントと一致させるには、デフォルト を選択します。アカウントの AWS サービス がイベントを発行すると、常にアカウントのデフォルトのイベントバスに移動します。

  8. (オプション) すぐに実行しないバスのルールについては、そのルールをオフにします。

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

  10. 続行してルールを作成する または 次へ を選択します。

  11. スケジュールパターン] では、次のいずれかを実行します。

    • 毎月第一月曜日の太平洋標準日午前 8:00 など、毎月最初の月曜日の PST に cron 式を入力します。詳細については、「Amazon EventBridge ユーザーガイド」の「Cron 式」を参照してください。

    • 一定の間隔 (10 分ごとなど) で実行するスケジュールを選択してから、rate 式を入力します。

  12. 次へ を選択します。

  13. ターゲットタイプ] には、AWS サービス を選択します。

  14. ターゲットの選択 で、バッチジョブのキュー を選択します。次を設定します。

    • ジョブキュー]: ジョブをスケジュールするジョブキューの Amazon リソースネーム (ARN) を入力します。

    • ジョブ定義]: ジョブに使用するジョブ定義の名前、改正、または完全な ARN を入力します。

    • ジョブ名]: ジョブの名前を入力します。

    • 配列サイズ]: (オプション) 複数のコピーを実行するためのジョブの配列サイズを入力します。詳細については、配列ジョブを参照してください。

    • ジョブの試行]: (オプション) ジョブが失敗したときに再試行する回数を入力します。詳細については、「ジョブの再試行の自動化」を参照してください。

  15. バッチジョブキューのターゲットタイプの場合、 にはターゲットにイベントを送信するアクセス許可 EventBridge が必要です。 EventBridge は、ルールの実行に必要な IAM ロールを作成できます。次のいずれかを行います。

    • 自動的に IAM ロールを作成するには、この特定のリソースに対して新しいロールを作成する を選択します。

    • 以前に作成した IAM ロールを使用するには、既存のロールの使用 を選択します。

  16. (オプション)追加設定 を展開します。

    1. ターゲット入力の設定 で、イベントからのテキストをターゲットに渡す前にどのように処理するかを選択します。

    2. イベントの最大保存期間 では、未処理のイベントを保存する時間間隔を指定します。

    3. 再試行 では、イベントを再試行する回数を入力します。

    4. デッドレターキュー では、未処理イベントの取扱いに関するオプションを選択します。必要に応じて、デッドレターキューに Amazon SQS キューを指定します。

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

  18. 次へ を選択します。

  19. (オプション) タグ新しいタグを追加 を選択し、ルールのリソースラベルを追加します。詳細については、「Amazon EventBridge tags」を参照してください。

  20. 次へ を選択します。

  21. レビューと作成では、設定手順を確認してください。変更する必要がある場合は、編集] を選択します。完了したら、ルールの作成 を選択します。

ルールの作成の詳細については、「Amazon ユーザーガイド」の「スケジュールに従って実行される Amazon EventBridge ルールの作成」を参照してください。 EventBridge

イベントパターンを持つルールの作成

以下の手順では、イベントパターンを使用してルールを作成する方法について説明します。

イベントが定義されたパターンと一致するときにイベントをターゲットに送信するルールを作成するには
注記

この手順は、Amazon ECS、Amazon EKS、および AWS Fargate ジョブのすべての AWS Batch で機能します。

  1. https://console.aws.amazon.com/events/ で Amazon EventBridge コンソールを開きます。

  2. ナビゲーションバーから、 AWS リージョン 使用する を選択します。

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

  4. ルールの作成 を選択します。

  5. 名前 で、コンピューティング環境の一意な名前を指定します。名前は最大 64 文字まで入力できます。大文字、小文字、数字、ハイフン (-)、アンダースコア (_) を含めることができます。

    注記

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

  6. (オプション) 説明に、ルールの説明を入力します。

  7. イベントバス] では、このルールに関連付けるイベントバスを選択します。このルールをアカウントからのイベントと一致させるには、デフォルト を選択します。アカウントの AWS サービス がイベントを発行すると、常にアカウントのデフォルトのイベントバスに移動します。

  8. (オプション) すぐに実行しないバスのルールについては、そのルールをオフにします。

  9. ルールタイプ では、イベントパターンを持つルール] を選択します。

  10. 次へ をクリックします。

  11. イベントソース で、AWS イベント または EventBridge パートナーイベント を選択します。

  12. (オプション) サンプルイベント では:

    1. サンプルイベントタイプ では、AWS イベント を選択します。

    2. サンプルイベントでは、 バッチジョブの状態変更 を選択します。

  13. 作成方法 では、パターンフォームの使用 を選択します。

  14. イベントパターン では:

    1. イベントソース では、AWS サービス を選択します。

    2. AWS サービス では、バッチ を選択します。

    3. イベントタイプ では、バッチジョブの状態変更 を選択します。

  15. 次へ を選択します。

  16. ターゲットタイプ] には、AWS サービス を選択します。

  17. ターゲットタイプを選択 で、ターゲットタイプを選択します。たとえば、バッチジョブのキュー を選択します。以下を指定します。

    • ジョブキュー]: ジョブをスケジュールするジョブキューの Amazon リソースネーム (ARN) を入力します。

    • ジョブ定義]: ジョブに使用するジョブ定義の名前、改正、または完全な ARN を入力します。

    • ジョブ名]: ジョブの名前を入力します。

    • 配列サイズ]: (オプション) 複数のコピーを実行するためのジョブの配列サイズを入力します。詳細については、配列ジョブを参照してください。

    • ジョブの試行]: (オプション) ジョブが失敗したときに再試行する回数を入力します。詳細については、「ジョブの再試行の自動化」を参照してください。

  18. バッチジョブキューのターゲットタイプの場合、 にはターゲットにイベントを送信するアクセス許可 EventBridge が必要です。 EventBridge は、ルールの実行に必要な IAM ロールを作成できます。次のいずれかを行います。

    • 自動的に IAM ロールを作成するには、この特定のリソースに対して新しいロールを作成する を選択します。

    • 以前に作成した IAM ロールを使用するには、既存のロールの使用 を選択します。

  19. (オプション)追加設定 を展開します。

    1. ターゲット入力の設定 で、イベントからのテキストの処理方法を選択します。

    2. イベントの最大保存期間 では、未処理のイベントを保存する時間間隔を指定します。

    3. 再試行 では、イベントを再試行する回数を入力します。

    4. デッドレターキュー では、未処理イベントの取扱いに関するオプションを選択します。必要に応じて、デッドレターキューに Amazon SQS キューを指定します。

  20. (オプション) 別のターゲットを追加 を選択して、別のターゲットを追加します。

  21. 次へ を選択します。

  22. (オプション) タグ新しいタグを追加 を選択し、リソースラベルを追加します。詳細については、「Amazon ユーザーガイド」の「Amazon EventBridge タグ」を参照してください。 EventBridge

  23. 次へ を選択します。

  24. レビューと作成では、設定手順を確認してください。変更する必要がある場合は、編集] を選択します。完了したら、ルールの作成 を選択します。

    ルールの作成の詳細については、「Amazon ユーザーガイド」の「イベントに反応する Amazon EventBridge ルールの作成」を参照してください。 EventBridge

EventBridge 入力トランスフォーマーを使用してスケジュールに従ってイベント情報を AWS Batch ターゲットに渡す

EventBridge 入力トランスフォーマーを使用して、ジョブ送信 AWS Batch でイベント情報を に渡すことができます。これは、他の AWS イベント情報の結果としてジョブを呼び出す場合は、特に重要です。例えば、Amazon S3 バケットへのオブジェクトのアップロード時など。または、コンテナのコマンドで、パラメータの置換値を使用したジョブ定義を使用できます。 EventBridge Input Transformer は、イベントデータに基づいてパラメータ値を指定できます。

その後、開始する AWS Batch イベントからの情報を解析し、 parameters オブジェクトに変換するイベントターゲットを作成します。ジョブが実行されると、トリガーイベントからのパラメータがジョブコンテナのコマンドに渡されます。

注記

このシナリオでは、すべての AWS リソース (Amazon S3 バケット、 EventBridge ルール、 CloudTrailログなど) が同じリージョンにある必要があります。

入力トランスフォーマーを使用する AWS Batch ターゲットを作成するには
  1. https://console.aws.amazon.com/events/ で Amazon EventBridge コンソールを開きます。

  2. ナビゲーションバーから、 AWS リージョン 使用する を選択します。

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

  4. ルールの作成 を選択します。

  5. 名前 で、コンピューティング環境の一意な名前を指定します。名前は最大 64 文字まで入力できます。大文字、小文字、数字、ハイフン (-)、アンダースコア (_) を含めることができます。

    注記

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

  6. (オプション) 説明 に、ルールの説明を入力します。

  7. イベントバス] では、このルールに関連付けるイベントバスを選択します。このルールをアカウントからのイベントと一致させるには、デフォルト を選択します。アカウントの AWS サービス がイベントを発行すると、常にアカウントのデフォルトのイベントバスに移動します。

  8. (オプション) すぐに実行しないバスのルールについては、そのルールをオフにします。

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

  10. 続行してルールを作成する または 次へ を選択します。

  11. スケジュールパターン] では、次のいずれかを実行します。

    • 毎月第一月曜日の太平洋標準日午前 8:00 など、毎月最初の月曜日の PST で、cron 式を入力します。詳細については、「Amazon EventBridge ユーザーガイド」の「cron 式」を参照してください。

    • 一定の間隔 (10 分ごとなど) で実行するスケジュールを選択してから、rate 式を入力します。

  12. 次へ を選択します。

  13. ターゲットタイプ] には、AWS サービス を選択します。

  14. ターゲットの選択 で、バッチジョブのキュー を選択します。次を設定します。

    • ジョブキュー]: ジョブをスケジュールするジョブキューの Amazon リソースネーム (ARN) を入力します。

    • ジョブ定義]: ジョブに使用するジョブ定義の名前、改正、または完全な ARN を入力します。

    • ジョブ名]: ジョブの名前を入力します。

    • 配列サイズ]: (オプション) 複数のコピーを実行するためのジョブの配列サイズを入力します。詳細については、配列ジョブを参照してください。

    • ジョブの試行]: (オプション) ジョブが失敗したときに再試行する回数を入力します。詳細については、「ジョブの再試行の自動化」を参照してください。

  15. バッチジョブキューのターゲットタイプの場合、 にはターゲットにイベントを送信するアクセス許可 EventBridge が必要です。 EventBridge は、ルールの実行に必要な IAM ロールを作成できます。次のいずれかを行います。

    • 自動的に IAM ロールを作成するには、この特定のリソースに対して新しいロールを作成する を選択します。

    • 以前に作成した IAM ロールを使用するには、既存のロールの使用 を選択します。

  16. (オプション)追加設定 を展開します。

  17. 追加設定 セクションの ターゲット入力の設定]入力トランスフォーマー] を選択します。

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

  19. (オプション) サンプルイベント では:

    1. サンプルイベントタイプ では、AWS イベント を選択します。

    2. サンプルイベントでは、 バッチジョブの状態変更 を選択します。

  20. ターゲット入力トランスフォーマー入力パス で、トリガーするイベントから解析する値を指定します。例えば、バッチジョブの状態変更 イベントを解析するには、次の JSON 形式を使用します。

    { "instance": "$.detail.jobId", "state": "$.detail.status" }
  21. テンプレート] では、以下を入力します。

    { "instance": <jobId> , "status": <status> }
  22. 確認] を選択します。

  23. イベントの最大保存期間 では、未処理のイベントを保存する時間間隔を指定します。

  24. 再試行 では、イベントを再試行する回数を入力します。

  25. デッドレターキュー では、未処理イベントの取扱いに関するオプションを選択します。必要に応じて、デッドレターキューに Amazon SQS キューを指定します。

  26. (オプション) 別のターゲットを追加 を選択して、別のターゲットを追加します。

  27. 次へ を選択します。

  28. (オプション) タグ新しいタグを追加 を選択し、リソースラベルを追加します。詳細については、「Amazon ユーザーガイド」の「Amazon EventBridge タグ」を参照してください。 EventBridge

  29. 次へ を選択します。

  30. レビューと作成では、設定手順を確認してください。変更する必要がある場合は、編集] を選択します。完了したら、ルールの作成 を選択します。