View a markdown version of this page

Déploiement AWS CloudFormation s'empile plus rapidement avec le mode express - AWS CloudFormation

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.

Déploiement AWS CloudFormation s'empile plus rapidement avec le mode express

Avec le mode CloudFormation express, vous pouvez effectuer des opérations de stack dès que la configuration des ressources CloudFormation s'applique, sans attendre que les ressources soient complètement stabilisées. Utilisez le mode express pour créer, mettre à jour et supprimer des piles beaucoup plus rapidement lors des flux de travail de développement itératifs.

Le mode Express fonctionne avec tous les CloudFormation modèles existants. Il n'est pas nécessaire de modifier le modèle pour utiliser le mode express.

Quand utiliser le mode express

Utilisez le mode express pour les flux de travail de développement et d'itération où la rapidité est plus importante que l'attente d'une stabilisation complète des ressources. Utilisez le mode express lorsque :

  • Vous répétez les modifications apportées au modèle au cours du développement.

  • Vous souhaitez obtenir plus rapidement des informations sur la validité de vos configurations de ressources.

  • Il n'est pas nécessaire d'attendre que les ressources soient pleinement opérationnelles pour continuer.

Pour les déploiements de production où vous devez vérifier que les ressources sont totalement stabilisées et opérationnelles avant de considérer le déploiement comme terminé, utilisez le mode de déploiement par défaut.

Comment fonctionne le mode express

Dans le mode de déploiement par défaut, CloudFormation attend que chaque ressource atteigne un état complètement stabilisé avant de signaler la ressource comme terminée. Par exemple, lors de la création d'une instance Amazon EC2, attendez CloudFormation que l'instance soit dans son état. running

En mode express, on considère CloudFormation généralement qu'une opération sur une ressource est terminée dès que l'appel d'API pour créer, mettre à jour ou supprimer la ressource aboutit. Dans la plupart des cas, CloudFormation n'attend pas que la ressource atteigne son état opérationnel final.

Cela signifie qu'une fois qu'une opération de pile en mode express est terminée :

  • Les ressources sont peut-être encore en train d'initialiser ou de propager des modifications.

  • Les ressources ne sont peut-être pas encore prêtes à traiter le trafic ou à accepter des connexions.

  • Les opérations de suppression sont peut-être toujours en cours.

Comment CloudFormation gère les dépendances en mode express

Le mode Express respecte les dépendances des ressources définies dans votre modèle. Si une ressource fait référence à l'ID ou à l'attribut d'une autre ressource (via Ref ouFn::GetAtt), CloudFormation confirme que la configuration de la ressource référencée est appliquée avant de démarrer la ressource dépendante. Si une ressource dépendante rencontre une défaillance temporaire parce qu'une ressource référencée n'est pas prête, CloudFormation recommence l'opération.

Les ressources qui ne sont pas dépendantes les unes des autres peuvent fonctionner en parallèle.

Le mode Express ne modifie pas l'ordre de dépendance de vos ressources. Il change lorsque les rapports d'opération de pile sont terminés.

Commencer à utiliser le mode express

Vous pouvez utiliser le mode express avec le AWS Command Line Interface (AWS CLI), le Cloud Development Kit AWS (AWS CDK) (AWS CDK), la CloudFormation console et les ensembles de modifications. Les sections suivantes décrivent comment activer le mode express avec chaque méthode.

Utilisation du mode express avec AWS CLI

Pour utiliser le mode express avec le AWS CLI, ajoutez le --deployment-config paramètre à vos commandes d'opérations de pile.

Création d'une pile en mode express

La commande suivante crée une pile en mode express :

aws cloudformation create-stack --stack-name my-stack \ --template-body file://my-template.yaml \ --deployment-config '{"mode": "EXPRESS"}'
Mettre à jour une pile avec le mode express

La commande suivante met à jour une pile en utilisant le mode express :

aws cloudformation update-stack --stack-name my-stack \ --template-body file://my-template.yaml \ --deployment-config '{"mode": "EXPRESS"}'
Supprimer une pile en mode express

La commande suivante supprime une pile à l'aide du mode express :

aws cloudformation delete-stack --stack-name my-stack \ --deployment-config '{"mode": "EXPRESS"}'

Utilisation du mode express avec AWS CDK

Pour utiliser le mode express avec le Cloud Development Kit AWS (AWS CDK) (AWS CDK), utilisez le --express drapeau avec la cdk deploy commande :

cdk deploy --express

Utilisation du mode express avec AWS SAM

Pour utiliser le mode express avec la CLI AWS SAM, ajoutez l'--expressindicateur à vos commandes de déploiement ou de synchronisation :

sam deploy --express
sam sync --express

Pour conserver le paramètre dans la configuration de votre projet, utilisez --save-params :

sam deploy --express --save-params

Cela est enregistré express = true dans votre samconfig.toml fichier afin que les déploiements suivants utilisent automatiquement le mode Express.

Lorsque le mode express est activé, la AWS SAM CLI transmet la configuration de déploiement à CloudFormation. L'--disable-rollbackindicateur contrôle le comportement de restauration dans la configuration de déploiement.

Utilisation du mode express avec la console

Lorsque vous créez ou mettez à jour une pile dans la CloudFormation console, vous pouvez activer le mode express à l'étape Configurer les options de pile. Sous Options de déploiement, sélectionnez Express pour le mode de déploiement.

Utilisation du mode express avec des ensembles de modifications

Vous pouvez utiliser le mode express avec des ensembles de modifications en spécifiant la configuration de déploiement lors de la création du jeu de modifications :

aws cloudformation create-change-set --stack-name my-stack \ --change-set-name my-change-set \ --template-body file://my-template.yaml \ --deployment-config '{"mode": "EXPRESS"}'

Lorsque vous exécutez l'ensemble de modifications, CloudFormation applique la configuration de déploiement en mode express spécifiée lors de la création de l'ensemble de modifications.

Comportement de restauration avec le mode express

Lorsque vous utilisez le mode express, le rollback CloudFormation est désactivé par défaut. En cas d'échec d'une opération sur les ressources, CloudFormation n'annule pas automatiquement les modifications.

Pour réactiver la restauration en mode express, définissez le disableRollback --deployment-config paramètre false sur :

aws cloudformation create-stack --stack-name my-stack \ --template-body file://my-template.yaml \ --deployment-config '{"mode": "EXPRESS", "disableRollback": false}'

Mode express et piles imbriquées

Lorsque vous utilisez le mode express sur une pile parent, le paramètre se propage à toutes les piles imbriquées de la hiérarchie. Il n'est pas nécessaire de spécifier le mode express pour chaque pile imbriquée séparément. Toutes les ressources de la pile racine et de ses piles imbriquées sont terminées dès que leur configuration est appliquée.

Considérations relatives à la disponibilité des

Le mode Express termine les opérations sur les ressources avant que celles-ci n'atteignent un état totalement stabilisé. Toute ressource peut donc nécessiter un délai supplémentaire pour être pleinement prête à servir le trafic ou à effectuer une propagation multirégionale. Le tableau suivant illustre les types de comportement des ressources auxquels vous pouvez vous attendre, à l'aide d'exemples relatifs à différents types de ressources. Ces exemples sont illustratifs et ne constituent pas une liste complète des ressources prises en charge.

Type de ressource Opération Comportement de préparation
CloudFront Distribution sur Amazon Create/Update Le déploiement global de la distribution peut prendre plusieurs minutes une fois la configuration appliquée.
Instance Amazon EC2 Créer L'instance est peut-être toujours en cours d'initialisation (exécution de scripts de données utilisateur, vérifications d'état) une fois l'opération de pile terminée.
AWS Fonction Lambda Suppression Les ressources fonctionnelles sont peut-être encore en cours de nettoyage une fois les rapports d'opération de suppression terminés.
Service Amazon Elastic Container Service (Amazon ECS) Create/Update Les tâches de service sont peut-être encore en train de démarrer ou d'atteindre un état stable une fois l'opération de pile terminée.

Fonctionnalités et limitations non prises en charge

Les fonctionnalités et services suivants ne sont pas pris en charge avec le mode express :

CloudFormation StackSets

CloudFormation ne prend pas en charge le mode express avec StackSets les opérations.

Les ressources suivantes ont un comportement spécifique avec le mode express :

Ressources personnalisées

Les ressources personnalisées (y compris AWS::CloudFormation::CustomResource les Custom::* ressources) suivent leur comportement par défaut. CloudFormation attend que la ressource personnalisée envoie un signal de réponse avant de considérer l'opération comme terminée, même en mode express. Pour éviter qu'une ressource personnalisée lente ou bloquée ne retarde les flux de travail à itération rapide, définissez un temps d'attente maximal à l'ServiceTimeoutaide de cette propriété. Pour de plus amples informations, veuillez consulter Délai d’attente de réponse.

Comparaison avec AWS CDK déploiements HotSwap

Le tableau suivant compare le mode express aux déploiements AWS CDK hotswap.

Fonctionnalité Mode express AWS CDK hotswap
Mécanisme de déploiement Utilisations CloudFormation pour toutes les opérations liées aux ressources Contourne CloudFormation et appelle directement les API du service
Compatibilité des modèles Fonctionne avec tous les CloudFormation modèles existants Prend en charge un ensemble limité de types de ressources
État de la pile L'état de la pile reste cohérent avec le modèle L'état de la pile peut dériver du modèle
Assistance en cas de rétrogradation Supporte le rollback (désactivé par défaut) Aucune prise en charge de la rétrogradation
Couverture des ressources Tous les types de CloudFormation ressources Types de ressources limités (AWS Lambda, Amazon ECS, AWS Step Functions, etc.)
Usage recommandé Workflows de développement et d'itération Workflows de développement avec ressources prises en charge uniquement