📝

[小ネタ] Amplify Hosting のビルド環境の環境変数を確認してみた

に公開

Amplify コンソール – フルスタックのサーバーレスウェブアプリのためのホスティング | Amazon Web Services ブログ

Amplify コンソールはバックグラウンドで AWS CodeBuild を使用します。

上述の通り CodeBuild が使用されているとのことなので、CodeBuild のすべての環境変数を出力してみました。
Environment variables in build environments - AWS CodeBuild

検証

Next.js のアプリで検証しました。

$ npx create-next-app@latest my-test-app

amplify.yml は以下の通りです。

amplify.yml
version: 1
frontend:
  phases:
    preBuild:
      commands:
        - 'echo "========== CodeBuild Environment Variables =========="'
        - 'echo "AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION"'
        - 'echo "AWS_REGION: $AWS_REGION"'
        - 'echo "CODEBUILD_BATCH_BUILD_IDENTIFIER: $CODEBUILD_BATCH_BUILD_IDENTIFIER"'
        - 'echo "CODEBUILD_BUILD_ARN: $CODEBUILD_BUILD_ARN"'
        - 'echo "CODEBUILD_BUILD_ID: $CODEBUILD_BUILD_ID"'
        - 'echo "CODEBUILD_BUILD_IMAGE: $CODEBUILD_BUILD_IMAGE"'
        - 'echo "CODEBUILD_BUILD_NUMBER: $CODEBUILD_BUILD_NUMBER"'
        - 'echo "CODEBUILD_BUILD_SUCCEEDING: $CODEBUILD_BUILD_SUCCEEDING"'
        - 'echo "CODEBUILD_INITIATOR: $CODEBUILD_INITIATOR"'
        - 'echo "CODEBUILD_KMS_KEY_ID: $CODEBUILD_KMS_KEY_ID"'
        - 'echo "CODEBUILD_PROJECT_ARN: $CODEBUILD_PROJECT_ARN"'
        - 'echo "CODEBUILD_PUBLIC_BUILD_URL: $CODEBUILD_PUBLIC_BUILD_URL"'
        - 'echo "CODEBUILD_RESOLVED_SOURCE_VERSION: $CODEBUILD_RESOLVED_SOURCE_VERSION"'
        - 'echo "CODEBUILD_SOURCE_REPO_URL: $CODEBUILD_SOURCE_REPO_URL"'
        - 'echo "CODEBUILD_SOURCE_VERSION: $CODEBUILD_SOURCE_VERSION"'
        - 'echo "CODEBUILD_SRC_DIR: $CODEBUILD_SRC_DIR"'
        - 'echo "CODEBUILD_START_TIME: $CODEBUILD_START_TIME"'
        - 'echo "CODEBUILD_WEBHOOK_ACTOR_ACCOUNT_ID: $CODEBUILD_WEBHOOK_ACTOR_ACCOUNT_ID"'
        - 'echo "CODEBUILD_WEBHOOK_BASE_REF: $CODEBUILD_WEBHOOK_BASE_REF"'
        - 'echo "CODEBUILD_WEBHOOK_EVENT: $CODEBUILD_WEBHOOK_EVENT"'
        - 'echo "CODEBUILD_WEBHOOK_MERGE_COMMIT: $CODEBUILD_WEBHOOK_MERGE_COMMIT"'
        - 'echo "CODEBUILD_WEBHOOK_PREV_COMMIT: $CODEBUILD_WEBHOOK_PREV_COMMIT"'
        - 'echo "CODEBUILD_WEBHOOK_HEAD_REF: $CODEBUILD_WEBHOOK_HEAD_REF"'
        - 'echo "CODEBUILD_WEBHOOK_TRIGGER: $CODEBUILD_WEBHOOK_TRIGGER"'
        - 'echo "HOME: $HOME"'
        - 'echo "CODEBUILD_RUNNER_OWNER: $CODEBUILD_RUNNER_OWNER"'
        - 'echo "CODEBUILD_RUNNER_REPO: $CODEBUILD_RUNNER_REPO"'
        - 'echo "CODEBUILD_RUNNER_REPO_DOMAIN: $CODEBUILD_RUNNER_REPO_DOMAIN"'
        - 'echo "CODEBUILD_WEBHOOK_LABEL: $CODEBUILD_WEBHOOK_LABEL"'
        - 'echo "CODEBUILD_WEBHOOK_RUN_ID: $CODEBUILD_WEBHOOK_RUN_ID"'
        - 'echo "CODEBUILD_WEBHOOK_JOB_ID: $CODEBUILD_WEBHOOK_JOB_ID"'
        - 'echo "CODEBUILD_WEBHOOK_WORKFLOW_NAME: $CODEBUILD_WEBHOOK_WORKFLOW_NAME"'
        - 'echo "CODEBUILD_RUNNER_WITH_BUILDSPEC: $CODEBUILD_RUNNER_WITH_BUILDSPEC"'
        - 'echo "========== End of Environment Variables =========="'
        - npm ci
    build:
      commands:
        - npm run build
  artifacts:
    baseDirectory: .next
    files:
      - '**/*'

ビルドの結果、以下の設定であることを確認できました。

AWS_DEFAULT_REGION: ap-northeast-1
AWS_REGION: ap-northeast-1
CODEBUILD_BATCH_BUILD_IDENTIFIER: (未設定)
CODEBUILD_BUILD_ARN: arn:aws:codebuild:ap-northeast-1:550167628141:build/d1m5ku9j9rmn77:d8f47f0b-6997-4ab1-9485-aef86b20ddb4
CODEBUILD_BUILD_ID: d1m5ku9j9rmn77:d8f47f0b-6997-4ab1-9485-aef86b20ddb4
CODEBUILD_BUILD_IMAGE: 550167628141.dkr.ecr.ap-northeast-1.amazonaws.com/aemilia-build-image:al2023
CODEBUILD_BUILD_NUMBER: 2
CODEBUILD_BUILD_SUCCEEDING: 1
CODEBUILD_INITIATOR: AemiliaWebhookProcessorLambda-WebHookRole-2BTH3SC0UEQX/AemiliaWebhookProcessorLambda-CodeCommitHandler-OYHJQNWMPPNC
CODEBUILD_KMS_KEY_ID: arn:aws:kms:ap-northeast-1:550167628141:alias/aws/s3
CODEBUILD_PROJECT_ARN: arn:aws:codebuild:ap-northeast-1:550167628141:project/d1m5ku9j9rmn77
CODEBUILD_PUBLIC_BUILD_URL: (未設定)
CODEBUILD_RESOLVED_SOURCE_VERSION: (未設定)
CODEBUILD_SOURCE_REPO_URL: (未設定)
CODEBUILD_SOURCE_VERSION: (未設定)
CODEBUILD_SRC_DIR: /codebuild/output/src39240733/src
CODEBUILD_START_TIME: 1762576982032
CODEBUILD_WEBHOOK_ACTOR_ACCOUNT_ID: (未設定)
CODEBUILD_WEBHOOK_BASE_REF: (未設定)
CODEBUILD_WEBHOOK_EVENT: (未設定)
CODEBUILD_WEBHOOK_MERGE_COMMIT: (未設定)
CODEBUILD_WEBHOOK_PREV_COMMIT: (未設定)
CODEBUILD_WEBHOOK_HEAD_REF: (未設定)
CODEBUILD_WEBHOOK_TRIGGER: (未設定)
HOME: /root
CODEBUILD_RUNNER_OWNER: (未設定)
CODEBUILD_RUNNER_REPO: (未設定)
CODEBUILD_RUNNER_REPO_DOMAIN: (未設定)
CODEBUILD_WEBHOOK_LABEL: (未設定)
CODEBUILD_WEBHOOK_RUN_ID: (未設定)
CODEBUILD_WEBHOOK_JOB_ID: (未設定)
CODEBUILD_WEBHOOK_WORKFLOW_NAME: (未設定)
CODEBUILD_RUNNER_WITH_BUILDSPEC: (未設定)

ログには 550167628141 という AWS アカウント ID が含まれているため、ビルドは AWS が管理しているアカウントで行われているように見受けられました。

まとめ

今回は Amplify Hosting のビルド環境の環境変数を確認してみました。
どなたかの参考になれば幸いです。

参考資料

Discussion