

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

# CodeDeploy イベントのトリガーを作成
<a name="monitoring-sns-event-notifications-create-trigger"></a>

 AWS CodeDeploy デプロイまたはインスタンスイベントの Amazon SNS (Amazon Simple Notification Service) トピックを発行するトリガーを作成できます。次に、そのイベントが発生した場合、関連付けられたトピックのすべてのサブスクライバーは、SMS メッセージまたは E メールメッセージなどの、トピックで指定されたエンドポイントを経由して通知を受信します。Amazon SNS では、トピックをサブスクライブするための複数の方法が用意されています。

トリガーを作成する前に、トリガーの参照先となる Amazon SNS トピックを設定する必要があります。詳細については、「[トピックの作成](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)」を参照してください。トピックを作成する際には、`Topic-group-us-west-3-deploy-fail` または `Topic-group-project-2-instance-stop` などの形式で、目的をわかりやすくする名前を付けることをお勧めします。

トリガーのために通知を送信する前に、Amazon SNS サービスロールに CodeDeploy アクセス許可を付与する必要もあります。詳細については、「[Amazon SNS アクセス許可を CodeDeploy サービスロールに付与する](monitoring-sns-event-notifications-permisssions.md)」を参照してください。

トピックを作成した後、サブスクライバーを追加できます。トピックの作成、管理、およびサブスクライブについての詳細は、「[Amazon Simple Notification Service とは](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)」を参照してください。



## CodeDeploy イベントの通知を送信するトリガーの作成 (コンソール)
<a name="monitoring-sns-event-notifications-create-trigger-console"></a>

CodeDeploy コンソールを使用して、CodeDeploy イベント用のトリガーを作成できます。セットアッププロセスの最後に、アクセス許可およびトリガーの詳細の両方が正しくセットアップされていることを確認するためにテスト通知メッセージが送信されます。

**CodeDeploy イベントのトリガーを作成**

1. で AWS マネジメントコンソール、 AWS CodeDeploy コンソールを開きます。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) で CodeDeploy コンソールを開きます。
**注記**  
「[CodeDeploy の開始方法](getting-started-codedeploy.md)」で設定したのと同じユーザーでサインインします。

1. ナビゲーションペインで [**デプロイ**] を展開し、[**アプリケーション**] を選択します。

1. [**アプリケーション**] ページで、トリガーを追加するデプロイグループに関連付けられているアプリケーションの名前を選択します。

1. [**アプリケーションの詳細**] ページで、トリガーを追加するデプロイグループを選択します。

1.  **[編集]** を選択します。

1.  [**Advanced - optional (詳細 - オプション)**] を展開します。

1.  [**トリガー**] エリアで、[**Create trigger (トリガーの作成)**] を選択します。

1. [**Create deployment trigger (デプロイトリガーの作成)**] ペインで、次の操作を行います。

   1. [**トリガー名**] に、用途をわかりやすく示すトリガーの名前を入力します。`Trigger-group-us-west-3-deploy-fail` または `Trigger-group-eu-central-instance-stop` などの形式をお勧めします。

   1. [**イベント**] で、通知を送信するために Amazon SNS トピックをトリガーするイベントタイプまたはタイプを選択します。

   1. [**Amazon SNS トピック**] で、このトリガーの通知を送信するために作成したトピックの名前を選択します。

   1.  [**Create trigger (トリガーの作成)**] を選択します。CodeDeploy は、CodeDeploy および Amazon SNS トピックとの間のアクセスを正しく設定したことを確認するためのテスト通知を送信します。トピックに対して選択したエンドポイントタイプに応じて、トピックをサブスクライブしている場合は、SMS メッセージまたは E メールメッセージで確認を受信します。

1.  **[Save changes]** (変更の保存) をクリックします。

## CodeDeploy イベントの通知を送信するトリガーの作成 (CLI)
<a name="monitoring-sns-event-notifications-create-trigger-cli"></a>

CLI を使用して、デプロイグループを作成するときにトリガーを含めることも、既存のデプロイグループにトリガーを追加することもできます。

### 新しいデプロイグループの通知を送信するためのトリガーを作成するには
<a name="monitoring-sns-event-notifications-create-trigger-cli-new"></a>

JSON ファイルを作成してデプロイグループを設定し、[デプロイメントグループの作成](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) コマンドの使用 `--cli-input-json` オプションを実行します。

JSON ファイルを作成する最も簡単な方法は、`--generate-cli-skeleton` オプションを使用して JSON 形式のコピーを取得し、プレーンテキストエディターで必要な値を指定することです。

1. 次のコマンドを実行し、結果をプレーンテキストエディターにコピーします。

   ```
   aws deploy create-deployment-group --generate-cli-skeleton
   ```

1. 既存の CodeDeploy アプリケーションの名前を追加します。

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentGroupName": "",
       "deploymentConfigName": "",
       "ec2TagFilters": [
           {
               "Key": "",
               "Value": "",
               "Type": ""
           }
       ],
       "onPremisesInstanceTagFilters": [
           {
               "Key": "",
               "Value": "",
               "Type": ""
           }
       ],
       "autoScalingGroups": [
           ""
       ],
       "serviceRoleArn": "",
       "triggerConfigurations": [
           {
               "triggerName": "",
               "triggerTargetArn": "",
               "triggerEvents": [
                   ""
               ]
           }
       ]
   }
   ```

1. 設定するパラメータの値を指定します。

   [create-deployment-group](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentGroup.html) コマンドを使用する場合は、少なくとも次のパラメータ値を指定する必要があります。
   + `applicationName`: アカウントで既に作成されたアプリケーションの名前。
   + `deploymentGroupName`: 作成するデプロイグループの名前。
   + `serviceRoleArn`: アカウント内の CodeDeploy 用にセットアップする既存のサービスロールの ARN。詳細については、「[ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md)」を参照してください。

   `triggerConfigurations` セクションで、次のパラメーターの値を指定します。
   + `triggerName`: 簡単に識別できるように、トリガーに付与した名前。`Trigger-group-us-west-3-deploy-fail` または `Trigger-group-eu-central-instance-stop` などの形式をお勧めします。
   + `triggerTargetArn`: トリガーに関連付けるために作成した Amazon SNS トピックの ARN で以下の形式: `arn:aws:sns:us-east-2:444455556666:NewTestTopic`。
   + `triggerEvents`: 通知をトリガーするイベントタイプまたはイベント。1 つ以上のイベントタイプを指定し、複数のイベントタイプ名をカンマで区切ることができます (たとえば、`"triggerEvents":["DeploymentSuccess","DeploymentFailure","InstanceFailure"]`)。1 つ以上のイベントタイプを追加すると、これらのすべてのタイプの通知は、それぞれの異なるトピックではなく、指定したトピックに送信されます。次のイベントタイプから選択できます。
     + DeploymentStart
     + DeploymentSuccess
     + DeploymentFailure
     + DeploymentStop
     + DeploymentRollback
     + DeploymentReady (Blue/Green デプロイで置き換え先インスタンスにのみ適用します)
     + InstanceStart
     + InstanceSuccess
     + InstanceFailure
     + InstanceReady (Blue/Green デプロイで置き換え先インスタンスにのみ適用します)

   以下の設定例では、`dep-group-ghi-789-2` という名前のアプリケーション用の `TestApp-us-east-2` という名前のデプロイグループを作成し、デプロイの開始、成功、または失敗のたびに通知の送信を促すトリガーを作成します。

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentConfigName": "CodeDeployDefault.OneAtATime",
       "deploymentGroupName": "dep-group-ghi-789-2",
       "ec2TagFilters": [
           {
               "Key": "Name",
               "Value": "Project-ABC",
               "Type": "KEY_AND_VALUE"
           }
       ],
       "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",
       "triggerConfigurations": [
           {
               "triggerName": "Trigger-group-us-east-2",
               "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments",
               "triggerEvents": [
                   "DeploymentStart",
                   "DeploymentSuccess",
                   "DeploymentFailure"
               ]
           }
       ]
   }
   ```

1. 更新を JSON ファイルとして保存し、**create-deployment-group** コマンドを実行するときに `--cli-input-json` オプションを使用してそのファイルを呼び出します。
**重要**  
ファイル名の前に必ず `file://` を含めてください。このコマンドでは必須です。

   ```
   aws deploy create-deployment-group --cli-input-json file://filename.json
   ```

   作成プロセスの最後に、アクセス許可およびトリガーの詳細の両方が正しく設定されていることを示すテスト通知メッセージが届きます。

### 既存のデプロイグループの通知を送信するためのトリガーを作成するには
<a name="monitoring-sns-event-notifications-create-trigger-cli-existing"></a>

を使用して CodeDeploy イベントのトリガーを既存のデプロイグループ AWS CLI に追加するには、JSON ファイルを作成してデプロイグループを更新し、 `--cli-input-json`オプションを使用して [update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) コマンドを実行します。

JSON ファイルを作成する最も簡単な方法は、**get-deployment-group** コマンドを実行し、JSON 形式でデプロイグループの設定をコピーして、プレーンテキストエディターでパラメーター値を更新することです。

1.  次のコマンドを実行し、結果をプレーンテキストエディターにコピーします。

   ```
   aws deploy get-deployment-group --application-name application --deployment-group-name deployment-group
   ```

1. 出力から次のものを削除します。
   + 出力の先頭の [`{ "deploymentGroupInfo":`] を削除します。
   + 出力の末尾の [`}`] を削除します。
   + [`deploymentGroupId`] を含む行を削除します。
   + [`deploymentGroupName`] を含む行を削除します。

   テキストファイルのコンテンツは、次のようになります。

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentConfigName": "CodeDeployDefault.OneAtATime",
       "autoScalingGroups": [],
       "ec2TagFilters": [
           {
               "Type": "KEY_AND_VALUE",
               "Value": "Project-ABC",
               "Key": "Name"
           }
       ],
       "triggerConfigurations": [],
       "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",
       "onPremisesInstanceTagFilters": []
   }
   ```

1. [`triggerConfigurations`] セクションで、[`triggerEvents`]、[`triggerTargetArn`]、および [`triggerName`] パラメーターのデータを追加します。トリガーの設定パラメータについての詳細は、「[TriggerConfig](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_TriggerConfig.html)」を参照してください。

   テキストファイルのコンテンツは、次のようになります。このコードでは、デプロイの開始、成功、または失敗のたびに通知を送信するように求められます。

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentConfigName": "CodeDeployDefault.OneAtATime",
       "autoScalingGroups": [],
       "ec2TagFilters": [
           {
               "Type": "KEY_AND_VALUE",
               "Value": "Project-ABC",
               "Key": "Name"
           }
       ],
       "triggerConfigurations": [
           {
               "triggerEvents": [
                   "DeploymentStart",
                   "DeploymentSuccess",
                   "DeploymentFailure"
               ],
               "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments",
               "triggerName": "Trigger-group-us-east-2"
           }
       ],
       "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",
       "onPremisesInstanceTagFilters": []
   }
   ```

1. アップデートを JSON ファイルとして保存し、`--cli-input-json` オプションを使用して、[update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) コマンドを実行します。必ず `--current-deployment-group-name` オプションを含めて、*filename* を JSON ファイルの名前に置き換えてください。
**重要**  
ファイル名の前に必ず `file://` を含めてください。このコマンドでは必須です。

   ```
   aws deploy update-deployment-group --current-deployment-group-name deployment-group-name --cli-input-json file://filename.json
   ```

   作成プロセスの最後に、アクセス許可およびトリガーの詳細の両方が正しく設定されていることを示すテスト通知メッセージが届きます。