Maison  >  Article  >  développement back-end  >  Définition de tâche AWS CDK ECS sans rôle de tâche

Définition de tâche AWS CDK ECS sans rôle de tâche

PHPz
PHPzavant
2024-02-08 23:03:17968parcourir

没有任务角色的 AWS CDK ECS 任务定义

L'éditeur php Xinyi vous présentera la définition de tâche AWS CDK ECS sans rôle de tâche dans cet article. AWS CDK (Cloud Development Kit) est un kit de développement logiciel qui peut être utilisé pour définir et déployer par programme l'infrastructure AWS. ECS (Elastic Container Service) est un service de conteneur géré qui vous permet d'exécuter, d'arrêter et de gérer facilement les conteneurs Docker. Lorsque vous utilisez le CDK pour créer une définition de tâche ECS, vous devez généralement fournir des autorisations pour le rôle de tâche. Cependant, il arrive parfois que nous ne souhaitions pas utiliser de rôle de tâche, mais souhaitions utiliser le rôle IAM directement à partir de la définition de tâche. Cet article explique comment créer une définition de tâche ECS sans rôle de tâche dans le CDK.

Contenu de la question

Dans aws cdk v2, la construction ecs taskdefinition l2 a l'attribut facultatif taskrole (s'il n'est pas spécifié), le comportement par défaut de cdk est de créer le rôle de tâche. Cependant, je ne souhaite pas définir de rôle de tâche pour cette ressource, ce n'est pas vraiment nécessaire dans AWS : la définition de tâche peut s'exécuter sans cet attribut. Comment puis-je gérer cela dans cdk ? Je ne vois aucun moyen de supprimer ce rôle de tâche ou de ne pas le générer en premier. Dois-je revenir à la construction l1 pour cela ? Ma configuration :

taskDefinition := awsecs.NewEc2TaskDefinition(stack, jsii.String(deploymentEnv+service.Tag+"TaskDef"), &awsecs.Ec2TaskDefinitionProps{
            Family:      jsii.String(deploymentEnv + service.Tag), 
            NetworkMode: awsecs.NetworkMode_BRIDGE,
            //TaskRole: what can i do here to fix this
            Volumes: &[]*awsecs.Volume{
                &efs_shared_volume,
            },
        })

Solution de contournement

Vous pouvez utiliser essayez de supprimer l'enfant Escape HatchMéthode :

// remove the role
taskDefinition.Node().TryRemoveChild(jsii.String("TaskRole"))

// remove the reference to the role
t := taskDefinition.Node().DefaultChild().(awsecs.CfnTaskDefinition)
t.AddPropertyDeletionOverride(jsii.String("TaskRoleArn"))

L'astuce consiste à identifier l'identifiant de construction. Vous avez parfois besoin de code source.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer