Créez, mettez à jour et supprimez des CloudFormation piles à l'aide des AWS CLI PowerShell - AWS CloudFormation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créez, mettez à jour et supprimez des CloudFormation piles à l'aide des AWS CLI PowerShell

Les exemples de ligne de commande suivants montrent comment effectuer des CloudFormation actions individuelles avec le AWS CLI et PowerShell. Ces exemples incluent uniquement les actions les plus couramment utilisées. Pour une liste complète, voir la AWS CloudFormation APIréférence.

Annuler la mise à jour d'une pile

Utilisez la cancel-update-stack commande pour annuler une mise à jour de la pile. Pour de plus amples informations, veuillez consulter Annuler la mise à jour d'une pile.

CLI
AWS CLI

Pour annuler une mise à jour de la pile en cours

La cancel-update-stack commande suivante annule une mise à jour de la pile sur la myteststack pile :

aws cloudformation cancel-update-stack --stack-name myteststack
  • Pour API plus de détails, voir CancelUpdateStackla section Référence des AWS CLI commandes.

PowerShell
Outils pour PowerShell

Exemple 1 : annule une mise à jour sur la pile spécifiée.

Stop-CFNUpdateStack -StackName "myStack"
  • Pour API plus de détails, consultez la section CancelUpdateStackRéférence des AWS Tools for PowerShell applets de commande.

Poursuite de la restauration d'une mise à jour

Utilisez la continue-update-rollback commande pour continuer à annuler une mise à jour. Pour de plus amples informations, veuillez consulter Poursuite de la restauration d'une mise à jour.

CLI
AWS CLI

Pour réessayer d'annuler une mise à jour

L'continue-update-rollbackexemple suivant reprend une opération de restauration suite à un échec antérieur de la mise à jour de la pile.

aws cloudformation continue-update-rollback \ --stack-name my-stack

Cette commande ne produit aucun résultat.

PowerShell
Outils pour PowerShell

Exemple 1 : Poursuit l'annulation de la pile nommée, qui doit être dans l'état « UPDATE _ ROLLBACK _ FAILED ». Si la restauration continue est réussie, la pile entrera dans l'état « UPDATE _ ROLLBACK _ COMPLETE ».

Resume-CFNUpdateRollback -StackName "myStack"
  • Pour API plus de détails, consultez la section ContinueUpdateRollbackRéférence des AWS Tools for PowerShell applets de commande.

Création d'une pile

Utilisez la create-stack commande pour créer une pile. Vous devez fournir le nom de la pile, l'emplacement d'un modèle valide et tous les paramètres d'entrée requis. Les noms des clés des paramètres distinguent les majuscules et minuscules. Si vous tapez mal le nom d'une clé de paramètre, CloudFormation cela ne crée pas la pile et indique que le modèle ne contient pas ce paramètre.

Par défaut, la describe-stacks commande renvoie les valeurs des paramètres. Pour éviter que des valeurs de paramètres sensibles telles que des mots de passe ne soient renvoyées, incluez une NoEcho propriété définie sur TRUE dans votre CloudFormation modèle.

Important

L'utilisation de l'attribut NoEcho ne masque aucune information stockée dans les lieux suivants :

  • La section des Metadata modèles. CloudFormation ne transforme, ne modifie ni n'expédie aucune information que vous incluez dans Metadata cette section. Pour de plus amples informations, veuillez consulter Metadata.

  • La section de modèle Outputs Pour de plus amples informations, veuillez consulter Outputs.

  • L’attribut Metadata d'une définition de ressource. Pour de plus amples informations, veuillez consulter Attribut Metadata.

Nous vous recommandons vivement de ne pas utiliser ces mécanismes pour inclure des informations sensibles, telles que des mots de passe ou des secrets.

Important

Plutôt que d'intégrer des informations sensibles directement dans vos CloudFormation modèles, nous vous recommandons d'utiliser des paramètres dynamiques dans le modèle de pile pour référencer les informations sensibles stockées et gérées à l'extérieur CloudFormation, par exemple dans le AWS Systems Manager Parameter Store ou AWS Secrets Manager.

Pour plus d'informations, consultez les N'incorporez pas d'informations d'identification dans vos modèles meilleures pratiques.

Les exemples suivants montrent comment créer une nouvelle pile avec le nom, le modèle et les paramètres d'entrée spécifiés.

CLI
AWS CLI

Pour créer une AWS CloudFormation pile

La create-stacks commande suivante crée une pile portant le nom myteststack à l'aide du sampletemplate.json modèle :

aws cloudformation create-stack --stack-name myteststack --template-body file://sampletemplate.json --parameters ParameterKey=KeyPairName,ParameterValue=TestKey ParameterKey=SubnetIDs,ParameterValue=SubnetID1\\,SubnetID2

Sortie :

{ "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }

Pour plus d'informations, consultez Stacks dans le guide de l'AWS CloudFormation utilisateur.

  • Pour API plus de détails, voir CreateStackla section Référence des AWS CLI commandes.

PowerShell
Outils pour PowerShell

Exemple 1 : crée une nouvelle pile portant le nom spécifié. Le modèle est analysé à partir du contenu fourni avec des paramètres de personnalisation (PK1« » et « PK2 » représentent les noms des paramètres déclarés dans le contenu du modèle, « PV1 » et « PV2 » représentent les valeurs de ces paramètres. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Si la création de la pile échoue, elle ne sera pas annulée.

New-CFNStack -StackName "myStack" ` -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" }) ` -DisableRollback $true

Exemple 2 : crée une nouvelle pile portant le nom spécifié. Le modèle est analysé à partir du contenu fourni avec des paramètres de personnalisation (PK1« » et « PK2 » représentent les noms des paramètres déclarés dans le contenu du modèle, « PV1 » et « PV2 » représentent les valeurs de ces paramètres. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Si la création de la pile échoue, elle sera annulée.

$p1 = New-Object -Type Amazon.CloudFormation.Model.Parameter $p1.ParameterKey = "PK1" $p1.ParameterValue = "PV1" $p2 = New-Object -Type Amazon.CloudFormation.Model.Parameter $p2.ParameterKey = "PK2" $p2.ParameterValue = "PV2" New-CFNStack -StackName "myStack" ` -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( $p1, $p2 ) ` -OnFailure "ROLLBACK"

Exemple 3 : Crée une nouvelle pile portant le nom spécifié. Le modèle est obtenu auprès d'Amazon S3 URL avec des paramètres de personnalisation (PK1« » représente le nom d'un paramètre déclaré dans le contenu du modèle, PV1 « » représente la valeur du paramètre. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Si la création de la pile échoue, elle sera annulée (comme si vous spécifiez - DisableRollback $false).

New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }

Exemple 4 : Crée une nouvelle pile portant le nom spécifié. Le modèle est obtenu auprès d'Amazon S3 URL avec des paramètres de personnalisation (PK1« » représente le nom d'un paramètre déclaré dans le contenu du modèle, PV1 « » représente la valeur du paramètre. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Si la création de la pile échoue, elle sera annulée (comme si vous spécifiez - DisableRollback $false). La notification spécifiée AENs recevra les événements publiés liés à la pile.

New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } ` -NotificationARN @( "arn1", "arn2" )
  • Pour API plus de détails, consultez la section CreateStackRéférence des AWS Tools for PowerShell applets de commande.

Vous pouvez également spécifier l' AWS Systems Manager emplacement d'un fichier modèle.

AWS CLI

La create-stack commande suivante crée une pile portant le nom myteststack en utilisant un AWS Systems Manager document comme modèleURL.

aws cloudformation create-stack --stack-name myteststack \ --template-url "ssm-doc://arn:aws:ssm:us-east-1:123456789012:document/documentName"

Sortie :

{ "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }

Créez une pile qui inclut des transformations

Utilisez la deploy commande pour créer une pile qui inclut des transformations.

Pour créer une pile à partir d'un modèle incluant des transformations, vous devez utiliser un ensemble de modifications. Au lieu de créer un ensemble de modifications puis de le lancer, utilisez la deploy commande pour combiner ces étapes en une seule commande.

AWS CLI

La deploy commande suivante crée une pile avec le nom, le modèle et les paramètres d'entrée spécifiés.

aws cloudformation deploy --stack-name myteststack \ --template /path_to_template/my-template.json \ --parameter-overrides Key1=Value1 Key2=Value2

Supprimer une pile

Utilisez la delete-stack commande pour supprimer une pile. Pour de plus amples informations, veuillez consulter Supprimer une pile de la CloudFormation console.

CLI
AWS CLI

Pour supprimer une pile

L'delete-stackexemple suivant supprime la pile spécifiée.

aws cloudformation delete-stack \ --stack-name my-stack

Cette commande ne produit aucun résultat.

  • Pour API plus de détails, voir DeleteStackla section Référence des AWS CLI commandes.

PowerShell
Outils pour PowerShell

Exemple 1 : Supprime la pile spécifiée.

Remove-CFNStack -StackName "myStack"
  • Pour API plus de détails, consultez la section DeleteStackRéférence des AWS Tools for PowerShell applets de commande.

Si la suppression échoue et renvoie un DELETE_FAILED état, vous pouvez choisir de supprimer la pile par la force à l'aide de l'--deletion-modeoption. Les valeurs suivantes peuvent être utilisées avec deletion-mode :

  • STANDARD: Supprime normalement la pile. Il s'agit du mode de suppression par défaut.

  • FORCE_DELETE_STACK: Supprime la pile et ignore toutes les ressources dont la suppression échoue.

AWS CLI

La force de delete-stack commande suivante supprime la myteststack pile en utilisant la FORCE_DELETE_STACK valeur associée au deletion-mode paramètre :

aws cloudformation delete-stack --stack-name myteststack \ --deletion-mode FORCE_DELETE_STACK

Cette commande ne produit aucun résultat.

Après utilisationFORCE_DELETE_STACK, vous pouvez utiliser la list-stack-resources commande pour répertorier les ressources qui ont été ignorées lors du processus de suppression de la pile. Les ressources conservées afficheront le SKIPPED statut DELETE _. Pour de plus amples informations, veuillez consulter Répertorier les ressources.

Décrire les événements de la pile

Utilisez la describe-stack-events commande pour décrire les événements de la pile. Pour de plus amples informations, veuillez consulter Surveillez la progression de la pile.

CLI
AWS CLI

Pour décrire les événements de la pile

L'describe-stack-eventsexemple suivant affiche les 2 événements les plus récents pour la pile spécifiée.

aws cloudformation describe-stack-events \ --stack-name my-stack \ --max-items 2 { "StackEvents": [ { "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "EventId": "4e1516d0-e4d6-xmpl-b94f-0a51958a168c", "StackName": "my-stack", "LogicalResourceId": "my-stack", "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "ResourceType": "AWS::CloudFormation::Stack", "Timestamp": "2019-10-02T05:34:29.556Z", "ResourceStatus": "UPDATE_COMPLETE" }, { "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "EventId": "4dd3c810-e4d6-xmpl-bade-0aaf8b31ab7a", "StackName": "my-stack", "LogicalResourceId": "my-stack", "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "ResourceType": "AWS::CloudFormation::Stack", "Timestamp": "2019-10-02T05:34:29.127Z", "ResourceStatus": "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS" } ], "NextToken": "eyJOZXh0VG9XMPLiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ==" }
  • Pour API plus de détails, voir DescribeStackEventsla section Référence des AWS CLI commandes.

PowerShell
Outils pour PowerShell

Exemple 1 : renvoie tous les événements liés à la pile pour la pile spécifiée.

Get-CFNStackEvent -StackName "myStack"

Exemple 2 : renvoie tous les événements liés à la pile pour la pile spécifiée à l'aide d'une pagination manuelle à partir du jeton spécifié. Le jeton de départ pour la page suivante est récupéré après chaque appel avec $null indiquant qu'il ne reste plus aucun événement à récupérer.

$nextToken = $null do { Get-CFNStack -StackName "myStack" -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)
  • Pour API plus de détails, consultez la section DescribeStackEventsRéférence des AWS Tools for PowerShell applets de commande.

Décrire une ressource de pile

CLI
AWS CLI

Pour obtenir des informations sur une ressource de pile

L'describe-stack-resourceexemple suivant affiche les détails de la ressource nommée MyFunction dans la pile spécifiée.

aws cloudformation describe-stack-resource \ --stack-name MyStack \ --logical-resource-id MyFunction

Sortie :

{ "StackResourceDetail": { "StackName": "MyStack", "StackId": "arn:aws:cloudformation:us-east-2:123456789012:stack/MyStack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "MyFunction", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "Metadata": "{}", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } }
PowerShell
Outils pour PowerShell

Exemple 1 : renvoie la description d'une ressource identifiée dans le modèle associé à la pile spécifiée par l'ID logique yDBInstance « M ».

Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
  • Pour API plus de détails, consultez la section DescribeStackResourceRéférence des AWS Tools for PowerShell applets de commande.

Décrire les ressources de la pile

CLI
AWS CLI

Pour obtenir des informations sur une ressource de pile

L'describe-stack-resourcesexemple suivant affiche les détails des ressources de la pile spécifiée.

aws cloudformation describe-stack-resources \ --stack-name my-stack

Sortie :

{ "StackResources": [ { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "bucket", "PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf", "ResourceType": "AWS::S3::Bucket", "Timestamp": "2019-10-02T04:34:11.345Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "function", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "Timestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "functionRole", "PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E", "ResourceType": "AWS::IAM::Role", "Timestamp": "2019-10-02T04:34:06.350Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } ] }
PowerShell
Outils pour PowerShell

Exemple 1 : renvoie les descriptions de AWS ressources pour un maximum de 100 ressources associées à la pile spécifiée. Pour obtenir des informations détaillées sur toutes les ressources associées à une pile, utilisez le Get-CFNStackResourceSummary, qui prend également en charge la pagination manuelle des résultats.

Get-CFNStackResourceList -StackName "myStack"

Exemple 2 : renvoie la description de l'EC2instance Amazon identifiée dans le modèle associé à la pile spécifiée par l'ID logique « Ec2Instance ».

Get-CFNStackResourceList -StackName "myStack" -LogicalResourceId "Ec2Instance"

Exemple 3 : renvoie la description d'un maximum de 100 ressources associées à la pile contenant une EC2 instance Amazon identifiée par l'ID d'instance « i-123456 ». Pour obtenir des informations détaillées sur toutes les ressources associées à une pile, utilisez le Get-CFNStackResourceSummary, qui prend également en charge la pagination manuelle des résultats.

Get-CFNStackResourceList -PhysicalResourceId "i-123456"

Exemple 4 : renvoie la description de l'EC2instance Amazon identifiée par l'ID logique « Ec2Instance » dans le modèle d'une pile. La pile est identifiée à l'aide de l'ID de ressource physique d'une ressource qu'elle contient, dans ce cas également une EC2 instance Amazon avec l'ID d'instance « i-123456 ». Une ressource physique différente peut également être utilisée pour identifier la pile en fonction du contenu du modèle, par exemple un compartiment Amazon S3.

Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"
  • Pour API plus de détails, consultez la section DescribeStackResourcesRéférence des AWS Tools for PowerShell applets de commande.

Décrire les piles

CLI
AWS CLI

Pour décrire les AWS CloudFormation piles

La describe-stacks commande suivante affiche les informations récapitulatives relatives à la myteststack pile :

aws cloudformation describe-stacks --stack-name myteststack

Sortie :

{ "Stacks": [ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Tags": [], "Outputs": [ { "Description": "Name of S3 bucket to hold website content", "OutputKey": "BucketName", "OutputValue": "myteststack-s3bucket-jssofi1zie2w" } ], "StackStatusReason": null, "CreationTime": "2013-08-23T01:02:15.422Z", "Capabilities": [], "StackName": "myteststack", "StackStatus": "CREATE_COMPLETE", "DisableRollback": false } ] }

Pour plus d'informations, consultez Stacks dans le guide de l'AWS CloudFormation utilisateur.

  • Pour API plus de détails, voir DescribeStacksla section Référence des AWS CLI commandes.

Go
SDKpour Go V2
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

// StackOutputs defines a map of outputs from a specific stack. type StackOutputs map[string]string type CloudFormationActions struct { CfnClient *cloudformation.Client } // GetOutputs gets the outputs from a CloudFormation stack and puts them into a structured format. func (actor CloudFormationActions) GetOutputs(stackName string) StackOutputs { output, err := actor.CfnClient.DescribeStacks(context.TODO(), &cloudformation.DescribeStacksInput{ StackName: aws.String(stackName), }) if err != nil || len(output.Stacks) == 0 { log.Panicf("Couldn't find a CloudFormation stack named %v. Here's why: %v\n", stackName, err) } stackOutputs := StackOutputs{} for _, out := range output.Stacks[0].Outputs { stackOutputs[*out.OutputKey] = *out.OutputValue } return stackOutputs }
  • Pour API plus de détails, voir DescribeStacksla section AWS SDK for Go APIRéférence.

PowerShell
Outils pour PowerShell

Exemple 1 : renvoie une collection d'instances Stack décrivant toutes les piles de l'utilisateur.

Get-CFNStack

Exemple 2 : Renvoie une instance de Stack décrivant la pile spécifiée

Get-CFNStack -StackName "myStack"

Exemple 3 : renvoie une collection d'instances Stack décrivant toutes les piles de l'utilisateur à l'aide de la pagination manuelle. Le jeton de départ pour la page suivante est récupéré après chaque appel avec $null indiquant qu'il ne reste plus de détails à récupérer.

$nextToken = $null do { Get-CFNStack -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)
  • Pour API plus de détails, consultez la section DescribeStacksRéférence des AWS Tools for PowerShell applets de commande.

Obtenez un modèle

CLI
AWS CLI

Pour afficher le corps du modèle d'une AWS CloudFormation pile

La get-template commande suivante montre le modèle de la myteststack pile :

aws cloudformation get-template --stack-name myteststack

Sortie :

{ "TemplateBody": { "AWSTemplateFormatVersion": "2010-09-09", "Outputs": { "BucketName": { "Description": "Name of S3 bucket to hold website content", "Value": { "Ref": "S3Bucket" } } }, "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "PublicRead" } } } } }
  • Pour API plus de détails, voir GetTemplatela section Référence des AWS CLI commandes.

PowerShell
Outils pour PowerShell

Exemple 1 : renvoie le modèle associé à la pile spécifiée.

Get-CFNTemplate -StackName "myStack"
  • Pour API plus de détails, consultez la section GetTemplateRéférence des AWS Tools for PowerShell applets de commande.

Répertorier les ressources

CLI
AWS CLI

Pour répertorier les ressources d'une pile

La commande suivante affiche la liste des ressources de la pile spécifiée.

aws cloudformation list-stack-resources \ --stack-name my-stack

Sortie :

{ "StackResourceSummaries": [ { "LogicalResourceId": "bucket", "PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf", "ResourceType": "AWS::S3::Bucket", "LastUpdatedTimestamp": "2019-10-02T04:34:11.345Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "LogicalResourceId": "function", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "LogicalResourceId": "functionRole", "PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E", "ResourceType": "AWS::IAM::Role", "LastUpdatedTimestamp": "2019-10-02T04:34:06.350Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } ] }
  • Pour API plus de détails, voir ListStackResourcesla section Référence des AWS CLI commandes.

PowerShell
Outils pour PowerShell

Exemple 1 : renvoie les descriptions de toutes les ressources associées à la pile spécifiée.

Get-CFNStackResourceSummary -StackName "myStack"

Exemple 2 : renvoie les descriptions de toutes les ressources associées à la pile spécifiée à l'aide de la pagination manuelle des résultats. Le jeton de départ pour la page suivante est récupéré après chaque appel avec $null indiquant qu'il ne reste plus de détails à récupérer.

$nextToken = $null do { Get-CFNStackResourceSummary -StackName "myStack" -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)
  • Pour API plus de détails, consultez la section ListStackResourcesRéférence des AWS Tools for PowerShell applets de commande.

Piles de listes

Utilisez la list-stacks commande pour répertorier les piles. Pour répertorier uniquement les piles avec les codes d'état spécifiés, incluez l'--stack-status-filteroption. Vous pouvez spécifier un ou plusieurs codes d'état de pile pour --stack-status-filter cette option. Pour de plus amples informations, veuillez consulter Codes d'état de la pile.

CLI
AWS CLI

Pour répertorier les AWS CloudFormation piles

La list-stacks commande suivante affiche un résumé de toutes les piles dont le statut est : CREATE_COMPLETE

aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE

Sortie :

[ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "TemplateDescription": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "StackStatusReason": null, "CreationTime": "2013-08-26T03:27:10.190Z", "StackName": "myteststack", "StackStatus": "CREATE_COMPLETE" } ]
  • Pour API plus de détails, voir ListStacksla section Référence des AWS CLI commandes.

PowerShell
Outils pour PowerShell

Exemple 1 : renvoie des informations récapitulatives pour toutes les piles.

Get-CFNStackSummary

Exemple 2 : renvoie des informations récapitulatives pour toutes les piles en cours de création.

Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"

Exemple 3 : renvoie des informations récapitulatives pour toutes les piles en cours de création ou de mise à jour.

Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")

Exemple 4 : renvoie des informations récapitulatives pour toutes les piles en cours de création ou de mise à jour à l'aide de la pagination manuelle des résultats. Le jeton de départ pour la page suivante est récupéré après chaque appel avec $null indiquant qu'il ne reste plus de détails à récupérer.

$nextToken = $null do { Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS") -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)
  • Pour API plus de détails, consultez la section ListStacksRéférence des AWS Tools for PowerShell applets de commande.

Mettre à jour une pile

Utilisez la update-stack commande pour mettre à jour une pile. Pour de plus amples informations, veuillez consulter Mettre à jour les piles directement.

CLI
AWS CLI

Pour mettre à jour les AWS CloudFormation piles

La update-stack commande suivante met à jour le modèle et les paramètres d'entrée de la mystack pile :

aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,ParameterValue=SampleKeyPair ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,SampleSubnetID2

La update-stack commande suivante met à jour uniquement la valeur du SubnetIDs paramètre de la mystack pile. Si vous ne spécifiez aucune valeur de paramètre, la valeur par défaut spécifiée dans le modèle est utilisée :

aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,UsePreviousValue=true ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,UpdatedSampleSubnetID2

La update-stack commande suivante ajoute deux sujets de notification de pile à la mystack pile :

aws cloudformation update-stack --stack-name mystack --use-previous-template --notification-arns "arn:aws:sns:use-east-1:123456789012:mytopic1" "arn:aws:sns:us-east-1:123456789012:mytopic2"

Pour plus d'informations, consultez la section AWS CloudFormation Stack Updates dans le guide de AWS CloudFormation l'utilisateur.

  • Pour API plus de détails, voir UpdateStackla section Référence des AWS CLI commandes.

PowerShell
Outils pour PowerShell

Exemple 1 : met à jour la pile « myStack » avec le modèle et les paramètres de personnalisation spécifiés. « PK1 » représente le nom d'un paramètre déclaré dans le modèle et « PV1 » représente sa valeur. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».

Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }

Exemple 2 : met à jour la pile « myStack » avec le modèle et les paramètres de personnalisation spécifiés. « PK1 » et « PK2 » représentent les noms des paramètres déclarés dans le modèle, « PV1 » et « PV2 » représentent les valeurs demandées. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».

Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )

Exemple 3 : met à jour la pile « myStack » avec le modèle et les paramètres de personnalisation spécifiés. « PK1 » représente le nom d'un paramètre déclaré dans le modèle et « PV2 » représente sa valeur. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».

Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }

Exemple 4 : met à jour la pile « myStack » avec le modèle spécifié, obtenu auprès d'Amazon S3, et les paramètres de personnalisation. « PK1 » et « PK2 » représentent les noms des paramètres déclarés dans le modèle, « PV1 » et « PV2 » représentent les valeurs demandées. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».

Update-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )

Exemple 5 : met à jour la pile myStack « », censée contenir des IAM ressources dans cet exemple, avec le modèle spécifié, obtenu auprès d'Amazon S3, et les paramètres de personnalisation. « PK1 » et « PK2 » représentent les noms des paramètres déclarés dans le modèle, « PV1 » et « PV2 » représentent les valeurs demandées. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Les piles contenant des IAM ressources nécessitent que vous spécifiiez le paramètre -Capabilities « CAPABILITY _ IAM », sinon la mise à jour échouera avec une erreur « InsufficientCapabilities ».

Update-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } ) ` -Capabilities "CAPABILITY_IAM"
  • Pour API plus de détails, consultez la section UpdateStackRéférence des AWS Tools for PowerShell applets de commande.

Validez votre modèle

Utilisez la validate-template commande pour vérifier la présence d'erreurs de syntaxe dans votre fichier modèle.

Lors de la validation, vérifiez d' CloudFormation abord si le modèle est valideJSON. Si ce n'est pas le cas, CloudFormation vérifie si le modèle est valideYAML. Si les deux vérifications échouent, CloudFormation renvoie une erreur de validation du modèle.

CLI
AWS CLI

Pour valider un AWS CloudFormation modèle

La validate-template commande suivante valide le sampletemplate.json modèle :

aws cloudformation validate-template --template-body file://sampletemplate.json

Sortie :

{ "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Parameters": [], "Capabilities": [] }

Pour plus d'informations, consultez la section Utilisation des AWS CloudFormation modèles dans le guide de AWS CloudFormation l'utilisateur.

  • Pour API plus de détails, voir ValidateTemplatela section Référence des AWS CLI commandes.

PowerShell
Outils pour PowerShell

Exemple 1 : valide le contenu du modèle spécifié. La sortie détaille les fonctionnalités, la description et les paramètres du modèle.

Test-CFNTemplate -TemplateBody "{TEMPLATE CONTENT HERE}"

Exemple 2 : valide le modèle spécifié accessible via un Amazon S3URL. La sortie détaille les fonctionnalités, la description et les paramètres du modèle.

Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template
  • Pour API plus de détails, consultez la section ValidateTemplateRéférence des AWS Tools for PowerShell applets de commande.

Voici un exemple de réponse qui produit une erreur de validation.

{ "ResponseMetadata": { "RequestId": "4ae33ec0-1988-11e3-818b-e15a6df955cd" }, "Errors": [ { "Message": "Template format error: JSON not well-formed. (line 11, column 8)", "Code": "ValidationError", "Type": "Sender" } ], "Capabilities": [], "Parameters": [] } A client error (ValidationError) occurred: Template format error: JSON not well-formed. (line 11, column 8)
Note

La commande validate-template est conçue pour vérifier uniquement la syntaxe de votre modèle. Elle ne garantit pas que les valeurs de propriété que vous avez spécifiées pour une ressource sont valides pour cette ressource. Elle ne détermine pas non plus le nombre de ressources qui existeront lorsque la pile sera créée.

Pour vérifier la validité opérationnelle, vous devez essayer de créer la pile. Il n'y a pas de bac à sable ni de zone de test pour les AWS CloudFormation piles. Les ressources que vous créez lors des tests vous sont donc facturées.

Exemple de disponibilité

Vous n’avez pas trouvé ce dont vous avez besoin ? Demandez un nouvel exemple en utilisant le lien Fournir des commentaires au bas de cette page.