CodeDeployのhook時に実行環境を判別する

自分用メモ

概要

CodeDeployのhook時に、現在prdなのかstgなのか判別したい。
ユースケースとしてはアクセスするS3バケット名を変えたいときなど。
アプリケーションリポジトリは一つなのでhook scriptの中で分岐させる必要がある 。

やりかた

下記ドキュメントのようにhooksでアクセスできる環境変数に実行環境名を指定する。 https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html#reference-appspec-file-structure-environment-variable-availability

下記のように環境ごとのプレフィクスのついたdeployment groupを作る。
stgのdeployment group...stg-hoge-group
prdのdeployment group...prd-hoge-group

application-repo/scripts/start.sh

if [[ "$DEPLOYMENT_GROUP_NAME" =~ ^prd ]]; then
#prdの場合の処理
fi