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.
Rubriques
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'est
Service 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,CloudFormationStackInstancesmet à 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 :
-
Créez un pipeline avec une action source (obligatoire) et l'
CloudFormationStackSetaction en tant qu'action de déploiement. Gérez votre pipeline. -
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ù seus-east-1trouve 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 -
Modifiez votre pipeline pour l'ajouter
CloudFormationStackInstancescomme 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 compteAccount-Aoù leseu-central-1régionsus-east-2et 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 -
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.
Rubriques
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=stringPour 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é
BucketNameavec la valeuramzn-s3-demo-source-bucket.ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucketL'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.txtL'exemple suivant montre le contenu du fichier pour
parameters.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 sur
AWSCloudFormationStackSetExecutionRole. 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
OrganizationsAutoDeploymentc'est spécifié, ne spécifiez pasDeploymentTargetsetRegions.Note
Si aucune entrée n'est fournie
OrganizationsAutoDeployment, 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 format
InputArtifactName::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.txtL'exemple suivant montre le contenu du fichier pour
accounts.txt.[ "111111222222" ]L'exemple suivant montre le contenu du fichier
accounts.txtlorsque 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 format
InputArtifactName::OrganizationalUnitIdsFileName.SourceArtifact::OU-IDs.txtL'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,Region2indiqué 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_MANAGEDd'autorisations et n'est pas utilisé pour le modèleSELF_MANAGEDd'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 sur
DELEGATED_ADMIN, assurez-vous que le rôle IAM du pipeline estorganizations:ListDelegatedAdministratorsautorisé. 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.
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.
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
Rubriques
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 format
InputArtifactName::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.txtL'exemple suivant montre le contenu du fichier pour
accounts.txt:[ "111111222222" ]L'exemple suivant montre le contenu du fichier
accounts.txtlorsque 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 format
InputArtifactName::OrganizationalUnitIdsFileName.SourceArtifact::OU-IDs.txtL'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=stringPour 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é
BucketNameavec la valeuramzn-s3-demo-source-bucket.ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucketL'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::ParameterOverridesFileName, comme illustré dans l'exemple suivant.SourceArtifact::parameter-overrides.txtL'exemple suivant montre le contenu du fichier pour
parameter-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_MANAGEDd'autorisations et n'est pas utilisé pour le modèleSELF_MANAGEDd'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 sur
DELEGATED_ADMIN, assurez-vous que le rôle IAM du pipeline estorganizations:ListDelegatedAdministratorsautorisé. 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.
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
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écifiez
true, 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
Consultez aussi
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é.
-