如何获取AWS ECS泊坞化器容器中的AWS凭证?
问题描述:
首先,我用的服务器环境:如何获取AWS ECS泊坞化器容器中的AWS凭证?
- 服务器:Django的+ nginx的+ uwsgi
- 云:搬运工+ AWS ECS
- 记录:AWS CloudWatch的日志服务+箭楼第三方应用
我正在使用适用于AWS CloudWatch日志服务的了望第三方应用程序。 因此,我需要将AWS凭据信息提供给Docker容器。
本地测试时,docker run -v $ HOME/.aws: /root/.aws --rm -it -p 8080: 80 image_name
会将本地凭证连接到卷。
但我不知道如何在AWS ECS中应用它。
http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html
我按照上述文章中,我已经写了按照上述文章.aws/ecs.confg文件。
AWS_DEFAULT_REGION=ap-northeast-1
AWS_ACCESS_KEY_ID=bbbbbbbbb
AWS_SECRET_ACCESS_KEY=aaaaaaaaaaaa
我将命令添加到Dockerfile喜欢bello。
COPY .aws/ecs.config /etc/ecs/ecs.config
但是,访问ECS时发生内部服务器错误。
我也尝试在“任务定义” 时为容器分配“IAM角色”即使您创建“CloudWatchLogsFullAccess IAM角色”,“任务定义”创建屏幕角色下拉列表中也不会显示任何内容。
如果您有其他方法,请帮助我。
谢谢。
这是我的日志记录设置。在本地测试中,日志记录正常工作。
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
'watchtower': {
'level': 'DEBUG',
'class': 'watchtower.CloudWatchLogHandler',
'formatter': 'verbose',
},
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django': {
'handlers': ['watchtower', 'console'],
'level': 'INFO',
'propagate': True,
},
'django.user': {
'handlers': ['watchtower'],
'level': DJANGO_LOG_LEVEL,
'propagate': False,
},
'django.partner': {
'handlers': ['watchtower'],
'level': DJANGO_LOG_LEVEL,
'propagate': False,
},
}
}
谢谢你的回答!但我还有一个问题。 http://www.tothenew.com/blog/attach-iam-role-to-an-aws-elastic-container-service-task/我创建了如上的IAM链接并将其应用于任务定义。但是,'curl 169.254.170.2 $ AWS_CONTAINER_CREDENTIALS_RELATIVE_URI'返回404页未找到。你知道为什么吗? –
您在$后有一个空格 – Robert