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

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

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

トリガーを作成して、AWS CodeDeployデプロイメントまたはインスタンスイベントです。次に、そのイベントが発生した場合、関連付けられたトピックのすべてのサブスクライバーは、SMS メッセージまたは電子メールメッセージなどの、トピックで指定されたエンドポイントを経由して通知を受信します。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()、CodeDeploy コンソールを開きますhttps://console.aws.amazon.com/codedeploy

    注記

    で使用したのと同じアカウントまたは IAM ユーザー情報でサインインします。CodeDeploy の使用開始

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

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

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

  6. [Edit] を選択します。

  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. Eclipseイベント[] で、通知を送信するために Amazon SNS トピックをトリガーするイベントタイプまたはタイプを選択します。

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

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

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

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

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

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

JSON ファイルを作成してデプロイグループを構成し、展開グループの作成を使用するコマンド--cli-input-jsonオプション。

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。詳細については、「ステップ 3: 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 (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" ] } ] }
  4. 更新を JSON ファイルとして保存し、create-deployment-group コマンドを実行するときに --cli-input-json オプションを使用してそのファイルを呼び出します。

    重要

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

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

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

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

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

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 ファイルとして保存し、deployment-groupを使用するコマンド--cli-input-jsonオプション。必ず --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

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