Python 如何在boto3中设置executionRoleArn的值?
我是AWS新手,我不知道如何使用PythonBoto3在Fargate中使用ECR中的图像成功运行任务。我是这样做的: 创建客户端Python 如何在boto3中设置executionRoleArn的值?,python,amazon-web-services,boto3,amazon-iam,amazon-ecs,Python,Amazon Web Services,Boto3,Amazon Iam,Amazon Ecs,我是AWS新手,我不知道如何使用PythonBoto3在Fargate中使用ECR中的图像成功运行任务。我是这样做的: 创建客户端 ecs_cli = boto3.client( 'ecs', aws_access_key_id=access_key, aws_secret_access_key=secret_key, region_name=region ) 注册任务定义 response = ecs_cli.register_task_definition(
ecs_cli = boto3.client(
'ecs',
aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
region_name=region
)
注册任务定义
response = ecs_cli.register_task_definition(
family='what_is_family_06_06', #i dont get what's a family
networkMode='awsvpc',
containerDefinitions=[
{
"name": "rand_name_06_06",
"image": image_name,
}
],
cpu = "256",
memory = "512",
requiresCompatibilities=['FARGATE']
)
然后运行任务
response = ecs_cli.run_task(
cluster='default',
launchType='FARGATE',
networkConfiguration={
'awsvpcConfiguration': {
'subnets': [
'subnet-03fc922da97e2d95e',
'subnet-08a73abb757cf2fab'
],
'securityGroups': [
'sg-04a3379a63a69cb74',
],
}
},
taskDefinition='arn:aws:ecs:us-east-1:420295140958:task-definition/what_is_family_06_06:1',
)
我得到这个错误:
"Fargate requires task definition to have execution role ARN to support ECR images."
这意味着我必须添加executionRoleArn='something'
来注册任务定义()
然而,例如,在任务定义中没有提到executionRoleARN,在boto3中也没有具体说明executionRoleARN
的值应该是多少
我已经看过了,但那对我没有帮助
我创建了IAM管理员用户。之所以需要executionRoleArn,是因为容器定义中的映像来自ECR,ECR是一个私有存储库 ECS包含基本执行任务角色策略 您可以修改此策略并创建新策略,也可以将
AmazonECSTaskExecutionRolePolicy
的托管策略附加到IAM角色
当您创建它时,重要的一点是,它是通过信任关系为ecs tasks.amazonaws.com
创建的
创建角色获取其Arn后,可以从控制台或通过CLI上的命令访问该角色
获取此arn并添加到register\u task\u definition
,如下所示
response = ecs_cli.register_task_definition(
family='what_is_family_06_06', #i dont get what's a family
networkMode='awsvpc',
containerDefinitions=[
{
"name": "rand_name_06_06",
"image": image_name,
}
],
cpu = "256",
memory = "512",
requiresCompatibilities=['FARGATE'],
executionRoleArn='ARN'
)
非常感谢。我遵循了您提到的链接中的步骤,并在register_task_定义中添加了以下行:executionRoleArn='arn:aws:iam::aws:policy/service role/AmazonECSTaskExecutionRolePolicy',但是,我得到“调用RegisterTaskDefinition操作时发生错误(ClientException):role无效”。你知道我做错了什么吗?再次感谢!您是否将其创建为ecs角色?如果没有,请编辑信任关系以添加它。在回答中使用服务名称我现在知道了!!这就是我需要为它添加的内容:“arn:aws:iam::420295140958:role/摇头丸执行角色”。非常感谢,我已经挣扎了很长一段时间了!:)