AppSpec section « ressources » (Amazon ECS et AWS Lambda déploiements uniquement) - AWS CodeDeploy

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AppSpec section « ressources » (Amazon ECS et AWS Lambda déploiements uniquement)

Le contenu de la 'resources' section du AppSpec fichier varie en fonction de la plate-forme de calcul de votre déploiement. La 'resources' section relative au déploiement d'Amazon ECS contient la définition de votre tâche Amazon ECS, le conteneur et le port pour acheminer le trafic vers votre ensemble de tâches Amazon ECS mis à jour, ainsi que d'autres informations facultatives. La 'resources' section relative à un AWS Lambda déploiement contient le nom, l'alias, la version actuelle et la version cible d'une fonction Lambda.

AppSpec section « ressources » pour les déploiements AWS Lambda

La 'resources' section indique la fonction Lambda à déployer et présente la structure suivante :

YAML :

resources: - name-of-function-to-deploy: type: "AWS::Lambda::Function" properties: name: name-of-lambda-function-to-deploy alias: alias-of-lambda-function-to-deploy currentversion: version-of-the-lambda-function-traffic-currently-points-to targetversion: version-of-the-lambda-function-to-shift-traffic-to

JSON:

"resources": [ { "name-of-function-to-deploy" { "type": "AWS::Lambda::Function", "properties": { "name": "name-of-lambda-function-to-deploy", "alias": "alias-of-lambda-function-to-deploy", "currentversion": "version-of-the-lambda-function-traffic-currently-points-to", "targetversion": "version-of-the-lambda-function-to-shift-traffic-to" } } } ]

Chaque propriété est spécifiée avec une chaîne.

  • name : obligatoire. Il s'agit du nom de la fonction Lambda à déployer.

  • alias : obligatoire. Il s'agit du nom de l'alias de la fonction Lambda.

  • currentversion : obligatoire. Il s'agit de la version de la fonction Lambda vers laquelle le trafic pointe actuellement. Cette valeur doit être un entier positif valide.

  • targetversion : obligatoire. Il s'agit de la version de la fonction Lambda vers laquelle le trafic est transféré. Cette valeur doit être un entier positif valide.

AppSpec section « ressources » pour les déploiements Amazon ECS

La 'resources' section indique le service Amazon ECS à déployer et présente la structure suivante :

YAML :

Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "task-definition-arn" LoadBalancerInfo: ContainerName: "ecs-container-name" ContainerPort: "ecs-application-port" # Optional properties PlatformVersion: "ecs-service-platform-version" NetworkConfiguration: AwsvpcConfiguration: Subnets: ["ecs-subnet-1","ecs-subnet-n"] SecurityGroups: ["ecs-security-group-1","ecs-security-group-n"] AssignPublicIp: "ENABLED | DISABLED" CapacityProviderStrategy: - Base: integer CapacityProvider: "capacityProviderA" Weight: integer - Base: integer CapacityProvider: "capacityProviderB" Weight: integer

JSON:

"Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "task-definition-arn", "LoadBalancerInfo": { "ContainerName": "ecs-container-name", "ContainerPort": "ecs-application-port" }, "PlatformVersion": "ecs-service-platform-version", "NetworkConfiguration": { "AwsvpcConfiguration": { "Subnets": [ "ecs-subnet-1", "ecs-subnet-n" ], "SecurityGroups": [ "ecs-security-group-1", "ecs-security-group-n" ], "AssignPublicIp": "ENABLED | DISABLED" } }, "CapacityProviderStrategy": [ { "Base": integer, "CapacityProvider": "capacityProviderA", "Weight": integer }, { "Base": integer, "CapacityProvider": "capacityProviderB", "Weight": integer } ] } } } ]

Chaque propriété est spécifiée par une chaîne à l'exception deContainerPort, qui est un nombre.

  • TaskDefinition : obligatoire. Il s'agit de la définition de tâche à déployer pour le service Amazon ECS. Elle est spécifiée par l'ARN de la définition de tâche. Le format ARN est le suivant : arn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision. Pour plus d'informations, consultez Amazon Resource Names (ARN) et espaces de noms AWS de services.

    Note

    La :task-definition-revision partie de l'ARN est facultative. S'il est omis, Amazon ECS utilise la dernière révision ACTIVE de la définition de tâche.

  • ContainerName : obligatoire. Il s'agit du nom du conteneur Amazon ECS qui contient votre application Amazon ECS. Il doit s'agir d'un conteneur spécifié dans votre définition de tâche Amazon ECS.

  • ContainerPort : obligatoire. Il s'agit du port du conteneur vers lequel le trafic sera acheminé.

  • PlatformVersion : Facultatif. Version de plateforme des tâches Fargate dans le service Amazon ECS déployé. Pour plus d'informations, consultez Versions de plateforme AWS Fargate. S'il n'est pas spécifié, LATEST il est utilisé par défaut.

  • NetworkConfiguration : Facultatif. Sous AwsvpcConfiguration, vous pouvez spécifier les valeurs suivantes. Pour plus d'informations, consultez AwsVpcConfigurationle manuel Amazon ECS Container Service API Reference.

    • Subnets : Facultatif. Liste séparée par des virgules d'un ou de plusieurs sous-réseaux de votre service Amazon ECS.

    • SecurityGroups : Facultatif. Liste séparée par des virgules d'un ou de plusieurs groupes de sécurité dans votre Amazon Elastic Container Service.

    • AssignPublicIp : Facultatif. Chaîne qui indique si l'interface Elastic network de votre service Amazon ECS reçoit une adresse IP publique. Les valeurs valides sont ENABLED et DISABLED.

    Note

    Sous NetworkConfiguration, tous les paramètres doivent être spécifiés ou aucun. Par exemple, si vous souhaitez spécifier Subnets, vous devez également spécifier SecurityGroups et AssignPublicIp. Si aucun n'est spécifié, CodeDeploy utilise les paramètres actuels du réseau Amazon ECS.

  • CapacityProviderStrategy : Facultatif. Liste des fournisseurs de capacité Amazon ECS que vous souhaitez utiliser pour votre déploiement. Pour plus d'informations, consultez les fournisseurs de capacité Amazon ECS dans le manuel Amazon Elastic Container Service Developer Guide. Pour chaque fournisseur de capacité, vous pouvez définir les paramètres suivants. Pour plus de détails sur ces paramètres, voir AWS::ECS::ServiceCapacityProviderStrategyItemle guide de AWS CloudFormation l'utilisateur

    • Base : Facultatif. La valeur de base indique le nombre minimum de tâches à exécuter sur le fournisseur de capacité spécifié. Une base ne peut être définie que pour un seul fournisseur de capacité dans une stratégie de fournisseur de capacité. Si aucune valeur n'est spécifiée, la valeur par défaut de 0 est utilisée.

    • CapacityProvider : Facultatif. Nom abrégé du fournisseur de capacité. Exemple : CapacityProvidera

    • Weight : Facultatif.

      La valeur de poids indique le pourcentage relatif du nombre total de tâches lancées devant utiliser le fournisseur de capacité spécifié. La valeur weight est prise en considération une fois que la valeur base, si elle est définie, est satisfaite.

      Si aucune valeur 0 n'est spécifiée, la valeur par défaut de weight est utilisée. Lorsque plusieurs fournisseurs de capacité sont spécifiés dans le cadre d'une stratégie de fournisseur de capacité, au moins l'un des fournisseurs de capacité doit disposer d'une valeur de pondération supérieure à zéro ; les fournisseurs de capacité dont le poids est égal à 0 ne seront pas utilisés afin de placer des tâches. Si vous spécifiez, dans une stratégie, plusieurs fournisseurs de capacité qui possèdent tous un poids de 0, toutes les actions RunTask ou CreateService utilisant la stratégie de fournisseur de capacité échoueront.

      Un exemple de scénario d'utilisation des pondérations consiste à définir une stratégie contenant deux fournisseurs de capacité qui possèdent un poids de 1. Puis, lorsque la base est satisfaite, les tâches sont réparties équitablement entre les deux fournisseurs de capacité. Dans la même logique, si vous spécifiez un poids de 1 pour capacityProviderA et un poids de 4 pour capacityProviderB, pour chaque tâche exécutée avec capacityProviderA, quatre tâches utiliseront capacityProviderB.