

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

# EventBridge ターゲットとしての AWS Batch ジョブ
<a name="batch-cwe-target"></a>

Amazon EventBridge は、Amazon Web Services リソースの変更を示すシステムイベントのほぼリアルタイムのストリームを提供します。通常、Amazon Elastic Container Service、Amazon Elastic Kubernetes Service、および AWS Fargate ジョブにおける AWS Batch は EventBridge のターゲットとして利用できます。簡単なルールを使用して、ルールに一致したイベントに応じて AWS Batch ジョブを送信できます。詳細については、Amazon EventBridge ユーザーガイドの[EventBridge とは](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)を参照してください。

EventBridge を使用して、**cron** や rate 式により特定の時間に自己トリガーする自動アクションをスケジュールすることもできます。詳細については、Amazon EventBridge ユーザーガイドの[スケジュールに従って実行する Amazon EventBridge ルールの作成](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)を参照してください。

イベントがイベントパターンに一致したときに実行されるルールを作成する方法については、Amazon EventBridge ユーザーガイドの[イベントに反応する Amazon EventBridge ルールの作成](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)を参照してください。

EventBridge ターゲットとなる AWS Batch ジョブの一般的な使用例としては、以下のようなユースケースがあります。
+ スケジュールされたジョブは、一定の時間間隔で発生します。例えば、**cron** ジョブは、Amazon EC2 スポットインスタンスのコストが低い時間帯にのみ発生します。
+ AWS Batch ジョブは CloudTrail にログインした API オペレーションに応答して実行されます。例えば、指定したAmazon S3 バケットにオブジェクトがアップロードされるたびにジョブが送信されます。そのたびに、EventBridge インプットトランスフォーマーはバケットとオブジェクトのキー名を AWS Batch パラメータに渡します。
**注記**  
このシナリオでは、関連する AWS リソースはすべて同じリージョン内に存在する必要があります。これには、Amazon S3 バケット、EventBridge ルール、CloudTrail ログなどのリソースが含まれます。

EventBridge ルールおよびターゲットを使用して AWS Batch ジョブを送信するには、AWS Batch ジョブを実行するアクセス権限が EventBridge サービスに必要です。EventBridge コンソールからAWS Batch ジョブをターゲットとして指定するルールを作成すると、このロールを作成することもできます。このロールに必要なサービスプリンシパルと IAM アクセス権限の詳細については、[EventBridge IAM ロール](CWE_IAM_role.md)を参照してください。

**Topics**
+ [

# チュートリアル: スケジュールされた AWS Batch ジョブを作成する
](scheduled-batch-job.md)
+ [

# チュートリアル: イベントパターンを使用してルールを作成する
](event-pattern-batch-job.md)
+ [

# チュートリアル: EventBridge 入力トランスフォーマーを使用して、スケジュールに従ってイベント情報を AWS Batch ターゲットに渡す
](cwe-input-transformer.md)

# チュートリアル: スケジュールされた AWS Batch ジョブを作成する
<a name="scheduled-batch-job"></a>

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

**EventBridge でスケジュールされた AWS Batch ジョブを作成するには**
**注記**  
この手順は、Amazon ECS、Amazon EKS、および AWS Fargate ジョブにおけるすべての AWS Batch で機能します。

1. Amazon EventBridge コンソールの [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) を開いてください。

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

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

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

1. **名前** で、コンピューティング環境の一意な名前を指定します。名前は最大 64 文字まで入力できます。大文字、小文字、数字、ハイフン (-)、アンダースコア (\$1) を含めることができます。
**注記**  
ルールには同じリージョン内および同じイベントバス上の別のルールと同じ名前を付けることはできません。

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

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

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

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

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

1. **[スケジュールパターン]** では、次のいずれかを実行します。
   + **毎月第一月曜日の太平洋標準日午前 8:00 など、特定の時間に実行される詳細なスケジュール**を選択してから、cron 式を入力します。詳細については、「*Amazon EventBridge ユーザーガイド*」の「[Cron 式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html#eb-cron-expressions)」を参照してください。
   + **一定の間隔 (10 分ごとなど) で実行するスケジュール**を選択してから、rate 式を入力します。

1. **次へ** を選択します。

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

1. **ターゲットの選択** で、**バッチジョブのキュー** を選択します。次を設定します。
   + **ジョブキュー]**: ジョブをスケジュールするジョブキューの Amazon リソースネーム (ARN) を入力します。
   + **ジョブ定義]**: ジョブに使用するジョブ定義の名前、改正、または完全な ARN を入力します。
   + **ジョブ名]**: ジョブの名前を入力します。
   + **配列サイズ]**: (オプション) 複数のコピーを実行するためのジョブの配列サイズを入力します。詳細については、[配列ジョブ](array_jobs.md)を参照してください。
   + **ジョブの試行]**: (オプション) ジョブが失敗したときに再試行する回数を入力します。詳細については、[ジョブの再試行の自動化](job_retries.md)を参照してください。

1. **バッチジョブキュー]** ターゲットタイプで、EventBridge はターゲットにイベントを送信するためのアクセス許可が必要です。EventBridge は、ルールの実行に必要な IAM ロールを作成できます。次のいずれかを行います:
   + 自動的に IAM ロールを作成するには、**この特定のリソースに対して新しいロールを作成する** を選択します。
   + 以前に作成した IAM ロールを使用するには、**既存のロールの使用** を選択します。

1. （オプション）**追加設定** を展開します。

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

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

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

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

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

1. **次へ** を選択します。

1. (オプション) **タグ** で **新しいタグを追加** を選択し、ルールのリソースラベルを追加します。詳細については、[Amazon EventBridge のタグ](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html)を参照してください。

1. **次へ** を選択します。

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

ルールの作成の詳細については、「*Amazon EventBridge ユーザーガイド*」の「[スケジュールに従って実行する Amazon EventBridge ルールの作成](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)」を参照してください。

# チュートリアル: イベントパターンを使用してルールを作成する
<a name="event-pattern-batch-job"></a>

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

**定義されたパターンにイベントが一致したときに、イベントをターゲットに送信するルールを作成するには**
**注記**  
この手順は、Amazon ECS、Amazon EKS、および AWS Fargate ジョブにおけるすべての AWS Batch で機能します。

1. Amazon EventBridge コンソールの [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) を開いてください。

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

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

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

1. **名前** で、コンピューティング環境の一意な名前を指定します。名前は最大 64 文字まで入力できます。大文字、小文字、数字、ハイフン (-)、アンダースコア (\$1) を含めることができます。
**注記**  
ルールには同じリージョン内および同じイベントバス上の別のルールと同じ名前を付けることはできません。

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

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

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

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

1. **次へ** を選択します。

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

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

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

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

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

1. **イベントパターン** では:

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

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

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

1. **次へ** を選択します。

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

1. **ターゲットタイプを選択** で、ターゲットタイプを選択します。例えば、**バッチジョブのキュー** を選択します。以下を指定します。
   + **ジョブキュー]**: ジョブをスケジュールするジョブキューの Amazon リソースネーム (ARN) を入力します。
   + **ジョブ定義]**: ジョブに使用するジョブ定義の名前、改正、または完全な ARN を入力します。
   + **ジョブ名]**: ジョブの名前を入力します。
   + **配列サイズ]**: (オプション) 複数のコピーを実行するためのジョブの配列サイズを入力します。詳細については、[配列ジョブ](array_jobs.md)を参照してください。
   + **ジョブの試行]**: (オプション) ジョブが失敗したときに再試行する回数を入力します。詳細については、[ジョブの再試行の自動化](job_retries.md)を参照してください。

1. **バッチジョブキュー]** ターゲットタイプで、EventBridge はターゲットにイベントを送信するためのアクセス許可が必要です。EventBridge は、ルールの実行に必要な IAM ロールを作成できます。次のいずれかを行います:
   + 自動的に IAM ロールを作成するには、**この特定のリソースに対して新しいロールを作成する** を選択します。
   + 以前に作成した IAM ロールを使用するには、**既存のロールの使用** を選択します。

1. （オプション）**追加設定** を展開します。

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

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

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

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

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

1. **次へ** を選択します。

1. (オプション) **タグ** で **新しいタグを追加** を選択し、リソースラベルを追加します。詳細については、*Amazon EventBridge ユーザーガイド*の [Amazon EventBridge のタグ](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html)を参照してください。

1. **次へ** を選択します。

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

   ルールの作成に関する詳細については、「*Amazon EventBridge ユーザーガイド*」の「[イベントに反応する Amazon EventBridge ルールの作成](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)」を参照してください。

# チュートリアル: EventBridge 入力トランスフォーマーを使用して、スケジュールに従ってイベント情報を AWS Batch ターゲットに渡す
<a name="cwe-input-transformer"></a>

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

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

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

**入力トランスフォーマーを使用する AWS Batch ターゲットを作成するには**

1. Amazon EventBridge コンソールの [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) を開いてください。

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

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

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

1. **名前** で、コンピューティング環境の一意な名前を指定します。名前は最大 64 文字まで入力できます。大文字、小文字、数字、ハイフン (-)、アンダースコア (\$1) を含めることができます。
**注記**  
ルールは、同じ AWS リージョン および同じイベントバスの別のルールと同じ名前にすることはできません。

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

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

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

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

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

1. **[スケジュールパターン]** では、次のいずれかを実行します。
   + **毎月第一月曜日の太平洋標準日午前 8:00 など、特定の時間に実行される詳細なスケジュール**を選択してから、cron 式を入力します。詳細については、「*Amazon EventBridge ユーザーガイド*」の「[Cron 式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html#eb-cron-expressions)」を参照してください。
   + **一定の間隔 (10 分ごとなど) で実行するスケジュール**を選択してから、rate 式を入力します。

1. **次へ** を選択します。

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

1. **ターゲットの選択** で、**バッチジョブのキュー** を選択します。次を設定します。
   + **[ジョブキュー]**: ジョブをスケジュールするジョブキューの Amazon リソースネーム (ARN) を入力します。
   + **[ジョブ定義]**: ジョブに使用するジョブ定義の名前、改正、または完全な ARN を入力します。
   + **[ジョブ名]**: ジョブの名前を入力します。
   + **[配列サイズ]**: (オプション) 複数のコピーを実行するためのジョブの配列サイズを入力します。詳細については、[配列ジョブ](array_jobs.md)を参照してください。
   + **[ジョブの試行]**: (オプション) ジョブが失敗したときに再試行する回数を入力します。詳細については、[ジョブの再試行の自動化](job_retries.md)を参照してください。

1. **[バッチジョブキュー]** ターゲットタイプで、EventBridge はターゲットにイベントを送信するためのアクセス許可が必要です。EventBridge は、ルールの実行に必要な IAM ロールを作成できます。次のいずれかを行います。
   + 自動的に IAM ロールを作成するには、**この特定のリソースに対して新しいロールを作成する** を選択します。
   + 以前に作成した IAM ロールを使用するには、**既存のロールの使用** を選択します。

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

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

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

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

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

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

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

   ```
   {
       "instance": "$.detail.jobId",
       "state": "$.detail.status"
   }
   ```

1. **[テンプレート]** では、以下を入力します。

   ```
   {
       "instance": <jobId> ,
       "status": <status>
   }
   ```

1. **[確認]** を選択します。

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

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

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

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

1. **次へ** を選択します。

1. (オプション) **タグ** で **新しいタグを追加** を選択し、リソースラベルを追加します。詳細については、*Amazon EventBridge ユーザーガイド*の [Amazon EventBridge のタグ](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html)を参照してください。

1. **次へ** を選択します。

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