CodeDeploy イベントのトリガーを作成する - AWS CodeDeploy

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

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

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

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

また、トリガーの通知を送信する前に、 CodeDeploy サービスロールに Amazon SNS アクセス許可を付与する必要があります。詳細については、「 CodeDeploy サービスロールに Amazon SNS アクセス許可を付与する」を参照してください。

トピックを作成した後、サブスクライバーを追加できます。トピックの作成、管理、およびサブスクライブについての詳細は、「Amazon Simple Notification Service とは」を参照してください。

CodeDeploy イベントの通知を送信するトリガーを作成する (コンソール)

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

CodeDeploy イベントのトリガーを作成するには
  1. で AWS Management Console、 AWS CodeDeploy コンソールを開きます。

  2. にサインイン AWS Management Console し、https://console.aws.amazon.com/codedeploy で CodeDeploy コンソールを開きます。

    注記

    の開始方法 CodeDeploy」で設定したのと同じユーザーでサインインします。

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

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

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

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

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

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

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

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

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

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

    4. Create trigger CodeDeploy を選択します。テスト通知を送信して、 CodeDeploy と Amazon SNS トピック間のアクセスが正しく設定されていることを確認します。トピックに対して選択したエンドポイントタイプに応じて、トピックをサブスクライブしている場合は、SMS メッセージまたは E メールメッセージで確認を受信します。

  10. [変更を保存] を選択します。

CodeDeploy イベントの通知を送信するトリガーを作成する (CLI)

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

新しいデプロイグループの通知を送信するためのトリガーを作成するには

JSON ファイルを作成してデプロイグループを設定し、 --cli-input-jsonオプションを使用して create-deployment-group コマンドを実行します。

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

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

    aws deploy create-deployment-group --generate-cli-skeleton
  2. 既存の CodeDeploy アプリケーションの名前を出力に追加します。

    { "applicationName": "TestApp-us-east-2", "deploymentGroupName": "", "deploymentConfigName": "", "ec2TagFilters": [ { "Key": "", "Value": "", "Type": "" } ], "onPremisesInstanceTagFilters": [ { "Key": "", "Value": "", "Type": "" } ], "autoScalingGroups": [ "" ], "serviceRoleArn": "", "triggerConfigurations": [ { "triggerName": "", "triggerTargetArn": "", "triggerEvents": [ "" ] } ] }
  3. 設定するパラメータの値を指定します。

    create-deployment-group コマンドを使用する場合は、少なくとも以下のパラメータの値を指定する必要があります。

    • applicationName: アカウントで既に作成されたアプリケーションの名前。

    • deploymentGroupName: 作成するデプロイグループの名前。

    • serviceRoleArn: アカウント CodeDeploy で に設定された既存のサービスロールの ARN。詳細については、「ステップ 2: のサービスロールを作成する CodeDeploy」を参照してください。

    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 (ブルー/グリーンデプロイの代替インスタンスにのみ適用されます)

      • InstanceStart

      • InstanceSuccess

      • InstanceFailure

      • InstanceReady (ブルー/グリーンデプロイの代替インスタンスにのみ適用されます)

    以下の設定例では、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" ] } ] }
  4. 更新を JSON ファイルとして保存し、create-deployment-group コマンドを実行するときに --cli-input-json オプションを使用してそのファイルを呼び出します。

    重要

    ファイル名の前に必ず file:// を含めてください。このコマンドでは必須です。

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

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

既存のデプロイグループの通知を送信するためのトリガーを作成するには

を使用して既存のデプロイグループに CodeDeploy イベントのトリガー AWS CLI を追加するには、JSON ファイルを作成してデプロイグループを更新し、 --cli-input-jsonオプションを使用して update-deployment-group コマンドを実行します。

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

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

    aws deploy get-deployment-group --application-name application --deployment-group-name deployment-group
  2. 出力から次のものを削除します。

    • 出力の先頭の [{ "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": [] }
  3. [triggerConfigurations] セクションで、[triggerEvents]、[triggerTargetArn]、および [triggerName] パラメーターのデータを追加します。トリガー設定パラメータの詳細については、「」を参照してくださいTriggerConfig

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

    { "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": [] }
  4. 更新を JSON ファイルとして保存し、 --cli-input-jsonオプションを使用して update-deployment-group コマンドを実行します。必ず --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

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