AWS CDKで、cdk deployしたら「Unable to resolve AWS account to use」エラー

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 CLIdoctor コマンドを使って確認したところ

$ 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