View a markdown version of this page

CloudFormation StackSets référence des actions de déploiement - AWS CodePipeline

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.

CloudFormation StackSets référence des actions de déploiement

CodePipeline offre la possibilité d'effectuer des CloudFormation StackSets opérations dans le cadre de votre CI/CD processus. Vous utilisez un ensemble de piles pour créer des piles dans les AWS comptes des différentes AWS régions à l'aide d'un CloudFormation modèle unique. Toutes les ressources incluses dans chaque pile sont définies par le CloudFormation modèle de l'ensemble de piles. Lorsque vous créez le jeu de piles, vous spécifiez le modèle à utiliser, ainsi que tous les paramètres et fonctionnalités requis par le modèle.

Pour plus d'informations sur les concepts de CloudFormation StackSets, consultez StackSets les concepts du Guide de AWS CloudFormation l'utilisateur.

Vous intégrez votre pipeline CloudFormation StackSets grâce à deux types d'actions distincts que vous utilisez ensemble :

  • L'CloudFormationStackSetaction crée ou met à jour un ensemble de piles ou des instances de pile à partir du modèle stocké dans l'emplacement source du pipeline. Chaque fois qu'un ensemble de piles est créé ou mis à jour, il lance le déploiement de ces modifications sur des instances spécifiées. Dans la console, vous pouvez choisir le fournisseur d'actions CloudFormation Stack Set lorsque vous créez ou modifiez votre pipeline.

  • L'CloudFormationStackInstancesaction déploie les modifications apportées à l'CloudFormationStackSetaction vers des instances spécifiées, crée de nouvelles instances de pile et définit des remplacements de paramètres pour les instances spécifiées. Dans la console, vous pouvez choisir le fournisseur d'actions CloudFormation Stack Instances lorsque vous modifiez un pipeline existant.

Vous pouvez utiliser ces actions pour déployer sur des AWS comptes cibles ou des identifiants d'unité organisationnelle des AWS organisations cibles.

Note

Pour effectuer un déploiement sur AWS des comptes ou des identifiants d'unités organisationnelles cibles et utiliser le modèle d'autorisations gérées par les services, vous devez activer l'accès sécurisé entre AWS CloudFormation StackSets et AWS les organisations. Pour plus d'informations, consultez la section Activation de l'accès sécurisé avec AWS CloudFormation Stacksets.

Comment ? CloudFormation StackSets les actions fonctionnent

Une CloudFormationStackSet action crée ou met à jour des ressources selon qu'elle est exécutée pour la première fois ou non.

L'CloudFormationStackSetaction crée ou met à jour l'ensemble de piles et déploie ces modifications sur les instances spécifiées.

Note

Si vous utilisez cette action pour effectuer une mise à jour qui inclut l'ajout d'instances de pile, les nouvelles instances sont déployées en premier et la mise à jour est terminée en dernier. Les nouvelles instances reçoivent d'abord l'ancienne version, puis la mise à jour est appliquée à toutes les instances.

  • Créer  : lorsqu'aucune instance n'est spécifiée et que le jeu de piles n'existe pas, l'CloudFormationStackSetaction crée le jeu de piles sans créer d'instances.

  • Mise à jour  : lorsque l'CloudFormationStackSetaction est exécutée pour un ensemble de piles déjà créé, l'action met à jour l'ensemble de piles. Si aucune instance n'est spécifiée et que l'ensemble de piles existe déjà, toutes les instances sont mises à jour. Si cette action est utilisée pour mettre à jour des instances spécifiques, toutes les instances restantes passent au statut OBSOLÈTE.

    Vous pouvez utiliser cette CloudFormationStackSet action pour mettre à jour l'ensemble de piles de la manière suivante.

    • Mettez à jour le modèle sur certaines instances ou sur toutes les instances.

    • Mettez à jour les paramètres de certaines ou de toutes les instances.

    • Mettez à jour le rôle d'exécution pour l'ensemble de piles (celui-ci doit correspondre au rôle d'exécution spécifié dans le rôle Administrateur).

    • Modifiez le modèle d'autorisations (uniquement si aucune instance n'a été créée).

    • Enable/Disable AutoDeploymentsi le modèle d'autorisations de l'ensemble de piles estService Managed.

    • Agissez en tant qu'administrateur délégué dans un compte membre si le modèle d'autorisations de l'ensemble de piles l'estService Managed.

    • Mettez à jour le rôle d'administrateur.

    • Mettez à jour la description de l'ensemble de piles.

    • Ajoutez des cibles de déploiement à la mise à jour de l'ensemble de piles pour créer de nouvelles instances de pile.

L'CloudFormationStackInstancesaction crée de nouvelles instances de pile ou met à jour des instances de pile obsolètes. Une instance devient obsolète lorsqu'un ensemble de piles est mis à jour, mais toutes les instances qu'il contient ne sont pas mises à jour.

  • Créer  : si la pile existe déjà, l'CloudFormationStackInstancesaction met uniquement à jour les instances et ne crée pas d'instances de pile.

  • Mise à jour  : une fois l'CloudFormationStackSetaction exécutée, si le modèle ou les paramètres n'ont été mis à jour que dans certains cas, le reste sera marquéOUTDATED. Lors des étapes ultérieures du pipeline, CloudFormationStackInstances met à jour le reste des instances de la pile par vagues afin que toutes les instances soient marquéesCURRENT. Cette action peut également être utilisée pour ajouter des instances supplémentaires ou modifier des paramètres sur des instances nouvelles ou existantes.

Dans le cadre d'une mise à jour, les CloudFormationStackInstances actions CloudFormationStackSet et peuvent spécifier de nouvelles cibles de déploiement, ce qui crée de nouvelles instances de pile.

Dans le cadre d'une mise à jour, les CloudFormationStackInstances actions CloudFormationStackSet et ne suppriment pas les ensembles de piles, les instances ou les ressources. Lorsque l'action met à jour une pile mais ne spécifie pas toutes les instances à mettre à jour, les instances qui n'ont pas été spécifiées pour la mise à jour sont supprimées de la mise à jour et leur statut est défini surOUTDATED.

Au cours d'un déploiement, les instances de pile peuvent également indiquer OUTDATED si le déploiement vers les instances a échoué.

Comment structurer StackSets les actions dans un pipeline

Il est recommandé de construire votre pipeline de manière à ce que l'ensemble de piles soit créé et initialement déployé sur un sous-ensemble ou une seule instance. Après avoir testé votre déploiement et visualisé l'ensemble de piles généré, ajoutez l'CloudFormationStackInstancesaction pour que les instances restantes soient créées et mises à jour.

Utilisez la console ou l'interface de ligne de commande pour créer la structure de pipeline recommandée comme suit :

  1. Créez un pipeline avec une action source (obligatoire) et l'CloudFormationStackSetaction en tant qu'action de déploiement. Gérez votre pipeline.

  2. Lorsque votre pipeline s'exécute pour la première fois, l'CloudFormationStackSetaction crée votre stack set et au moins une instance initiale. Vérifiez la création de l'ensemble de piles et passez en revue le déploiement sur votre instance initiale. Par exemple, pour la création initiale de l'ensemble de piles pour le compte Account-A où se us-east-1 trouve la région spécifiée, l'instance de pile est créée avec l'ensemble de piles :

    Instance de pile Région Statut
    StackInstanceID-1 us-east-1 CURRENT
  3. Modifiez votre pipeline pour l'ajouter CloudFormationStackInstances comme deuxième action de déploiement afin d' create/update empiler les instances pour les cibles que vous désignez. Par exemple, pour la création d'une instance de pile pour un compte Account-A où les eu-central-1 régions us-east-2 et sont spécifiées, les instances de pile restantes sont créées et l'instance initiale reste mise à jour comme suit :

    Instance de pile Région Statut
    StackInstanceID-1 us-east-1 CURRENT
    StackInstanceID-2 us-east-2 CURRENT
    StackInstanceID-3 eu-central-1 CURRENT
  4. Exécutez votre pipeline selon vos besoins pour mettre à jour votre ensemble de piles et mettre à jour ou créer des instances de pile.

Lorsque vous lancez une mise à jour de pile au cours de laquelle vous avez supprimé des cibles de déploiement de la configuration d'action, les instances de pile qui n'étaient pas destinées à être mises à jour sont supprimées du déploiement et passent à l'état OBSOLÈTE. Par exemple, pour la mise à jour d'une instance de pile pour un compte Account-A dont la us-east-2 région est supprimée de la configuration de l'action, les instances de pile restantes sont créées et l'instance supprimée est définie sur OBSOLETED comme suit :

Instance de pile Région Statut
StackInstanceID-1 us-east-1 CURRENT
StackInstanceID-2 us-east-2 DÉPASSÉ
StackInstanceID-3 eu-central-1 CURRENT

Pour plus d'informations sur les meilleures pratiques en matière de déploiement de stack sets, consultez la section Meilleures pratiques du Guide de AWS CloudFormation l'utilisateur. StackSets

L'action CloudFormationStackSet

Cette action crée ou met à jour un ensemble de piles à partir du modèle stocké dans l'emplacement source du pipeline.

Après avoir défini un ensemble de piles, vous pouvez créer, mettre à jour ou supprimer des piles dans les comptes cibles et les régions spécifiés dans les paramètres de configuration. Lors de la création, de la mise à jour et de la suppression de piles, vous pouvez spécifier d'autres préférences, telles que l'ordre des régions pour les opérations à effectuer, le pourcentage de tolérance aux pannes au-delà duquel les opérations de pile s'arrêtent et le nombre de comptes dans lesquels les opérations sont effectuées simultanément sur les piles.

Un ensemble de piles est une ressource régionale. Si vous créez un ensemble de piles dans une AWS région, vous ne pouvez pas y accéder depuis d'autres régions.

Lorsque cette action est utilisée comme action de mise à jour de l'ensemble de piles, les mises à jour de la pile ne sont pas autorisées sans un déploiement sur au moins une instance de pile.

Type d'action

  • Catégorie : Deploy

  • Propriétaire : AWS

  • Fournisseur : CloudFormationStackSet

  • Version : 1

Paramètres de configuration

StackSetName

Obligatoire : oui

Nom à associer à l'ensemble de piles. Ce nom doit être unique dans la région où il a été créé.

Le nom ne peut contenir que des caractères alphanumériques et des tirets. Il doit commencer par un caractère alphabétique et comporter 128 caractères ou moins.

Description

Obligatoire : non

Description de l'ensemble de piles. Vous pouvez l'utiliser pour décrire l'objectif de l'ensemble de piles ou pour toute autre information pertinente.

TemplatePath

Obligatoire : oui

Emplacement du modèle qui définit les ressources de l'ensemble de piles. Cela doit pointer vers un modèle d'une taille maximale de 460 800 octets.

Entrez le chemin d'accès au nom de l'artefact source et au fichier modèle au format "InputArtifactName::TemplateFileName" indiqué dans l'exemple suivant.

SourceArtifact::template.txt
Parameters

Obligatoire : non

Liste des paramètres de modèle pour votre stack set qui sont mis à jour lors d'un déploiement.

Vous pouvez fournir des paramètres sous forme de liste littérale ou de chemin de fichier :

  • Vous pouvez saisir des paramètres dans le format de syntaxe abrégé suivant :. ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string Pour plus d'informations sur ces types de données, consultezTypes de données des paramètres du modèle.

    L'exemple suivant montre un paramètre nommé BucketName avec la valeuramzn-s3-demo-source-bucket.

    ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket

    L'exemple suivant montre une entrée avec plusieurs paramètres :

    ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket ParameterKey=Asset1,ParameterValue=true ParameterKey=Asset2,ParameterValue=true
  • Vous pouvez entrer l'emplacement du fichier contenant la liste des remplacements de paramètres de modèle saisis au format"InputArtifactName::ParametersFileName", comme illustré dans l'exemple suivant.

    SourceArtifact::parameters.txt

    L'exemple suivant montre le contenu du fichier pourparameters.txt.

    [ { "ParameterKey": "KeyName", "ParameterValue": "true" }, { "ParameterKey": "KeyName", "ParameterValue": "true" } ]
Fonctionnalités

Obligatoire : non

Indique que le modèle peut créer et mettre à jour des ressources, en fonction des types de ressources du modèle.

Vous devez utiliser cette propriété si votre modèle de pile contient des ressources IAM ou si vous créez une pile directement à partir d'un modèle contenant des macros. Pour que l' CloudFormation action fonctionne correctement de cette manière, vous devez utiliser l'une des fonctionnalités suivantes :

  • CAPABILITY_IAM

  • CAPABILITY_NAMED_IAM

Vous pouvez spécifier plusieurs fonctionnalités en utilisant une virgule et sans espace entre les fonctionnalités. L'exemple ci-dessous Exemple CloudFormationStackSet configuration des actions montre une entrée avec de multiples fonctionnalités.

PermissionModel

Obligatoire : non

Détermine la manière dont les rôles IAM sont créés et gérés. Si le champ n'est pas spécifié, la valeur par défaut est utilisée. Pour plus d'informations, consultez Modèles d'autorisations pour les opérations relatives aux ensembles de piles.

Les valeurs valides sont :

  • SELF_MANAGED(par défaut) : vous devez créer des rôles d'administrateur et d'exécution à déployer sur les comptes cibles.

  • SERVICE_MANAGED: crée CloudFormation StackSets automatiquement les rôles IAM nécessaires au déploiement sur les comptes gérés par AWS les organisations. Cela nécessite un compte pour être membre d'une organisation.

Note

Ce paramètre ne peut être modifié que s'il n'existe aucune instance de pile dans le jeu de piles.

AdministrationRoleArn
Note

Comme il CloudFormation StackSets effectue des opérations sur plusieurs comptes, vous devez définir les autorisations nécessaires sur ces comptes avant de pouvoir créer le stack set.

Obligatoire : non

Note

Ce paramètre est facultatif pour le modèle d'autorisations SELF_MANAGED et n'est pas utilisé pour le modèle d'autorisations SERVICE_MANAGED.

L'ARN du rôle IAM dans le compte administrateur utilisé pour effectuer des opérations d'ensemble de piles.

Le nom peut contenir des caractères alphanumériques, l'un des caractères suivants : _+=, .@-, et aucun espace. Le nom ne fait pas la distinction entre majuscules et minuscules. Ce nom de rôle doit avoir une longueur minimale de 20 caractères et une longueur maximale de 2048 caractères. Les noms de rôle doivent être uniques au sein du compte. Le nom de rôle spécifié ici doit être un nom de rôle existant. Si vous ne spécifiez pas le nom du rôle, celui-ci est défini sur AWSCloudFormationStackSetAdministrationRole. Si vous le spécifiez ServiceManaged, vous ne devez pas définir de nom de rôle.

ExecutionRoleName
Note

Comme il CloudFormation StackSets effectue des opérations sur plusieurs comptes, vous devez définir les autorisations nécessaires sur ces comptes avant de pouvoir créer le stack set.

Obligatoire : non

Note

Ce paramètre est facultatif pour le modèle d'autorisations SELF_MANAGED et n'est pas utilisé pour le modèle d'autorisations SERVICE_MANAGED.

Nom du rôle IAM dans les comptes cibles utilisés pour effectuer des opérations d'ensemble de piles. Le nom peut contenir des caractères alphanumériques, l'un des caractères suivants : _+=, .@-, et aucun espace. Le nom ne fait pas la distinction entre majuscules et minuscules. Ce nom de rôle doit avoir une longueur minimale de 1 caractère et une longueur maximale de 64 caractères. Les noms de rôle doivent être uniques au sein du compte. Le nom de rôle spécifié ici doit être un nom de rôle existant. Ne spécifiez pas ce rôle si vous utilisez des rôles d'exécution personnalisés. Si vous ne spécifiez pas le nom du rôle, celui-ci est défini surAWSCloudFormationStackSetExecutionRole. Si vous définissez Service_Managed ce paramètre sur true, vous ne devez pas définir de nom de rôle.

OrganizationsAutoDeployment

Obligatoire : non

Note

Ce paramètre est facultatif pour le modèle d'autorisations SERVICE_MANAGED et n'est pas utilisé pour le modèle d'autorisations SELF_MANAGED.

Décrit si le déploiement est CloudFormation StackSets automatique vers AWS les comptes des organisations ajoutés à une organisation ou à une unité organisationnelle (UO) cible. Si OrganizationsAutoDeployment c'est spécifié, ne spécifiez pas DeploymentTargets etRegions.

Note

Si aucune entrée n'est fournieOrganizationsAutoDeployment, la valeur par défaut estDisabled.

Les valeurs valides sont :

  • Enabled. Obligatoire : Non.

    StackSets déploie automatiquement des instances de pile supplémentaires sur AWS les comptes des organisations qui sont ajoutés à une organisation ou à une unité organisationnelle (UO) cible dans les régions spécifiées. Si un compte est supprimé d'une organisation ou d'une unité d'organisation cible, CloudFormation StackSets supprime les instances de pile du compte dans les régions spécifiées.

  • Disabled. Obligatoire : Non.

    StackSets ne déploie pas automatiquement des instances de pile supplémentaires sur AWS les comptes des organisations qui sont ajoutés à une organisation ou à une unité organisationnelle (UO) cible dans les régions spécifiées.

  • EnabledWithStackRetention. Obligatoire : Non.

    Les ressources de la pile sont conservées lorsqu'un compte est supprimé d'une organisation ou d'une unité d'organisation cible.

DeploymentTargets

Obligatoire : non

Note

Pour le modèle d'autorisations SERVICE_MANAGED, vous pouvez fournir l'ID racine de l'organisation ou les ID d'unité organisationnelle pour les cibles de déploiement. Pour le modèle d'autorisations SELF_MANAGED, vous ne pouvez fournir que des comptes.

Note

Lorsque ce paramètre est sélectionné, vous devez également sélectionner Régions.

Une liste de AWS comptes ou d'identifiants d'unités organisationnelles où doivent se trouver les instances de stack set created/updated.

  • Comptes  :

    Vous pouvez fournir des comptes sous forme de liste littérale ou de chemin de fichier :

    • Littéral  : entrez les paramètres dans le format de syntaxe abrégéaccount_ID,account_ID, comme indiqué dans l'exemple suivant.

      111111222222,333333444444
    • Chemin du fichier : emplacement du fichier contenant une liste de AWS comptes où doivent se trouver les instances de stack set created/updated, saisi au formatInputArtifactName::AccountsFileName. Si vous utilisez le chemin du fichier pour spécifier des comptes ou OrganizationalUnitIds, le format de fichier doit être au format JSON, comme illustré dans l'exemple suivant.

      SourceArtifact::accounts.txt

      L'exemple suivant montre le contenu du fichier pouraccounts.txt.

      [ "111111222222" ]

      L'exemple suivant montre le contenu du fichier accounts.txt lorsque plusieurs comptes sont répertoriés :

      [ "111111222222","333333444444" ]
  • OrganizationalUnitIds:

    Note

    Ce paramètre est facultatif pour le modèle d'autorisations SERVICE_MANAGED et n'est pas utilisé pour le modèle d'autorisations SELF_MANAGED. Ne l'utilisez pas si vous sélectionnez OrganizationsAutoDeployment.

    Les unités AWS organisationnelles dans lesquelles mettre à jour les instances de pile associées.

    Vous pouvez fournir des ID d'unité organisationnelle sous forme de liste littérale ou de chemin de fichier :

    • Littéral  : entrez un tableau de chaînes séparées par des virgules, comme illustré dans l'exemple suivant.

      ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222
    • Chemin du fichier : emplacement du fichier contenant la liste des instances OrganizationalUnitIds dans lesquelles créer ou mettre à jour des instances d'ensembles de piles. Si vous utilisez le chemin du fichier pour spécifier des comptes ou OrganizationalUnitIds, le format de fichier doit être au format JSON, comme illustré dans l'exemple suivant.

      Entrez le chemin d'accès au fichier au formatInputArtifactName::OrganizationalUnitIdsFileName.

      SourceArtifact::OU-IDs.txt

      L'exemple suivant montre le contenu du fichier pour OU-IDs.txt :

      [ "ou-examplerootid111-exampleouid111","ou-examplerootid222-exampleouid222" ]
Régions

Obligatoire : non

Note

Lorsque ce paramètre est sélectionné, vous devez également le sélectionner DeploymentTargets.

Liste des AWS régions dans lesquelles les instances d'ensembles de piles sont créées ou mises à jour. Les régions sont mises à jour dans l'ordre dans lequel elles ont été saisies.

Entrez une liste de AWS régions valides au format Region1,Region2 indiqué dans l'exemple suivant.

us-west-2,us-east-1
FailureTolerancePercentage

Obligatoire : non

Le pourcentage de comptes par région pour lesquels cette opération de pile peut échouer avant l' CloudFormation arrêt de l'opération dans cette région. Si l'opération est arrêtée dans une région, CloudFormation ne tente pas l'opération dans les régions suivantes. Lorsque vous calculez le nombre de comptes en fonction du pourcentage spécifié, CloudFormation arrondissez au nombre entier inférieur.

MaxConcurrentPercentage

Obligatoire : non

Pourcentage maximum de comptes dans lequel vous souhaitez effectuer cette opération simultanément. Lorsque vous calculez le nombre de comptes en fonction du pourcentage spécifié, CloudFormation arrondissez au nombre entier inférieur. Si l'arrondissement vers le bas CloudFormation donne zéro, définissez plutôt le nombre comme un. Bien que vous utilisiez ce paramètre pour spécifier le maximum, pour les déploiements de grande envergure, le nombre réel de comptes traités simultanément peut être inférieur en raison de la limitation des services.

RegionConcurrencyType

Obligatoire : non

Vous pouvez spécifier si l'ensemble de piles doit être déployé de Régions AWS manière séquentielle ou parallèle en configurant le paramètre de déploiement simultané des régions. Lorsque la simultanéité régionale est spécifiée pour déployer des piles sur plusieurs Régions AWS en parallèle, cela peut se traduire par des temps de déploiement globaux plus rapides.

  • Parallèle  : les déploiements d'ensembles de piles seront effectués en même temps, à condition que les échecs de déploiement d'une région ne dépassent pas une tolérance de défaillance spécifiée.

  • Séquentiel  : les déploiements des ensembles de piles seront effectués un par un, à condition que les échecs de déploiement d'une région ne dépassent pas une tolérance de défaillance spécifiée. Le déploiement séquentiel est la sélection par défaut.

ConcurrencyMode

Obligatoire : non

Le mode de simultanéité vous permet de choisir le comportement du niveau de concurrence lors des opérations d'ensemble de piles, que ce soit avec une tolérance de défaillance stricte ou souple. La Tolérance stricte aux pannes réduit la vitesse de déploiement en cas de défaillance des opérations d'ensemble de piles, car la simultanéité diminue à chaque défaillance. Soft Failure Tolerance donne la priorité à la vitesse de déploiement tout en tirant parti des capacités CloudFormation de sécurité.

  • STRICT_FAILURE_TOLERANCE: cette option abaisse dynamiquement le niveau de simultanéité pour garantir que le nombre de comptes défaillants ne dépasse jamais une certaine tolérance de défaillance. Il s’agit du comportement de par défaut.

  • SOFT_FAILURE_TOLERANCE: cette option dissocie la tolérance aux pannes de la simultanéité réelle. Cela permet aux opérations d'ensemble de piles de s'exécuter à un niveau de simultanéité défini, quel que soit le nombre d'échecs.

CallAs

Obligatoire : non

Note

Ce paramètre est facultatif pour le modèle SERVICE_MANAGED d'autorisations et n'est pas utilisé pour le modèle SELF_MANAGED d'autorisations.

Spécifie si vous agissez sur le compte de gestion de l'organisation ou en tant qu'administrateur délégué sur un compte de membre.

Note

Si ce paramètre est défini surDELEGATED_ADMIN, assurez-vous que le rôle IAM du pipeline est organizations:ListDelegatedAdministrators autorisé. Sinon, l'action échouera lors de l'exécution avec une erreur similaire à la suivante : Account used is not a delegated administrator

  • SELF: le déploiement de Stack Set utilisera les autorisations gérées par le service lorsque vous êtes connecté au compte de gestion.

  • DELEGATED_ADMIN: le déploiement de Stack Set utilisera les autorisations gérées par les services lorsque vous êtes connecté à un compte d'administrateur délégué.

Artefacts d'entrée

Vous devez inclure au moins un artefact d'entrée contenant le modèle de l'ensemble de piles dans une CloudFormationStackSet action. Vous pouvez inclure d'autres artefacts d'entrée pour les listes de cibles de déploiement, de comptes et de paramètres.

  • Nombre d'objets : 1 to 3

  • Description : Vous pouvez inclure des artefacts pour fournir :

    • Le fichier modèle de pile. (Voir le paramètre TemplatePath.)

    • Le fichier de paramètres. (Voir le paramètre Parameters.)

    • Le fichier des comptes. (Voir le paramètre DeploymentTargets.)

Artefacts de sortie

  • Nombre d'objets : 0

  • Description : Les artefacts de sortie ne s'appliquent pas à ce type d'action.

Variables de sortie

Si vous configurez cette action, elle produit des variables qui peuvent être référencées par la configuration de l'action d'une action en aval dans le pipeline. Vous configurez une action avec un espace de noms pour rendre ces variables disponibles pour la configuration des actions en aval.

  • StackSetId: ID de l'ensemble de piles.

  • OperationId: ID de l'opération d'ensemble de piles.

Pour de plus amples informations, veuillez consulter Référence des variables.

Exemple CloudFormationStackSet configuration des actions

Les exemples suivants montrent la configuration de l'CloudFormationStackSetaction.

Exemple de modèle d'autorisations autogérées

L'exemple suivant montre une CloudFormationStackSet action dans laquelle la cible de déploiement saisie est un ID de AWS compte.

YAML
Name: CreateStackSet ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackSet Version: '1' RunOrder: 1 Configuration: DeploymentTargets: '111111222222' FailureTolerancePercentage: '20' MaxConcurrentPercentage: '25' PermissionModel: SELF_MANAGED Regions: us-east-1 StackSetName: my-stackset TemplatePath: 'SourceArtifact::template.json' OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: us-west-2 Namespace: DeployVariables
JSON
{ "Name": "CreateStackSet", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackSet", "Version": "1" }, "RunOrder": 1, "Configuration": { "DeploymentTargets": "111111222222", "FailureTolerancePercentage": "20", "MaxConcurrentPercentage": "25", "PermissionModel": "SELF_MANAGED", "Regions": "us-east-1", "StackSetName": "my-stackset", "TemplatePath": "SourceArtifact::template.json" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "us-west-2", "Namespace": "DeployVariables" }

Exemple de modèle d'autorisations gérées par les services

L'exemple suivant montre une CloudFormationStackSet action pour le modèle d'autorisations gérées par les services dans laquelle l'option de déploiement automatique auprès des AWS organisations est activée avec la rétention de la pile.

YAML
Name: Deploy ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackSet Version: '1' RunOrder: 1 Configuration: Capabilities: 'CAPABILITY_IAM,CAPABILITY_NAMED_IAM' OrganizationsAutoDeployment: EnabledWithStackRetention PermissionModel: SERVICE_MANAGED StackSetName: stacks-orgs TemplatePath: 'SourceArtifact::template.json' OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: eu-central-1 Namespace: DeployVariables
JSON
{ "Name": "Deploy", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackSet", "Version": "1" }, "RunOrder": 1, "Configuration": { "Capabilities": "CAPABILITY_IAM,CAPABILITY_NAMED_IAM", "OrganizationsAutoDeployment": "EnabledWithStackRetention", "PermissionModel": "SERVICE_MANAGED", "StackSetName": "stacks-orgs", "TemplatePath": "SourceArtifact::template.json" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "eu-central-1", "Namespace": "DeployVariables" }

L' CloudFormationStackInstances action

Cette action crée de nouvelles instances et déploie des ensembles de piles sur des instances spécifiées. Une instance de pile est une référence à une pile d’un compte de destination dans une région. Une instance de pile peut exister sans pile ; par exemple, si la création de pile échoue, l'instance de pile indique la raison de l'échec de la création de la pile. L'instance de pile est associée à un seul ensemble de piles.

Après la création initiale d'un ensemble de piles, vous pouvez ajouter de nouvelles instances de pile à l'aide deCloudFormationStackInstances. Les valeurs des paramètres du modèle peuvent être remplacées au niveau de l'instance de pile lors des opérations de création ou de mise à jour d'instances d'ensemble de piles.

Chaque ensemble de piles possède un modèle et un ensemble de paramètres de modèle. Lorsque vous mettez à jour le modèle ou les paramètres du modèle, vous les mettez à jour pour l'ensemble complet. Tous les statuts de l'instance sont ensuite définis sur OUTDATED jusqu'à ce que les modifications soient déployées sur cette instance.

Pour remplacer les valeurs de paramètres sur des instances spécifiques, par exemple, si le modèle contient un paramètre pour stage ayant une valeur deprod, vous pouvez remplacer la valeur de ce paramètre par ou. beta gamma

Type d'action

  • Catégorie : Deploy

  • Propriétaire : AWS

  • Fournisseur : CloudFormationStackInstances

  • Version : 1

Paramètres de configuration

StackSetName

Obligatoire : oui

Nom à associer à l'ensemble de piles. Ce nom doit être unique dans la région où il a été créé.

Le nom ne peut contenir que des caractères alphanumériques et des tirets. Il doit commencer par un caractère alphabétique et comporter 128 caractères ou moins.

DeploymentTargets

Obligatoire : non

Note

Pour le modèle d'autorisations SERVICE_MANAGED, vous pouvez fournir l'ID racine de l'organisation ou les ID d'unité organisationnelle pour les cibles de déploiement. Pour le modèle d'autorisations SELF_MANAGED, vous ne pouvez fournir que des comptes.

Note

Lorsque ce paramètre est sélectionné, vous devez également sélectionner Régions.

Une liste de AWS comptes ou d'identifiants d'unités organisationnelles où doivent se trouver les instances de stack set created/updated.

  • Comptes  :

    Vous pouvez fournir des comptes sous forme de liste littérale ou de chemin de fichier :

    • Littéral  : entrez les paramètres dans le format de syntaxe abrégéaccount_ID,account_ID, comme indiqué dans l'exemple suivant.

      111111222222,333333444444
    • Chemin du fichier : emplacement du fichier contenant une liste de AWS comptes où doivent se trouver les instances de stack set created/updated, saisi au formatInputArtifactName::AccountsFileName. Si vous utilisez le chemin du fichier pour spécifier des comptes ou OrganizationalUnitIds, le format de fichier doit être au format JSON, comme illustré dans l'exemple suivant.

      SourceArtifact::accounts.txt

      L'exemple suivant montre le contenu du fichier pour accounts.txt :

      [ "111111222222" ]

      L'exemple suivant montre le contenu du fichier accounts.txt lorsque plusieurs comptes sont répertoriés :

      [ "111111222222","333333444444" ]
  • OrganizationalUnitIds:

    Note

    Ce paramètre est facultatif pour le modèle d'autorisations SERVICE_MANAGED et n'est pas utilisé pour le modèle d'autorisations SELF_MANAGED. Ne l'utilisez pas si vous sélectionnez OrganizationsAutoDeployment.

    Les unités AWS organisationnelles dans lesquelles mettre à jour les instances de pile associées.

    Vous pouvez fournir des ID d'unité organisationnelle sous forme de liste littérale ou de chemin de fichier.

    • Littéral  : entrez un tableau de chaînes séparées par des virgules, comme illustré dans l'exemple suivant.

      ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222
    • Chemin du fichier : emplacement du fichier contenant la liste des instances OrganizationalUnitIds dans lesquelles créer ou mettre à jour des instances d'ensembles de piles. Si vous utilisez le chemin du fichier pour spécifier des comptes ou OrganizationalUnitIds, le format de fichier doit être au format JSON, comme illustré dans l'exemple suivant.

      Entrez le chemin d'accès au fichier au formatInputArtifactName::OrganizationalUnitIdsFileName.

      SourceArtifact::OU-IDs.txt

      L'exemple suivant montre le contenu du fichier pour OU-IDs.txt :

      [ "ou-examplerootid111-exampleouid111","ou-examplerootid222-exampleouid222" ]
Régions

Obligatoire : oui

Note

Lorsque ce paramètre est sélectionné, vous devez également le sélectionner DeploymentTargets.

Liste des AWS régions dans lesquelles les instances d'ensembles de piles sont créées ou mises à jour. Les régions sont mises à jour dans l'ordre dans lequel elles ont été saisies.

Entrez une liste de AWS régions valides au format :Region1,Region2, comme illustré dans l'exemple suivant.

us-west-2,us-east-1
ParameterOverrides

Obligatoire : non

Liste des paramètres d'ensemble de piles que vous souhaitez remplacer dans les instances de pile sélectionnées. Les valeurs de paramètres remplacées sont appliquées à toutes les instances de pile dans les comptes et les régions spécifiés.

Vous pouvez fournir des paramètres sous forme de liste littérale ou de chemin de fichier :

  • Vous pouvez saisir des paramètres dans le format de syntaxe abrégé suivant :. ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string Pour plus d'informations sur ces types de données, consultezTypes de données des paramètres du modèle.

    L'exemple suivant montre un paramètre nommé BucketName avec la valeuramzn-s3-demo-source-bucket.

    ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket

    L'exemple suivant montre une entrée avec plusieurs paramètres.

    ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket ParameterKey=Asset1,ParameterValue=true ParameterKey=Asset2,ParameterValue=true
  • Vous pouvez entrer l'emplacement du fichier contenant la liste des remplacements de paramètres de modèle saisis au formatInputArtifactName::ParameterOverridesFileName, comme illustré dans l'exemple suivant.

    SourceArtifact::parameter-overrides.txt

    L'exemple suivant montre le contenu du fichier pourparameter-overrides.txt.

    [ { "ParameterKey": "KeyName", "ParameterValue": "true" }, { "ParameterKey": "KeyName", "ParameterValue": "true" } ]
FailureTolerancePercentage

Obligatoire : non

Le pourcentage de comptes par région pour lesquels cette opération de pile peut échouer avant l' CloudFormation arrêt de l'opération dans cette région. Si l'opération est arrêtée dans une région, CloudFormation ne tente pas l'opération dans les régions suivantes. Lorsque vous calculez le nombre de comptes en fonction du pourcentage spécifié, CloudFormation arrondissez au nombre entier inférieur.

MaxConcurrentPercentage

Obligatoire : non

Pourcentage maximum de comptes sur lesquels effectuer cette opération en même temps. Lorsque vous calculez le nombre de comptes en fonction du pourcentage spécifié, CloudFormation arrondissez au nombre entier inférieur. Si l'arrondissement vers le bas CloudFormation donne zéro, définissez plutôt le nombre comme un. Bien que vous indiquiez le maximum, pour les déploiements de grande envergure, le nombre réel de comptes traités simultanément peut être inférieur en raison de la limitation des services.

RegionConcurrencyType

Obligatoire : non

Vous pouvez spécifier si l'ensemble de piles doit être déployé de Régions AWS manière séquentielle ou parallèle en configurant le paramètre de déploiement simultané des régions. Lorsque la simultanéité régionale est spécifiée pour déployer des piles sur plusieurs Régions AWS en parallèle, cela peut se traduire par des temps de déploiement globaux plus rapides.

  • Parallèle  : les déploiements d'ensembles de piles seront effectués en même temps, à condition que les échecs de déploiement d'une région ne dépassent pas une tolérance de défaillance spécifiée.

  • Séquentiel  : les déploiements des ensembles de piles seront effectués un par un, à condition que les échecs de déploiement d'une région ne dépassent pas une tolérance de défaillance spécifiée. Le déploiement séquentiel est la sélection par défaut.

ConcurrencyMode

Obligatoire : non

Le mode de simultanéité vous permet de choisir le comportement du niveau de concurrence lors des opérations d'ensemble de piles, que ce soit avec une tolérance de défaillance stricte ou souple. La Tolérance stricte aux pannes réduit la vitesse de déploiement en cas de défaillance des opérations d'ensemble de piles, car la simultanéité diminue à chaque défaillance. Soft Failure Tolerance donne la priorité à la vitesse de déploiement tout en tirant parti des capacités CloudFormation de sécurité.

  • STRICT_FAILURE_TOLERANCE: cette option abaisse dynamiquement le niveau de simultanéité afin de garantir que le nombre de comptes défaillants ne dépasse jamais une certaine tolérance de défaillance. Il s’agit du comportement de par défaut.

  • SOFT_FAILURE_TOLERANCE: cette option dissocie la tolérance aux pannes de la simultanéité réelle. Cela permet aux opérations d'ensemble de piles de s'exécuter à un niveau de simultanéité défini, quel que soit le nombre d'échecs.

CallAs

Obligatoire : non

Note

Ce paramètre est facultatif pour le modèle SERVICE_MANAGED d'autorisations et n'est pas utilisé pour le modèle SELF_MANAGED d'autorisations.

Spécifie si vous agissez sur le compte de gestion de l'organisation ou en tant qu'administrateur délégué sur un compte de membre.

Note

Si ce paramètre est défini surDELEGATED_ADMIN, assurez-vous que le rôle IAM du pipeline est organizations:ListDelegatedAdministrators autorisé. Sinon, l'action échouera lors de l'exécution avec une erreur similaire à la suivante : Account used is not a delegated administrator

  • SELF: le déploiement de Stack Set utilisera les autorisations gérées par le service lorsque vous êtes connecté au compte de gestion.

  • DELEGATED_ADMIN: le déploiement de Stack Set utilisera les autorisations gérées par les services lorsque vous êtes connecté à un compte d'administrateur délégué.

Artefacts d'entrée

CloudFormationStackInstancespeut contenir des artefacts répertoriant les cibles et les paramètres de déploiement.

  • Nombre d'objets : 0 to 2

  • Description : En entrée, l'action Stack Set accepte éventuellement des artefacts aux fins suivantes :

    • Fournir le fichier de paramètres à utiliser. (Voir le paramètre ParameterOverrides.)

    • Fournir le fichier de comptes cibles à utiliser. (Voir le paramètre DeploymentTargets.)

Artefacts de sortie

  • Nombre d'objets : 0

  • Description : Les artefacts de sortie ne s'appliquent pas à ce type d'action.

Variables de sortie

Lorsque cette action est configurée, elle produit des variables qui peuvent être référencées par la configuration d'action d'une action en aval dans le pipeline. Vous configurez une action avec un espace de noms pour rendre ces variables disponibles pour la configuration des actions en aval.

  • StackSetId: ID de l'ensemble de piles.

  • OperationId: ID de l'opération de stack set.

Pour de plus amples informations, veuillez consulter Référence des variables.

Exemple de configuration d'action

Les exemples suivants montrent la configuration de l'CloudFormationStackInstancesaction.

Exemple de modèle d'autorisations autogérées

L'exemple suivant montre une CloudFormationStackInstances action dans laquelle la cible de déploiement saisie est un Compte AWS ID111111222222.

YAML
Name: my-instances ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackInstances Version: '1' RunOrder: 2 Configuration: DeploymentTargets: '111111222222' Regions: 'us-east-1,us-east-2,us-west-1,us-west-2' StackSetName: my-stackset OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: us-west-2
JSON
{ "Name": "my-instances", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackInstances", "Version": "1" }, "RunOrder": 2, "Configuration": { "DeploymentTargets": "111111222222", "Regions": "us-east-1,us-east-2,us-west-1,us-west-2", "StackSetName": "my-stackset" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "us-west-2" }

Exemple de modèle d'autorisations gérées par les services

L'exemple suivant montre une CloudFormationStackInstances action pour le modèle d'autorisations gérées par les services où la cible de déploiement est l'ID d'une unité organisationnelle de l' AWS organisation. ou-1111-1example

YAML
Name: Instances ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackInstances Version: '1' RunOrder: 2 Configuration: DeploymentTargets: ou-1111-1example Regions: us-east-1 StackSetName: my-stackset OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: eu-central-1
JSON
{ "Name": "Instances", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackInstances", "Version": "1" }, "RunOrder": 2, "Configuration": { "DeploymentTargets": "ou-1111-1example", "Regions": "us-east-1", "StackSetName": "my-stackset" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "eu-central-1" }

Autorisations relatives aux rôles de service : CloudFormationStackSet action

Pour CloudFormation StackSets les actions, les autorisations minimales suivantes sont requises.

Pour l'CloudFormationStackSetaction, ajoutez ce qui suit à votre déclaration de politique :

{ "Effect": "Allow", "Action": [ "cloudformation:CreateStackSet", "cloudformation:UpdateStackSet", "cloudformation:CreateStackInstances", "cloudformation:DescribeStackSetOperation", "cloudformation:DescribeStackSet", "cloudformation:ListStackInstances" ], "Resource": "resource_ARN" },

Autorisations relatives aux rôles de service : CloudFormationStackInstances action

Pour l'CloudFormationStackInstancesaction, ajoutez ce qui suit à votre déclaration de politique :

{ "Effect": "Allow", "Action": [ "cloudformation:CreateStackInstances", "cloudformation:DescribeStackSetOperation" ], "Resource": "resource_ARN" },

Modèles d'autorisations pour les opérations relatives aux ensembles de piles

Comme il CloudFormation StackSets effectue des opérations sur plusieurs comptes, vous devez définir les autorisations nécessaires sur ces comptes avant de pouvoir créer le stack set. Vous pouvez définir des autorisations par le biais d'autorisations autogérées ou d'autorisations gérées par service.

Avec les autorisations autogérées, vous créez les deux rôles IAM requis par StackSets  : un rôle d'administrateur, par exemple, AWSCloudFormationStackSetAdministrationRole dans le compte où vous définissez le stack set, et un rôle d'exécution, tel que AWSCloudFormationStackSetExecutionRole dans chacun des comptes où vous déployez des instances de stack set. À l'aide de ce modèle d'autorisations, StackSets vous pouvez effectuer un déploiement AWS sur n'importe quel compte dans lequel l'utilisateur est autorisé à créer un rôle IAM. Pour plus d'informations, voir Accorder des autorisations autogérées dans le Guide de l'AWS CloudFormation utilisateur.

Note

Comme il CloudFormation StackSets effectue des opérations sur plusieurs comptes, vous devez définir les autorisations nécessaires sur ces comptes avant de pouvoir créer le stack set.

Grâce aux autorisations gérées par les services, vous pouvez déployer des instances de stack sur des comptes gérés par AWS des organisations. À l'aide de ce modèle d'autorisations, vous n'avez pas à créer les rôles IAM nécessaires, car les rôles IAM sont StackSets créés en votre nom. Avec ce modèle, vous pouvez également activer les déploiements automatiques sur les comptes qui seront ajoutés ultérieurement à l'organisation. Consultez la section Activer l'accès sécurisé auprès AWS des organisations dans le Guide de AWS CloudFormation l'utilisateur.

Types de données des paramètres du modèle

Les paramètres de modèle utilisés dans les opérations d'ensembles de piles incluent les types de données suivants. Pour de plus amples informations, veuillez consulter DescribeStackSet.

ParameterKey
  • Description : clé associée au paramètre. Si vous ne spécifiez pas de clé ni de valeur pour un paramètre particulier, AWS CloudFormation utilise la valeur par défaut spécifiée dans le modèle.

  • Exemple :

    "ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket"
ParameterValue
  • Description : valeur d'entrée associée au paramètre.

  • Exemple :

    "ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket"
UsePreviousValue
  • Lors d'une mise à jour de pile, utilisez la valeur de paramètre existante que la pile utilise pour une clé de paramètre donnée. Si vous spécifieztrue, ne spécifiez pas de valeur de paramètre.

  • Exemple :

    "ParameterKey=Asset1,UsePreviousValue=true"

Chaque ensemble de piles possède un modèle et un ensemble de paramètres de modèle. Lorsque vous mettez à jour le modèle ou les paramètres du modèle, vous les mettez à jour pour l'ensemble complet. Ensuite, tous les statuts d'instance sont définis sur OBSOLÈTE jusqu'à ce que les modifications soient déployées sur cette instance.

Pour remplacer les valeurs de paramètres sur des instances spécifiques, par exemple, si le modèle contient un paramètre pour stage ayant une valeur deprod, vous pouvez remplacer la valeur de ce paramètre par ou. beta gamma

Les ressources connexes suivantes peuvent s'avérer utiles dans le cadre de l'utilisation de cette action.

  • Types de paramètres — Ce chapitre de référence du Guide de l'AWS CloudFormation utilisateur fournit des descriptions et des exemples supplémentaires pour les paramètres des CloudFormation modèles.

  • Meilleures pratiques : pour plus d'informations sur les meilleures pratiques en matière de déploiement de stack sets, consultez https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-bestpractices.html le Guide de AWS CloudFormation l'utilisateur.

  • AWS CloudFormation Référence d'API  : vous pouvez faire référence aux CloudFormation actions suivantes dans la référence d'AWS CloudFormation API pour plus d'informations sur les paramètres utilisés dans les opérations d'ensemble de piles :

    • L'CreateStackSetaction crée un ensemble de piles.

    • L'UpdateStackSetaction met à jour l'ensemble de piles et les instances de pile associées dans les comptes et les régions spécifiés. Même si l'opération d'ensemble de piles créée par la mise à jour de l'ensemble de piles échoue (complètement ou partiellement, en dessous ou au-dessus d'une tolérance de défaillance spécifiée), l'ensemble de piles est mis à jour avec ces modifications. Les CreateStackInstances appels suivants sur l'ensemble de piles spécifié utilisent le jeu de piles mis à jour.

    • L'CreateStackInstancesaction crée une instance de pile pour toutes les régions spécifiées au sein de tous les comptes spécifiés sur un modèle d'autorisation autogéré, ou dans toutes les cibles de déploiement spécifiées sur un modèle d'autorisation géré par les services. Vous pouvez modifier les paramètres des instances créées par cette action. Si les instances existent déjà, CreateStackInstances appels UpdateStackInstances avec les mêmes paramètres d'entrée. Lorsque vous utilisez cette action pour créer des instances, cela ne modifie pas le statut des autres instances de pile.

    • L'UpdateStackInstancesaction met à jour les instances de pile avec la pile définie pour toutes les régions spécifiées dans tous les comptes spécifiés sur un modèle d'autorisation autogéré, ou dans toutes les cibles de déploiement spécifiées sur un modèle d'autorisation géré par les services. Vous pouvez modifier les paramètres des instances mises à jour par cette action. Lorsque vous utilisez cette action pour mettre à jour un sous-ensemble d'instances, cela ne modifie pas le statut des autres instances de pile.

    • L'DescribeStackSetOperationaction renvoie la description de l'opération d'ensemble de piles spécifiée.

    • L'DescribeStackSetaction renvoie la description de l'ensemble de piles spécifié.