はじめに
アプリケーションサービス部の宮本です。業務で使用している Intel チップの MacBook Air のファンが 1 日中ブン回っているのが最近の悩みです。
何がしたいのか
CodeBuild のビルド環境では、以下リンクに記載の環境変数に予め値が設定されており、ビルド処理で使用することが出来ます。
ところが、この環境変数一覧にアカウント ID は存在しません。ECR リポジトリの URI など、アカウント ID を含む文字列を組み立てたい場合、CodeBuild の構築時に環境変数設定からアカウント ID を与える必要があります。
本記事では、環境変数から与えずに、ビルド環境が動作しているアカウント ID を動的に取得出来ないか検討しました。
結論
環境変数 CODEBUILD_BUILD_ARN
から抜き出すことで、動的にアカウント ID を取得出来ます。
以下のような要領です。
# buildspec.yml version: 0.2 phases: pre_build: commands: - AWS_ACCOUNT_ID=$(echo ${CODEBUILD_BUILD_ARN} | cut -f 5 -d :) build: commands: - echo $AWS_ACCOUNT_ID
CODEBUILD_BUILD_ARN
は arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:b1e6661e-e4f2-4156-9ab9-82a19EXAMPLE
のような形式です。これを :
で区切ってあげて 5 つ目の要素を抜き出すことでアカウント ID を取得しています。簡単ですね。
それでは良い CodeBuild ライフを!