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.
Amazon Elastic Container Service et référence des actions de déploiement CodeDeploy bleu-vert
Vous pouvez configurer un pipeline AWS CodePipeline qui déploie des applications de conteneur à l'aide d'un blue/green déploiement. Lors d'un blue/green déploiement, vous pouvez lancer une nouvelle version de votre application parallèlement à l'ancienne version, et vous pouvez tester la nouvelle version avant de rediriger le trafic vers celle-ci. Vous pouvez également surveiller le processus de déploiement et revenir rapidement en arrière en cas de problème.
Le pipeline terminé détecte les modifications apportées à vos images ou à votre fichier de définition de tâches et permet CodeDeploy d'acheminer et de déployer le trafic vers un cluster Amazon ECS et un équilibreur de charge. CodeDeploy crée un nouvel écouteur sur votre équilibreur de charge qui peut cibler votre nouvelle tâche via un port spécial. Vous pouvez également configurer le pipeline pour utiliser un emplacement source, tel qu'un CodeCommit référentiel, dans lequel votre définition de tâche Amazon ECS est stockée.
Avant de créer votre pipeline, vous devez déjà avoir créé les ressources Amazon ECS, les CodeDeploy ressources, l'équilibreur de charge et le groupe cible. Vous devez déjà avoir balisé et stocké l'image dans votre référentiel d'images, et avoir téléchargé la définition de tâche et le AppSpec fichier dans votre référentiel de fichiers.
Note
Cette rubrique décrit l'action de CodeDeploy blue/green déploiement d'Amazon ECS pour CodePipeline. Pour obtenir des informations de référence sur les actions de déploiement standard d'Amazon ECS dans CodePipeline, consultezRéférence des actions de déploiement d'Amazon Elastic Container Service.
Rubriques
Type d'action
-
Catégorie :
Deploy -
Propriétaire :
AWS -
Fournisseur :
CodeDeployToECS -
Version :
1
Paramètres de configuration
- ApplicationName
-
Obligatoire : oui
Le nom de l'application dans CodeDeploy. Avant de créer votre pipeline, vous devez avoir déjà créé l'application dans CodeDeploy.
- DeploymentGroupName
-
Obligatoire : oui
Le groupe de déploiement spécifié pour les ensembles de tâches Amazon ECS que vous avez créés pour votre CodeDeploy application. Avant de créer votre pipeline, vous devez déjà avoir créé le groupe de déploiement dans CodeDeploy.
- TaskDefinitionTemplateArtifact
-
Obligatoire : oui
Nom de l'artefact en entrée qui fournit le fichier de définition de tâche à l'action de déploiement. Il s'agit généralement du nom de l'artefact de sortie de l'action source. Lorsque vous utilisez la console, le nom par défaut de l'artefact de sortie de l'action source est
SourceArtifact. - AppSpecTemplateArtifact
-
Obligatoire : oui
Nom de l'artefact en entrée qui fournit le AppSpec fichier à l'action de déploiement. Cette valeur est mise à jour lorsque votre pipeline est exécuté. Il s'agit généralement du nom de l'artefact de sortie de l'action source. Lorsque vous utilisez la console, le nom par défaut de l'artefact de sortie de l'action source est
SourceArtifact. PourTaskDefinitionle AppSpec fichier, vous pouvez conserver le texte de l'<TASK_DEFINITION>espace réservé comme indiqué ici. - AppSpecTemplatePath
-
Obligatoire : non
Nom du AppSpec fichier stocké dans l'emplacement du fichier source du pipeline, tel que le CodeCommit référentiel de votre pipeline. Le nom de fichier par défaut est
appspec.yaml. Si votre AppSpec fichier porte le même nom et est stocké à la racine dans votre référentiel de fichiers, il n'est pas nécessaire de fournir le nom du fichier. Si le chemin n'est pas le chemin par défaut, entrez le chemin et le nom du fichier. - TaskDefinitionTemplatePath
-
Obligatoire : non
Nom de fichier de la définition de tâche stockée dans l'emplacement source du fichier de pipeline, tel que le CodeCommit référentiel de votre pipeline. Le nom de fichier par défaut est
taskdef.json. Si votre fichier de définition de tâches porte le même nom et est stocké au niveau racine dans votre référentiel de fichiers, il n'est pas nécessaire de fournir le nom de fichier. Si le chemin n'est pas le chemin par défaut, entrez le chemin et le nom du fichier. - Image <Number>ArtifactName
-
Obligatoire : non
Nom de l'artefact en entrée qui fournit l'image à l'action de déploiement. Il s'agit généralement de l'artefact de sortie du référentiel d'images, tel que la sortie de l'action source Amazon ECR.
Les valeurs disponibles
<Number>sont comprises entre 1 et 4. - Image <Number>ContainerName
-
Obligatoire : non
Le nom de l'image disponible dans le référentiel d'images, tel que le référentiel source Amazon ECR.
Les valeurs disponibles
<Number>sont comprises entre 1 et 4.
Artefacts d'entrée
-
Nombre d'artefacts :
1 to 5 -
Description : L'
CodeDeployToECSaction recherche d'abord le fichier de définition de tâche et le AppSpec fichier dans le référentiel de fichiers source, recherche ensuite l'image dans le référentiel d'images, puis génère dynamiquement une nouvelle révision de la définition de tâche et exécute enfin les AppSpec commandes pour déployer l'ensemble de tâches et le conteneur sur le cluster.L'
CodeDeployToECSaction recherche unimageDetail.jsonfichier qui associe l'URI de l'image à l'image. Lorsque vous validez une modification dans votre référentiel d'images Amazon ECR, l'action source du pipeline ECR crée unimageDetail.jsonfichier pour cette validation. Vous pouvez également ajouter manuellement unimageDetail.jsonfichier pour un pipeline dont l'action n'est pas automatisée. Pour de plus amples informations concernant le fichierimageDetail.json, veuillez consulter Detail.json fichier image pour les actions de blue/green déploiement d'Amazon ECS.L'
CodeDeployToECSaction génère dynamiquement une nouvelle révision de la définition de la tâche. Au cours de cette phase, cette action remplace les espaces réservés du fichier de définition de tâche par un URI d'image extrait des Detail.json fichiers image. Par exemple, si vous définissez IMAGE1_NAME comme Image1ContainerName paramètre, vous devez spécifier l'espace réservé <IMAGE1_NAME>comme valeur du champ image dans votre fichier de définition de tâche. Dans ce cas, l' CodeDeployToECS action remplace l'espace réservé par l'<IMAGE1_NAME>URI de l'image réelle extraite de l'image Detail.json dans l'artefact que vous spécifiez comme étant. Image1ArtifactNamePour les mises à jour des définitions de tâches, le CodeDeploy
AppSpec.yamlfichier contient laTaskDefinitionpropriété.TaskDefinition: <TASK_DEFINITION>Cette propriété sera mise à jour par l'
CodeDeployToECSaction une fois la nouvelle définition de tâche créée.<TASK_DEFINITION>Pour la valeur du
TaskDefinitionchamp, le texte de l'espace réservé doit être. L'CodeDeployToECSaction remplace cet espace réservé par l'ARN réel de la définition de tâche générée dynamiquement.
Artefacts de sortie
-
Nombre d'artefacts :
0 -
Description : Les artefacts de sortie ne s'appliquent pas à ce type d'action.
Autorisations relatives aux rôles de service : CodeDeployToECS action
Pour l'CodeDeployToECSaction (blue/green déploiements), les autorisations minimales requises pour créer des pipelines avec une action de blue/green déploiement CodeDeploy vers Amazon ECS sont les suivantes.
Vous pouvez choisir d'utiliser l'autorisation de balisage dans Amazon ECS. En vous inscrivant, vous devez accorder les autorisations suivantes :ecs:TagResource. Pour plus d'informations sur la manière de s'inscrire et de déterminer si l'autorisation est requise et si l'autorisation des balises est appliquée, consultez la chronologie des autorisations de balisage dans le guide du développeur Amazon Elastic Container Service.
Vous devez également ajouter les iam:PassRole autorisations permettant d'utiliser les rôles IAM pour les tâches. Pour plus d'informations, consultez le rôle IAM d'exécution des tâches Amazon ECS et les rôles IAM pour les tâches.
Vous pouvez également ecs-tasks.amazonaws.com compléter la liste des services concernés par iam:PassedToService cette condition, comme indiqué dans l'exemple ci-dessus.
Déclaration d'action
Consultez aussi
Les ressources connexes suivantes peuvent s'avérer utiles dans le cadre de l'utilisation de cette action.
-
Tutoriel : Création d'un pipeline avec une source et ECS-to-CodeDeploy un déploiement Amazon ECR— Ce didacticiel explique comment créer CodeDeploy les ressources Amazon ECS dont vous avez besoin pour un blue/green déploiement. Le didacticiel explique comment envoyer une image Docker vers Amazon ECR et créer une définition de tâche Amazon ECS répertoriant le nom de votre image Docker, le nom du conteneur, le nom du service Amazon ECS et la configuration de l'équilibreur de charge. Le didacticiel vous explique ensuite comment créer le AppSpec fichier et le pipeline pour votre déploiement.
Note
Cette rubrique et ce didacticiel décrivent l' CodeDeploy/ECS blue/green action à effectuer pour CodePipeline. Pour plus d'informations sur les actions standard d'ECS dans CodePipeline, consultez Tutoriel : Déploiement continu avec CodePipeline.
-
AWS CodeDeploy Guide de l'utilisateur — Pour plus d'informations sur l'utilisation de l'équilibreur de charge, de l'écouteur de production, des groupes cibles et de votre application Amazon ECS dans un blue/green déploiement, consultez Tutoriel : Déployer un service Amazon ECS. Ces informations de référence du Guide de l'AWS CodeDeploy utilisateur fournissent une vue d'ensemble blue/green des déploiements avec Amazon ECS et AWS CodeDeploy.
-
Guide du développeur Amazon Elastic Container Service — Pour plus d'informations sur l'utilisation des images et des conteneurs Docker, des services et clusters ECS et des ensembles de tâches ECS, consultez Qu'est-ce qu'Amazon ECS ?