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 à un ECS déploiement Amazon contient la définition de votre ECS tâche Amazon, le conteneur et le port pour acheminer le trafic vers votre ensemble de ECS tâches Amazon 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 ECS déploiements Amazon

La 'resources' section indique le ECS service Amazon à 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 que le ECS service Amazon doit déployer. Il est spécifié avec la définition ARN de la tâche. Le ARN format estarn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision. Pour plus d'informations, consultez Amazon Resource Names (ARNs) et espaces AWS de noms de services.

    Note

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

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

  • 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 déployé. ECS 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 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 ECS service Amazon 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 paramètre n'est spécifié, CodeDeploy utilise les ECS paramètres actuels du réseau Amazon.

  • CapacityProviderStrategy - Facultatif. Liste des fournisseurs de ECS capacité Amazon que vous souhaitez utiliser pour votre déploiement. Pour plus d'informations, consultez la section Amazon ECS Capacity Providers 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 : ServiceCapacityProviderStrategyItem dans le 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é. Selon la même logique, si vous spécifiez capacityProviderune pondération 1 pour A et une pondération 4 pour capacityProviderB, quatre tâches utiliseront capacityProviderB pour chaque tâche exécutée avec capacityProviderA.