我正在尝试使用AWS Elasticbeanstalk CLI从Docker实例内部部署我的代码。我收到此错误:
$ eb deploy my-env
Traceback (most recent call last):
File "/usr/local/bin/eb", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/dist-packages/ebcli/core/ebcore.py", line 142, in main
ebrun.run_app(app)
File "/usr/local/lib/python2.7/dist-packages/ebcli/core/ebrun.py", line 74, in run_app
io.log_error(e.__class__.__name__ + " - " + e.message)
TypeError: cannot concatenate 'str' and 'ProfileNotFound' objects
我的config.yml看起来像这样:
branch-defaults:
default:
environment: null
group_suffix: null
master:
environment: my-env
global:
application_name: myapp
branch: null
default_ec2_keyname: null
default_platform: Docker 18.03.1-ce
default_region: eu-west-2
include_git_submodules: true
instance_profile: null
platform_name: null
platform_version: null
profile: eb-cli
repository: null
sc: git
workspace_type: Application
答案 0 :(得分:4)
问题是容器内的~/.aws/credentials
中没有AWS凭证。您的Dockerfile需要在~/.aws/credentials
之前的eb deploy
中添加以下内容:
[eb-cli]
aws_access_key_id = <AWS_ACCESS_KEY_ID>
aws_secret_access_key = <AWS_SECRET_ACCESS_KEY>
答案 1 :(得分:0)
您能否提供一些有关您的环境的详细信息?如果我正确理解已在Docker容器中安装了ewscli,则启动该容器并连接到该容器,然后尝试从那里运行部署。
能否请你告诉我: -您的python版本是什么? -在容器内,您是否配置了默认的AWS配置文件?
答案 2 :(得分:0)
在2019年之后更新给任何关注此内容的人尝试不要在Docker容器中传递凭据,通过任务定义角色传递IAM权限
注册任务定义时,可以为IAM角色提供任务角色,该角色允许任务权限中的容器代表您调用其关联策略中指定的AWS API。有关更多信息,请参阅任务的IAM角色。 -https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html