

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

# Amazon EventBridge の AWS Batch イベントストリーム
<a name="cloudwatch_event_stream"></a>

Amazon EventBridge の AWS Batch イベントストリームを使用して、ジョブキューにおけるジョブの現在の状態に関する通知を、ほぼリアルタイムで受け取ることができます。

EventBridgeを使用することで、AWS Batch サービスに関する更なるインサイトを得ることができます。具体的には、ジョブの進捗状況の確認、AWS Batchカスタムワークフローの構築、使用状況レポートやメトリクスの生成、独自のダッシュボードの作成などに使用できる。AWS BatchとEventBridgeがあれば、ジョブステータスの変更についてAWS Batchを継続的にポーリングするスケジューリングやモニタリングのコードは必要ない。その代わり、様々な Amazon EventBridge のターゲットを使って、AWS Batch ジョブの状態変化を非同期で処理することができます。これには、AWS Lambda、Amazon Simple Queue Service、Amazon Simple Notification Service、Amazon Kinesis Data Streams が含まれます。

AWS Batch イベントストリームのイベントは、少なくとも 1 回必ず送信されます。重複したイベントが送信された場合でも、イベントには重複を識別できるだけの十分な情報が備わっています。これにより、イベントのタイムスタンプとジョブの状態を比較できます。

AWS Batch ジョブは CloudWatch Events ターゲットとして利用可能です。簡単なルールを使用して、ルールに一致したイベントに応じて AWS Batch ジョブを送信できます。詳細については、Amazon EventBridge ユーザーガイドの[EventBridge とは](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)を参照してください。また、EventBridgeを使用して、**cron** またはレート式を使用して、特定の時間に自己トリガーする自動化されたアクションをスケジュールすることもできます。詳細については、Amazon EventBridge ユーザーガイドの[スケジュールに従って実行する Amazon EventBridge ルールの作成](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)を参照してください。チュートリアル例については、[EventBridge ターゲットとしての AWS Batch ジョブ](batch-cwe-target.md)を参照してください。詳細については、Amazon EventBridge スケジューラユーザーガイドの [Amazon EventBridge スケジューラとは](https://docs.aws.amazon.com/scheduler/latest/UserGuide/setting-up.html) を参照してください。

**Topics**
+ [

# AWS Batch イベント
](batch_cwe_events.md)
+ [

# チュートリアル: で AWS ユーザー通知を使用する AWS Batch
](using-user-notifications.md)
+ [

# EventBridge ターゲットとしての AWS Batch ジョブ
](batch-cwe-target.md)
+ [

# チュートリアル: EventBridge を使用して AWS Batch ジョブイベントをリッスンする
](batch_cwet.md)
+ [

# チュートリアル: 失敗したジョブイベントに Amazon シンプル通知サービスアラートを送信する
](batch_sns_tutorial.md)

# AWS Batch イベント
<a name="batch_cwe_events"></a>

AWS Batch は EventBridge にジョブステータス変更イベントを送信します。 はジョブの状態 AWS Batch を追跡します。以前に提出されたジョブの状態が変わった場合、イベントが起動します。例えば、`RUNNING` ステータスにあるジョブが `FAILED` ステータスに移動した場合などです。これらのイベントはジョブ状態の変更イベントとして分類されます。

**注記**  
AWS Batch は今後、他のイベントタイプ、ソース、詳細を追加する可能性があります。イベントJSONデータをプログラムでデシリアライズする場合、アプリケーションが未知のプロパティを処理できるように準備されていることを確認してください。これは、これらのプロパティが追加された場合に,問題が発生するのを防ぐためです。

# ジョブ状態変更イベント
<a name="batch_job_events"></a>

(以前に送信された) 既存のジョブで状態が変更されると、イベントが作成されます。AWS Batch ジョブ状態の詳細については、[ジョブの状態](job_states.md)を参照してください。

**注記**  
最初のジョブの送信では、イベントは作成されません。

**Example ジョブ状態変更イベント**  
ジョブ状態変更イベントは、以下のフォーマットで配信されます。ジョブ状態変更イベントは次の形式で送信されます (以下の `detail` セクションは、*AWS Batch API リファレンス*の[ DescribeJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html) API オペレーションから返される[ JobDetail ](https://docs.aws.amazon.com/batch/latest/APIReference/API_JobDetail.html)オブジェクトに似ています)。EventBridge パラメータの詳細については、*Amazon EventBridge ユーザーガイド*の[イベントとイベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)を参照してください。  

```
{
    "version": "0",
    "id": "c8f9c4b5-76e5-d76a-f980-7011e206042b",
    "detail-type": "Batch Job State Change",
    "source": "aws.batch",
    "account": "123456789012",
    "time": "2022-01-11T23:36:40Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:batch:us-east-1:123456789012:job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8"
    ],
    "detail": {
        "jobArn": "arn:aws:batch:us-east-1:123456789012:job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8",
        "jobName": "event-test",
        "jobId": "4c7599ae-0a82-49aa-ba5a-4727fcce14a8",
        "jobQueue": "arn:aws:batch:us-east-1:123456789012:job-queue/PexjEHappyPathCanary2JobQueue",
        "status": "RUNNABLE",
        "attempts": [],
        "createdAt": 1641944200058,
        "retryStrategy": {
            "attempts": 2,
            "evaluateOnExit": []
        },
        "dependsOn": [],
        "jobDefinition": "arn:aws:batch:us-east-1:123456789012:job-definition/first-run-job-definition:1",
        "parameters": {},
        "container": {
            "image": "137112412989.dkr.ecr.us-east-1.amazonaws.com/amazonlinux:latest",
            "command": [
                "sleep",
                "600"
            ],
            "volumes": [],
            "environment": [],
            "mountPoints": [],
            "ulimits": [],
            "networkInterfaces": [],
            "resourceRequirements": [
                {
                    "value": "2",
                    "type": "VCPU"
                }, {
                    "value": "256",
                    "type": "MEMORY"
                }
            ],
            "secrets": []
        },
        "propagateTags": false,
        "platformCapabilities": []
    }
}
```

# ジョブキューのブロックイベント
<a name="batch-job-queue-blocked-events"></a>

が `RUNNABLE`状態のジョブ AWS Batch を検出してキューをブロックするたびに、Amazon CloudWatch Events にイベントが作成されます。サポートされているキューのブロックの原因について詳しくは、「[`RUNNABLE` 状態でジョブが止まる](job_stuck_in_runnable.md)」を参照してください。[https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html) API アクションの `statusReason` フィールドでも同じ原因を確認できます。

**Example ジョブキューのブロックイベント**  
ジョブキューのブロックイベントは、以下のフォーマットで配信されます。ジョブ状態変更イベントは次の形式で送信されます (以下の `detail` セクションは、*AWS Batch API リファレンス*の[ DescribeJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html) API オペレーションから返される[ JobDetail ](https://docs.aws.amazon.com/batch/latest/APIReference/API_JobDetail.html)オブジェクトに似ています)。EventBridge パラメータの詳細については、*Amazon EventBridge ユーザーガイド*の[イベントとイベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)を参照してください。  

```
{
    "version": "0",
    "id": "c8f9c4b5-76e5-d76a-f980-7011e206042b",
    "detail-type": "Batch Job Queue Blocked",
    "source": "aws.batch",
    "account": "123456789012",
    "time": "2022-01-11T23:36:40Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:batch:us-east-1:123456789012:job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8",
        "arn:aws:batch:us-east-1:123456789012:job-queue/PexjEHappyPathCanary2JobQueue"
    ],
    "detail": {
        "jobArn": "arn:aws:batch:us-east-1:123456789012:job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8",
        "jobName": "event-test",
        "jobId": "4c7599ae-0a82-49aa-ba5a-4727fcce14a8",
        "jobQueue": "arn:aws:batch:us-east-1:123456789012:job-queue/PexjEHappyPathCanary2JobQueue",
        "status": "RUNNABLE",
        "statusReason": "blocked-reason",
        "attempts": [],
        "createdAt": 1641944200058,
        "retryStrategy": {
            "attempts": 2,
            "evaluateOnExit": []
        },
        "dependsOn": [],
        "jobDefinition": "arn:aws:batch:us-east-1:123456789012:job-definition/first-run-job-definition:1",
        "parameters": {},
        "container": {
            "image": "137112412989.dkr.ecr.us-east-1.amazonaws.com/amazonlinux:latest",
            "command": [
                "sleep",
                "600"
            ],
            "volumes": [],
            "environment": [],
            "mountPoints": [],
            "ulimits": [],
            "networkInterfaces": [],
            "resourceRequirements": [
                {
                    "value": "2",
                    "type": "VCPU"
                }, {
                    "value": "256",
                    "type": "MEMORY"
                }
            ],
            "secrets": []
        },
        "propagateTags": false,
        "platformCapabilities": []
    }
}
```

# サービスジョブ状態変更イベント
<a name="service-job-events"></a>

既存のサービスジョブで状態が変更されると、イベントが作成されます。サービスジョブの状態の詳細については、[AWS Batch サービスジョブのステータスを SageMaker AI ステータスにマッピングする](service-job-status.md) を参照してください。

**注記**  
最初のジョブの送信では、イベントは作成されません。

**Example サービスジョブ状態変更イベント**  
サービスジョブ状態変更イベントは、以下のフォーマットで配信されます。`detail` セクションは、*AWS Batch API リファレンス*の [DescribeServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html) API オペレーションから返される応答に似ています。EventBridge パラメータの詳細については、*Amazon EventBridge ユーザーガイド*の[イベントとイベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)を参照してください。  
`tags` および `serviceRequestPayload` フィールドはイベント `detail` に含まれません。

```
{
  "version": "0",
  "id": "c8f9c4b5-76e5-d76a-f980-7011e206042b",
  "detail-type": "Batch Service Job State Change",
  "source": "aws.batch",
  "account": "123456789012",
  "time": "2022-01-11T23:36:40Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:batch:us-east-1:123456789012:service-job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8"
  ],
  "detail": {
    "attempts": [
      {
        "serviceResourceId": {
          "name": "TrainingJobArn",
          "value": "arn:aws:sagemaker:us-east-1:123456789012:training-job/AWSBatchmy-training-job88b610a69aa8380ca5b0a7aba3f81cb8"
        },
        "startedAt": 1641944300058,
        "stoppedAt": 1641944400058,
        "statusReason": "Received status from SageMaker: Training job completed"
      }
    ],
    "createdAt": 1641944200058,
    "jobArn": "arn:aws:batch:us-east-1:123456789012:service-job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8",
    "jobId": "0bb17543-ece6-4480-b1a7-a556d344746b",
    "jobName": "event-test",
    "jobQueue": "arn:aws:batch:us-east-1:123456789012:job-queue/HappyPathJobQueue",
    "latestAttempt": {
      "serviceResourceId": {
        "name": "TrainingJobArn",
        "value": "arn:aws:sagemaker:us-east-1:123456789012:training-job/AWSBatchmy-training-job88b610a69aa8380ca5b0a7aba3f81cb8"
      }
    },
    "serviceJobType": "SAGEMAKER_TRAINING",
    "startedAt": 1641944300058,
    "status": "SUCCEEDED",
    "statusReason": "Received status from SageMaker: Training job completed",
    "stoppedAt": 1641944400058,
    "timeoutConfig": {
      "attemptDurationSeconds": 60
    }
  }
}
```

# サービスジョブキューのブロックイベント
<a name="batch-service-job-queue-blocked-events"></a>

がブロックされたキュー AWS Batch を検出するたびに、Amazon CloudWatch Events にイベントが作成されます。[https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html) API アクションの `statusReason` フィールドでキューのブロック原因を確認できます。

**Example サービスジョブキューのブロックイベント**  
サービスジョブキューのブロックイベントは、以下のフォーマットで配信されます。`detail` セクションは、*AWS Batch API リファレンス*の [DescribeServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html) API オペレーションから返される応答に似ています。EventBridge パラメータの詳細については、*Amazon EventBridge ユーザーガイド*の[イベントとイベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)を参照してください。  
`tags` および `serviceRequestPayload` フィールドはイベント `detail` に含まれません。

```
{
  "version": "0",
  "id": "c8f9c4b5-76e5-d76a-f980-7011e206042b",
  "detail-type": "Batch Service Job Queue Blocked",
  "source": "aws.batch",
  "account": "123456789012",
  "time": "2022-01-11T23:36:40Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:batch:us-east-1:123456789012:service-job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8"
  ],
  "detail": {
    "attempts": [],
    "createdAt": 1641944200058,
    "jobArn": "arn:aws:batch:us-east-1:123456789012:service-job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8",
    "jobId": "6271dfdf-d8a7-41b1-a4d2-55a2224f5375",
    "jobName": "event-test",
    "jobQueue": "arn:aws:batch:us-east-1:123456789012:job-queue/HappyPathJobQueue",
    "serviceJobType": "SAGEMAKER_TRAINING",
    "status": "RUNNABLE",
    "statusReason": "blocked-reason",
    "timeoutConfig": {
      "attemptDurationSeconds": 60
    }
  }
}
```

# サービスジョブのプリエンプションイベント
<a name="batch-service-job-preemption-events"></a>

プリエンプションイベントは、プリエンプションシーケンスが開始または完了するたびに発行されます。開始イベントは、借用容量を再利用するためにプリエンプションが最初にトリガーされたときに作成されます。完了したイベントは、プリエンプションシーケンスが終了すると作成され、プリエンプションされた試行の概要が含まれます。

**Example サービスジョブのプリエンプション開始イベント**  
サービスジョブのプリエンプション開始イベントは、次の形式で配信されます。EventBridge パラメータの詳細については、*Amazon EventBridge ユーザーガイド*の[イベントとイベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)を参照してください。  

```
{
  "version": "0",
  "id": "1b4a511e-2737-226a-a1e7-fc97f1cd9681",
  "detail-type": "Batch Service Job Preemption Started",
  "source": "aws.batch",
  "account": "123456789012",
  "time": "2026-03-16T19:57:27Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:batch:us-east-1:123456789012:service-job/51f245a9-2995-4a53-bced-7b3c00028f84"
  ],
  "detail": {
    "statusReason": "PREEMPTION_IN_PROGRESS: Cross-share preemption triggered to reclaim borrowed capacity",
    "preemptedJobArn": "arn:aws:batch:us-east-1:123456789012:service-job/51f245a9-2995-4a53-bced-7b3c00028f84",
    "status": "RUNNING"
  }
}
```

**Example サービスジョブのプリエンプション完了イベント**  
サービスジョブのプリエンプションが完了したイベントは、次の形式で配信されます。`preemptionSummary` フィールドには、カウントや最新のプリエンプションされた試行情報など、プリエンプションされた試行に関する詳細が含まれます。  

```
{
  "version": "0",
  "id": "2b1c6151-c166-edf5-822c-211b3bfd46b2",
  "detail-type": "Batch Service Job Preemption Completed",
  "source": "aws.batch",
  "account": "123456789012",
  "time": "2026-03-16T19:57:47Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:batch:us-east-1:123456789012:service-job/51f245a9-2995-4a53-bced-7b3c00028f84"
  ],
  "detail": {
    "preemptedJobArn": "arn:aws:batch:us-east-1:123456789012:service-job/51f245a9-2995-4a53-bced-7b3c00028f84",
    "preemptionSummary": {
      "preemptedAttemptCount": 1,
      "recentPreemptedAttempts": [
        {
          "serviceResourceId": {
            "name": "TrainingJobArn",
            "value": "arn:aws:sagemaker:us-east-1:123456789012:training-job/AWSBatchqm-training-job9b2f08f911cf3dd794c1b3e72ae7ca5f"
          },
          "startedAt": 1773690923359,
          "stoppedAt": 1773691064669,
          "statusReason": "Cross-share preemption triggered to reclaim borrowed capacity"
        }
      ]
    },
    "status": "RUNNABLE"
  }
}
```

# チュートリアル: で AWS ユーザー通知を使用する AWS Batch
<a name="using-user-notifications"></a>

[AWS ユーザー通知](https://docs.aws.amazon.com/notifications/latest/userguide/what-is.html)を使用すると、 AWS Batch イベントに関する通知を受け取るための配信チャンネルを設定することができます。指定したルールにイベントが一致すると、通知を受け取ります。イベントの通知は、Eメール、[チャットアプリケーション内の Amazon Q Developer](https://docs.aws.amazon.com/chatbot/latest/adminguide/what-is.html)のチャット通知、[AWS Console Mobile Application](https://docs.aws.amazon.com/consolemobileapp/latest/userguide/what-is-consolemobileapp.html)のプッシュ通知などの複数のチャネルで受け取ることができます。「[コンソール通知センター](https://console.aws.amazon.com/notifications/)」で通知を確認することもできます。ユーザー通知は集約をサポートしているため、特定のイベント中に受け取る通知の数を減らすことができます。

でユーザー通知を設定するには AWS Batch:

1. [AWS Batch コンソール](https://console.aws.amazon.com/batch/home) を開きます。

1. **Dashboard** を選択します。

1. **通知の設定** を選択します。

1. In** AWS User Notifications** で、**通知設定の作成**を選択します。

ユーザー通知を設定および表示する方法の詳細については、[AWS 「ユーザー通知の開始方法](https://docs.aws.amazon.com/notifications/latest/userguide/getting-started.html)」を参照してください。

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

# チュートリアル: EventBridge を使用して AWS Batch ジョブイベントをリッスンする
<a name="batch_cwet"></a>

このチュートリアルでは、AWS Batch ジョブイベントを聴いて、CloudWatch Logs ログストリームに書き込むシンプルな AWS Lambda 関数を設定します。

## 前提条件
<a name="cwet_prereqs"></a>

このチュートリアルでは、コンピューティング作業環境と、ジョブを受け付けることができるジョブキューがあることを前提としています。イベントをキャプチャするコンピューティング作業環境とジョブキューがなければ、[AWS Batch チュートリアルの開始方法](Batch_GetStarted.md)のステップに従って作成します。このチュートリアルの最後に、オプションでこのジョブキューにジョブを送信して Lambda 関数が正しく設定されていることをテストできます。

**Topics**
+ [

## 前提条件
](#cwet_prereqs)
+ [

# チュートリアル: Lambda 関数を作成する
](cwet_create_lam.md)
+ [

# チュートリアル: イベントルールを登録する
](cwet_register_event_rule.md)
+ [

# チュートリアル: 設定をテストする
](cwet_test.md)

# チュートリアル: Lambda 関数を作成する
<a name="cwet_create_lam"></a>

 この手順では、AWS Batch イベントストリームメッセージのターゲットとなるシンプルな Lambda 関数を作成します。

**ターゲットの Lambda 関数を作成するには**

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

1. **関数の作成** を選択し、**一から作成** を選択します。

1. **関数名** に、**batch-event-stream-handler**と入力します。

1. **ランタイム]** では、**Python 3.8]** を選択します。

1. **関数を作成** を選択します。

1. **関数コード]** セクションで、以下の例に合わせてサンプルコードを編集します。

   ```
   import json
   
   
   def lambda_handler(event, _context):
       # _context is not used
       del _context
       if event["source"] != "aws.batch":
           raise ValueError("Function only supports input from events with a source type of: aws.batch")
   
       print(json.dumps(event))
   ```

   これは、AWS Batch から送信されたイベントを印刷するシンプルな Python 3.8 関数です。すべてが正しく設定されると、このチュートリアルの最後に、この Lambda 関数に関連付けられている CloudWatch Logs ログストリームにイベントの詳細が表示されます。

1. **[デプロイ]** をクリックします。

# チュートリアル: イベントルールを登録する
<a name="cwet_register_event_rule"></a>

このセクションでは、AWS Batch リソースから来るジョブイベントをキャプチャする EventBridge イベントルールを作成します。このルールでは、それが定義されているアカウント内の AWS Batch から送信されるすべてのイベントがキャプチャされます。ジョブメッセージ自体に、イベントソースに関する情報 (イベントソースの送信先ジョブキューの情報など) が含まれています。この情報を使用して、プログラムでイベントをフィルタリングおよびソートできます。

**注記**  
AWS マネジメントコンソール を使用してイベントルールを作成すると、コンソールは自動的に EventBridge が Lambda 関数を呼び出すための IAM 権限を追加します。ただし、AWS CLI を使用してイベントルールを作成する場合は、この権限を明示的に付与する必要があります。詳細については、*Amazon EventBridge ユーザーガイド*の[イベントとイベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)を参照してください。

**EventBridge ルールを作成するには**

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

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

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

1. ルールの名前と説明を入力します。

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

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

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

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

1. **イベントソース** では、**その他]** を選択します。

1. **イベントパターン** では、**カスタムパターン (JSON エディター)** を選択します。

1. 次のイベントパターンをテキストエリアに貼り付けます。

   ```
   {
     "source": [
       "aws.batch"
     ]
   }
   ```

   このルールは、すべての AWS Batch グループとすべての AWS Batch イベントに適用されます。または、より具体的なルールを作成し、一部の結果をフィルタで除外することもできます。

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

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

1. **ターゲットを選択** で、**Lambda 関数** を選択します。

1. (オプション) **追加設定]** では、以下を実行します。

   1. **最大イベント有効期間** に、1 分 (00:01) から 24 時間 (24:00) の間の値を入力します。

   1. **再試行** で、0～185 の数値を入力します。

   1. **デッドレターキュー** で、標準 Amazon SQS キューをデッドレターキューとして使用するかどうかを選択します。EventBridge は、このルールに一致するイベントがターゲットに正常に配信されなかった場合に、そのイベントをデッドレターキューに送信します。次のいずれかを行います:
      + デッドレターキューを使用しない場合は、**なし]** を選択します。
      + **デッドレターキューとして使用する現在の AWS アカウントの Amazon SQS キューを選択** を選択し、ドロップダウンから使用するキューを選択します。
      + **他の AWS アカウントの Amazon SQS キューをデッドレターキューとして選択** を選択し、使用するキューの ARN を入力します。キューにメッセージを送信するための EventBridge 許可を付与するリソースベースのポリシーをそのキューにアタッチする必要があります。詳細については、*Amazon EventBridge ユーザーガイド*の[デッドレターキューへの許可の付与](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rule-dlq.html#eb-dlq-perms)を参照してください。

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

1. (オプション) ルールに 1 つ以上のタグを入力します。詳細については、*Amazon EventBridge ユーザーガイド*の[Amazon EventBridge のタグ](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html)を参照してください。

1. **次へ**をクリックします。

1. ルールの詳細を確認し、**ルールの作成** を選択します。

# チュートリアル: 設定をテストする
<a name="cwet_test"></a>

ジョブキューにジョブを送信して EventBridge 設定をテストできます。すべてが適切に設定されている場合、Lambda 関数がトリガーされ、関数の CloudWatch Logs ログストリームにイベントデータが書き込まれます。

**設定をテストするには**

1. AWS Batch コンソールを [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) で開きます。

1. 新しい AWS Batch ジョブを送信します。詳細については、[チュートリアル: ジョブを送信する](submit_job.md)を参照してください。

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

1. ナビゲーションペインで、**ログ** を選択して Lambda 関数 (例えば、**/aws/lambda/***my-function など*)] のロググループを選択します。

1. イベントデータを表示するログストリームを選択します。

# チュートリアル: 失敗したジョブイベントに Amazon シンプル通知サービスアラートを送信する
<a name="batch_sns_tutorial"></a>

このチュートリアルでは、`FAILED` のステータスに移行したジョブのジョブイベントのみをキャプチャする Amazon EventBridge のルールを設定します。このチュートリアルの最後に、このジョブキューにジョブを送信することもできます。これは、Amazon SNS アラートが正しく設定されていることをテストするためです。

## 前提条件
<a name="batch_sns_prereq"></a>

このチュートリアルでは、コンピューティング作業環境と、ジョブを受け付けることができるジョブキューがあることを前提としています。イベントをキャプチャするコンピューティング作業環境とジョブキューがなければ、[AWS Batch チュートリアルの開始方法](Batch_GetStarted.md) のステップに従って作成します。

**Topics**
+ [

## 前提条件
](#batch_sns_prereq)
+ [

# チュートリアル: Amazon SNS トピックを作成してサブスクライブする
](batch_sns_create_topic.md)
+ [

# チュートリアル: イベントルールを登録する
](batch_sns_reg_rule.md)
+ [

# チュートリアル: ルールをテストする
](batch_sns_test_rule.md)
+ [

## 代替ルール: バッチジョブキューがブロックされました
](#test_blocked_job_queue)

# チュートリアル: Amazon SNS トピックを作成してサブスクライブする
<a name="batch_sns_create_topic"></a>

 このチュートリアルでは、新しいイベントルールのイベントターゲットとして使用する Amazon SNS トピックを設定します。

**Amazon SNS トピックを作成するには**

1. Amazon SNS コンソール ([https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home)) を開きます。

1. **トピック**、**トピックの作成** の順に選択します。

1. **[Type]** (タイプ) で、**[Standard]** (標準) を選択します。

1. **名前**として **JobFailedAlert** を入力し、**トピックを作成** を選択します。

1. **JobFailedAlert** 画面で、**サブスクリプションの作成** を選択します。

1. **Protocol** (プロトコル) として **Email** (E メール) を選択します。

1. **エンドポイント** では、現在アクセスできるメールアドレスを入力し、**サブスクリプションの作成** を選択します。

1. メールアカウントを確認し、サブスクリプションの確認メールメッセージが届くのを待ちます。確認メールが届いたら、**[Confirm subscription]** (サブスクリプションの確認) を選択します。

# チュートリアル: イベントルールを登録する
<a name="batch_sns_reg_rule"></a>

 次に、失敗したジョブイベントのみをキャプチャするイベントルールを登録します。

**EventBridge ルールを登録するには**

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

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

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

1. ルールの名前と説明を入力します。

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

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

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

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

1. **イベントソース** では、**[その他]** を選択します。

1. **イベントパターン** では、**カスタムパターン (JSON エディター)** を選択します。

1. 次のイベントパターンをテキストエリアに貼り付けます。

   ```
   {
     "detail-type": [
       "Batch Job State Change"
     ],
     "source": [
       "aws.batch"
     ],
     "detail": {
       "status": [
         "FAILED"
       ]
     }
   }
   ```

   このコードでは、ジョブのステータスが `FAILED` であるイベントに一致する EventBridge イベントルールを定義します。イベントパターンの詳細については、Amazon EventBridge ユーザーガイドの[イベントとイベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)を参照してください。

1. **次へ** をクリックします。

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

1. **ターゲットの選択** には **SNS トピック** を選択し、**トピック** には **JobFailedAlert** を選択します。

1. (オプション) ** 追加設定**では、以下を実行します。

   1. **最大イベント有効期間** に、1 分 (00:01) から 24 時間 (24:00) の間の値を入力します。

   1. **再試行** で、0～185 の数値を入力します。

   1. **デッドレターキュー** で、標準 Amazon SQS キューをデッドレターキューとして使用するかどうかを選択します。EventBridge は、このルールに一致するイベントがターゲットに正常に配信されなかった場合に、そのイベントをデッドレターキューに送信します。次のいずれかを行います:
      + デッドレターキューを使用しない場合は、**[なし]** を選択します。
      + **デッドレターキューとして使用する現在の AWS アカウントの Amazon SQS キューを選択** を選択し、ドロップダウンから使用するキューを選択します。
      + **他の AWS アカウントの Amazon SQS キューをデッドレターキューとして選択** を選択し、使用するキューの ARN を入力します。キューにメッセージを送信するための EventBridge 許可を付与するリソースベースのポリシーをそのキューにアタッチする必要があります。詳細については、*Amazon EventBridge ユーザーガイド*の[デッドレターキューへの許可の付与](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rule-dlq.html#eb-dlq-perms)を参照してください。

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

1. (オプション) ルールに 1 つ以上のタグを入力します。詳細については、*Amazon EventBridge ユーザーガイド*の[Amazon EventBridge のタグ](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html)を参照してください。

1. **次へ**をクリックします。

1. ルールの詳細を確認し、**ルールの作成** を選択します。

# チュートリアル: ルールをテストする
<a name="batch_sns_test_rule"></a>

ルールをテストするには、ゼロ以外の終了コードで開始直後に終了するジョブを送信します。イベントルールが正しく設定されていれば、数分以内にイベントテキストが記載されたメールメッセージが届きます。

**ルールをテストするには**

1. AWS Batch コンソールを [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) で開きます。

1. 新しい AWS Batch ジョブを送信します。詳細については、[チュートリアル: ジョブを送信する](submit_job.md)を参照してください。ジョブのコマンドでは、このコマンドを置き換え、終了コード 1 でコンテナを終了します。

   ```
   /bin/sh, -c, 'exit 1'
   ```

1. 失敗したジョブの通知に関するアラートのメールが届いていることを確認します。

## 代替ルール: バッチジョブキューがブロックされました
<a name="test_blocked_job_queue"></a>

*ブロックされたバッチジョブキュー*をモニタリングするイベントルールを作成するには、次の変更を加えてこのチュートリアルを繰り返します。

1. **[チュートリアル: Amazon SNS トピックを作成してサブスクライブする](batch_sns_create_topic.md)** では、トピック名として *BlockedJobQueue* を使用します。

1. **[チュートリアル: イベントルールを登録する](batch_sns_reg_rule.md)** では、JSON エディタで次のパターンを使用します。

   ```
   {
      "detail-type": [
        "Batch Job Queue Blocked"
      ],
      "source": [
        "aws.batch"
      ]
   }
   ```