前提条件
- M1 Mac OS: 12.6
- aws-cli: 2.7.21
- Python: 3.9.11
- aws configure(~/.aws/confiure|credential)に複数プロファイルの設定値を用意している
エラー内容
aws cli でcloud frontのみ、キャッシュ削除しようとしたらエラーが出た話
#使用するプロファイルは [blog] のため以下を実行
$ export AWS_PROFILE=blog
$ aws cloudfront create-invalidation --distribution-id ******** --paths "/*"
Unable to locate credentials. You can configure credentials by running "aws configure".
ブログの管理に関して、簡単にshellスクリプトを作っていて、S3へのsyncは問題ないのにCloud Frontだけに対して、aws configure
を再設定してね!って怒られる。
調査
- cloud frontに対してのみ発生
- S3やEC2への実行は問題ないもよう
- roleも問題なし
原因
~/.aws/credentials に怖かったので作業ミスなど怖くて設定していなかったが 新規で[default] の部分に [blog]の内容を転記した。
$ aws cloudfront create-invalidation --distribution-id XXXXXXXXX --paths "/*"
{
"Location": "https://cloudfront.amazonaws.com/2020-05-31/distribution/XXXXXXXXX/invalidation/I34I41Z7K9NJPA",
"Invalidation": {
"Id": "XXXXXXXXX",
"Status": "InProgress",
"CreateTime": "2022-09-16T05:17:29.219000+00:00",
"InvalidationBatch": {
"Paths": {
"Quantity": 1,
"Items": [
"/*"
]
},
"CallerReference": "XXXXXXXXX"
}
}
}
What's?
解決したのでよしとした。