AWS CDKを使って cdk deploy
したところ
$ cdk deploy Unable to resolve AWS account to use. It must be either configured when you define your CDK or through the environment
というエラーが発生したため、対応した時のメモ。
環境
原因と対応
CDK CLIの doctor
コマンドを使って確認したところ
$ cdk doctor ℹ️ CDK Version: 1.9.0 (build 30f158a) ℹ️ AWS environment variables: - AWS_SECRET_ACCESS_KEY = <redacted> - AWS_REGION = us-east-1 - AWS_ACCESS_KEY_ID = AK<redacted> - AWS_S3_GATEWAY = http://http://s3.amazonaws.com ℹ️ No CDK environment variables
と、自分のAWS CLIのconfigとは異なる値(AWS_REGION)や、設定していない値(AWS_S3_GATEWAY)が出てきました。
何か環境変数を指定したかなと思い確認したところ、
$ export -p ... declare -x AWS_ACCESS_KEY_ID="AK***" declare -x AWS_REGION="us-east-1" declare -x AWS_S3_GATEWAY="http://http://s3.amazonaws.com" declare -x AWS_SECRET_ACCESS_KEY="***"
と、別のところで使った時の環境変数を消し忘れているようでした。
そのため、 cdk doctor
に出てきた環境変数を消しました。
$ unset AWS_S3_GATEWAY $ unset AWS_REGION $ unset AWS_SECRET_ACCESS_KEY $ unset AWS_ACCESS_KEY_ID
再度実行したところ、問題なくデプロイできました。
$ cdk deploy step-functions: deploying... step-functions: creating CloudFormation changeset... 0/2 | 8:12:22 PM | UPDATE_IN_PROGRESS | AWS::CDK::Metadata | CDKMetadata ✅ step-functions