AWS

【小ネタ】AWS CodeDeploy通知をインプットトランスフォーマーを使用しカスタマイズしてみた

概要

こんにちは、ディーネットの牛山です。

前回、[【小ネタ】AWS CodePipeline通知をインプットトランスフォーマーを使用しカスタマイズしてみた]の記事を投稿し、CodePipelineの通知内容を分かりやすくしました。

前回の記事:【小ネタ】AWS CodePipeline通知をインプットトランスフォーマーを使用しカスタマイズしてみた

今回は、CodeDeployの通知をインプットトランスフォーマーを使用し、お知らせする設定を備忘録として記録します。

本記事では、EventBridge設定周辺を解説しますのでご了承下さい。

前置き

本題に入る前に、AWS構成図を準備しましたのでご覧ください。

EventBridgeルール作成

CodeDeployの状態変更通知には、[CodeDeploy インスタンスの状態変更通知]と[CodeDeploy デプロイの状態変更通知]があります。

今回は、[CodeDeploy インスタンスの状態変更通知]を検知して、インプットトランスフォーマーで変換する設定をします。

※参考:Amazon CloudWatch Events でのデプロイのモニタリング

ステップ1 ルールの詳細を定義

ステップ2 イベントパターンを構築

作成のメソッドセクションは、[パターンフォームを使用する]を選択し、イベントパターンセクションに以下内容で設定します。

CodeDeploy実行の状態変更で、アプリケーション、[codedeploy_test_20230108]かつデプロイグループ[codedeploy_test_group_20230108]で成功または失敗イベントを検知する内容となります。

以下、キャプチャ画像の通り設定をします。

ステップ3 ターゲットを選択

ターゲットタイプを[SNSトピック]を選択し、通知させたいSNSトピックを選択します。

[追加設定]セクションより、ターゲット入力を設定項目で[入力トランスフォーマー]を選択し、[入力トランスフォーマーを設定]をクリックします。

[入力トランスフォーマーを設定]タイアログ画面でそれぞれ下記の通り設定し、[確認]をクリックします。

サンプルイベント - オプション

※参考:AWS CodeDeploy Events

サンプルイベント:[CodeDeploy Instance State-change Notification]

ターゲット入力トランスフォーマー

  • 入力パス
{
    "account": "$.account",
    "instanceId": "$.detail.instanceId",
    "deploymentId": "$.detail.deploymentId",
    "region": "$.detail.region",
    "state": "$.detail.state",
    "deploymentGroup": "$.detail.deploymentGroup"
}
  • テンプレート
"CodeDeploy デプロイグループ <deploymentGroup> の EC2インスタンス <instanceId> は <state> しました。"
"CodeDeployの詳細な実行結果につきましては、下記リンク先からご確認ください。"
"https://<region>.console.aws.amazon.com/codesuite/codedeploy/deployments/<deploymentId>/instances/arn:aws:ec2:<region>:<account>:instance/<instanceId>?region=<region>"

ステップ4 オプション

タグ設定が必要であれば適宜いれます、必要でなければ[次へ]をクリックします。

ステップ5 レビューと作成

設定した内容に問題ないことを確認し、[ルールの作成]をクリックします。

動作テスト

CodeDeployを実行し、Amazon SNSから以下内容のメールが届けば問題ありません

"CodeDeploy デプロイグループ codedeploy_test_group_20230108 の EC2インスタンス i-0cd229a0e71b485c7 は SUCCESS しました。"
"CodeDeployの詳細な実行結果につきましては、下記リンク先からご確認ください。"
"https://ap-northeast-1.console.aws.amazon.com/codesuite/codedeploy/deployments/d-OER7K6LPL/instances/arn:aws:ec2:ap-northeast-1:{AWSアカウントID}:instance/i-0cd229a0e71b485c7?region=ap-northeast-1"

--
If you wish to stop receiving notifications from this topic, please click or visit the link below to unsubscribe:
https://sns.ap-northeast-1.amazonaws.com/unsubscribe.html?SubscriptionArn=arn:aws:sns:ap-northeast-1:{AWSアカウントID}:codepipeline_test_sns_20230108:8ef0717b-b68b-48a1-979f-c0685f305869&Endpoint={メールアドレス}

Please do not reply directly to this email. If you have any questions or comments regarding this email, please contact us at https://aws.amazon.com/support

万が一届かない場合は、以下を参照ください。

Amazon SNSからメールが届かない場合のトラブルシューティング

まとめ

いかがでしたでしょうか、CodeDeployもCodePipeline同様、インプットトランスフォーマーを介して通知内容をカスタマイズすることが可能であることが分かったと思います。

とても便利な機能ですね。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA