当文件中明确指定 executionRoleArn 时,为啥我会收到关于未指定的错误?
Posted
技术标签:
【中文标题】当文件中明确指定 executionRoleArn 时,为啥我会收到关于未指定的错误?【英文标题】:Why do I get an error about executionRoleArn not being specified when it's clearly specified in the file?当文件中明确指定 executionRoleArn 时,为什么我会收到关于未指定的错误? 【发布时间】:2019-11-18 02:23:27 【问题描述】:当尝试通过 beanstalk 使用包含机密的 dockerrun.aws.json 文件部署我的多 docker 应用程序时,我收到一个错误,我必须指定 executionRoleArn。当我查看文件时,它已定义。
我尝试将它移动到文件中的不同位置,也尝试定义 taskRoleArn,但没有任何效果。我找不到任何暗示它在 aws 文档中不受支持。我关注了这个页面:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html
这是我部分编辑的 dockerrun.aws.json 文件。
"AWSEBDockerrunVersion": 2,
"executionRoleArn": "arn:aws:iam::ACCOUNT_ID:role/ecsTaskExecutionRole",
"containerDefinitions": [
...
"secrets": [
"name" : "SOME_ENV",
"valueFrom" : "arn:aws:ssm:REGION:ACCOUNT_ID:parameter/MY_SECRET"
,
...
],
...
],
"volumes": [
....
]
这是我在使用 eb deploy
时遇到的确切错误:
ERROR Service:AmazonECS, Code:ClientException, Message:When you
are specifying container secrets, you must also specify a value
for 'executionRoleArn'.,
Class:com.amazonaws.services.ecs.model.ClientException
【问题讨论】:
那么……你解决了吗? 【参考方案1】:目前,AWS 不支持带有ecsTaskExecutionRole
的 ECS 的 EBS。解决方法是在登录时加载一个 bash 脚本,该脚本从 KMS 获取环境变量
【讨论】:
【参考方案2】:以下是我可以告诉你的:
GitHub 上有帖子表明如果未定义任何机密,AWS API 会以您提供的错误消息进行响应。 [1] secrets 密钥相对较新,因此您的 eb cli 版本可能不支持它能否请您检查一下您是否使用的是最新版本的 eb cli?
参考文献
[1]https://github.com/aws/aws-sdk-go/issues/2370#issuecomment-449780818
【讨论】:
实际上,如果你使用 EBS 和 ECS,你就不能使用 ecsTaskExecutionRole以上是关于当文件中明确指定 executionRoleArn 时,为啥我会收到关于未指定的错误?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 boto3 中设置 executionRoleArn 的值?
当收到“列名不明确”错误时,您在 Google BigQuery 中使用啥格式来指定 table.column?
即使在使用 PySpark 读取 .ORC 文件时明确指定,也缺少标题