例如,在进行任务定义时:
const taskDefinition = new ecs.Ec2TaskDefinition(this, 'TaskDefinition', {
networkMode: ecs.NetworkMode.AWS_VPC,
})
这使得角色自动生成,并自动命名。
从文档,有属性可以设置角色,但它接受
IRole
而不是名称。
有没有办法为自动创建的角色命名?
或者,我想我应该使用 class Role 提前创建角色并将其附加到
Ec2TaskDefinition
?,但是我如何知道角色属性?
ECS TaskDefinition 有两个角色属性,executionRole 和 taskRole。1 如果将角色构造传递给这些属性,则可以直接设置角色名称。 如果不设置 props,可以使用 escape hatch 语法来修改自动创建的默认角色的名称:
if (!taskDefinition.taskRole) {
throw new Error("The Task Role is undefined");
}
const cfnTaskRole = taskDefinition.taskRole.node.defaultChild as iam.CfnRole;
cfnTaskRole.addPropertyOverride("RoleName", "my-task-role");
[1] 请参阅AWS Elastic Container Service (ECS) ExecutionRole 和 TaskRole 之间的区别