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.
Rubriques
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:
. Pour plus d'informations, consultez Amazon Resource Names (ARN) et espaces de noms AWS de services.aws-region
:account-id
:task-definition/task-definition-family
:task-definition-revision
Note
La
:
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.task-definition-revision
-
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. SousAwsvpcConfiguration
, 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 sontENABLED
etDISABLED
.
Note
Sous
NetworkConfiguration
, tous les paramètres doivent être spécifiés ou aucun. Par exemple, si vous souhaitez spécifierSubnets
, vous devez également spécifierSecurityGroups
etAssignPublicIp
. 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 valeurbase
, si elle est définie, est satisfaite.Si aucune valeur
0
n'est spécifiée, la valeur par défaut deweight
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 de0
, toutes les actionsRunTask
ouCreateService
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 labase
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 de1
pour capacityProviderA et un poids de4
pour capacityProviderB, pour chaque tâche exécutée avec capacityProviderA, quatre tâches utiliseront capacityProviderB.
-