AWS lambdaのデプロイ自動化ツールApexですが、initの段階でちょっと躓きました。
apex initするとcredential関連でエラー。
$ apex init
_ ____ _______ __
/ \ | _ \| ____\ \/ /
/ _ \ | |_) | _| \ /
/ ___ \| __/| |___ / \
/_/ \_\_| |_____/_/\_\
Enter the name of your project. It should be machine-friendly, as this
is used to prefix your functions in Lambda.
Project name: shirakia-test
Enter an optional description of your project.
Project description:
[+] creating IAM hoge_lambda_function role
⨯ Error: creating role: NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
.aws/config
にaws_access_key_id
とaws_secret_access_key
が書いてあっても読んでくれないようだった。
aws_access_key_id
とaws_secret_access_key
を.aws/credentials
に移動したら解決。
~/.aws/credentials
の中身は以下のような感じ```
[default]
aws_access_key_id = xxxxxxxxxxxxxx
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
または、```
export AWS_SDK_LOAD_CONFIG=1
とすると.aws/configの中に書いたままでも読んでくれる。
Apexがaws-sdk-goに依存しており、そっち対応が必要だったという話。
参考
https://github.com/apex/apex/issues/426
https://github.com/aws/aws-sdk-go#aws-shared-config-file-awsconfig