【小ネタ】CodeBuild のビルド環境でアカウントID を動的に取得する

記事タイトルとURLをコピーする

はじめに

アプリケーションサービス部の宮本です。業務で使用している Intel チップの MacBook Air のファンが 1 日中ブン回っているのが最近の悩みです。

何がしたいのか

CodeBuild のビルド環境では、以下リンクに記載の環境変数に予め値が設定されており、ビルド処理で使用することが出来ます。

docs.aws.amazon.com

ところが、この環境変数一覧にアカウント 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_ARNarn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:b1e6661e-e4f2-4156-9ab9-82a19EXAMPLE のような形式です。これを : で区切ってあげて 5 つ目の要素を抜き出すことでアカウント ID を取得しています。簡単ですね。

それでは良い CodeBuild ライフを!