AWS CloudFormation exemples utilisant des outils pour PowerShell - Exemples de code de l'AWS SDK

D'autres AWS SDK exemples sont disponibles dans le GitHub dépôt AWS Doc SDK Examples.

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.

AWS CloudFormation exemples utilisant des outils pour PowerShell

Les exemples de code suivants vous montrent comment effectuer des actions et implémenter des scénarios courants à l'aide du AWS Tools for PowerShell with AWS CloudFormation.

Les actions sont des extraits de code de programmes plus larges et doivent être exécutées dans leur contexte. Les actions vous indiquent comment appeler des fonctions de service individuelles, mais vous pouvez les visualiser dans leur contexte dans les scénarios correspondants.

Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la façon de configurer et d'exécuter le code en contexte.

Rubriques

Actions

L'exemple de code suivant montre comment utiliserGet-CFNStack.

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"
  • Pour API plus de détails, consultez la section DescribeStacksRéférence des AWS Tools for PowerShell applets de commande.

L'exemple de code suivant montre comment utiliserGet-CFNStackEvent.

Outils pour PowerShell

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

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

L'exemple de code suivant montre comment utiliserGet-CFNStackResource.

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.

L'exemple de code suivant montre comment utiliserGet-CFNStackResourceList.

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.

L'exemple de code suivant montre comment utiliserGet-CFNStackResourceSummary.

Outils pour PowerShell

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

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

L'exemple de code suivant montre comment utiliserGet-CFNStackSummary.

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")
  • Pour API plus de détails, consultez la section ListStacksRéférence des AWS Tools for PowerShell applets de commande.

L'exemple de code suivant montre comment utiliserGet-CFNTemplate.

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.

L'exemple de code suivant montre comment utiliserMeasure-CFNTemplateCost.

Outils pour PowerShell

Exemple 1 : renvoie une calculatrice mensuelle AWS simple URL avec une chaîne de requête qui décrit les ressources nécessaires pour exécuter le modèle. Le modèle est obtenu à partir de l'Amazon S3 spécifié URL et le paramètre de personnalisation unique est appliqué. Le paramètre peut également être spécifié en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».

Measure-CFNTemplateCost -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Region us-west-1 ` -Parameter @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" }

Exemple 2 : renvoie une calculatrice mensuelle AWS simple URL avec une chaîne de requête qui décrit les ressources nécessaires pour exécuter le modèle. Le modèle est analysé à partir du contenu fourni et des paramètres de personnalisation appliqués (cet exemple suppose que le contenu du modèle aurait déclaré deux paramètres, « KeyName » et « InstanceType »). Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».

Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" },` @{ ParameterKey="InstanceType"; ParameterValue="m1.large" })

Exemple 3 : Utilise New-Object pour créer l'ensemble des paramètres du modèle et renvoie un calculateur mensuel AWS simple URL avec une chaîne de requête qui décrit les ressources requises pour exécuter le modèle. Le modèle est analysé à partir du contenu fourni, avec des paramètres de personnalisation (cet exemple suppose que le contenu du modèle aurait déclaré deux paramètres, « KeyName » et « InstanceType »).

$p1 = New-Object -Type Amazon.CloudFormation.Model.Parameter $p1.ParameterKey = "KeyName" $p1.ParameterValue = "myKeyPairName" $p2 = New-Object -Type Amazon.CloudFormation.Model.Parameter $p2.ParameterKey = "InstanceType" $p2.ParameterValue = "m1.large" Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" -Parameter @( $p1, $p2 )
  • Pour API plus de détails, consultez la section EstimateTemplateCostRéférence des AWS Tools for PowerShell applets de commande.

L'exemple de code suivant montre comment utiliserNew-CFNStack.

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/amzn-s3-demo-bucket/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/amzn-s3-demo-bucket/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.

L'exemple de code suivant montre comment utiliserRemove-CFNStack.

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.

L'exemple de code suivant montre comment utiliserResume-CFNUpdateRollback.

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 passera à 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.

L'exemple de code suivant montre comment utiliserStop-CFNUpdateStack.

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.

L'exemple de code suivant montre comment utiliserTest-CFNStack.

Outils pour PowerShell

Exemple 1 : teste si la pile a atteint l'un des états UPDATE _ ROLLBACK _COMPLETE, CREATE _COMPLETE, ROLLBACK _ COMPLETE ou UPDATE _COMPLETE.

Test-CFNStack -StackName MyStack

Sortie :

False

Exemple 2 : teste si la pile a atteint le statut UPDATE _ COMPLETE ou UPDATE _ ROLLBACK _COMPLETE.

Test-CFNStack -StackName MyStack -Status UPDATE_COMPLETE,UPDATE_ROLLBACK_COMPLETE

Sortie :

True
  • Pour API plus de détails, consultez la section Test- CFNStack in AWS Tools for PowerShell Cmdlet Reference.

L'exemple de code suivant montre comment utiliserTest-CFNTemplate.

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/amzn-s3-demo-bucket/templatefile.template
  • Pour API plus de détails, consultez la section ValidateTemplateRéférence des AWS Tools for PowerShell applets de commande.

L'exemple de code suivant montre comment utiliserUpdate-CFNStack.

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/amzn-s3-demo-bucket/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/amzn-s3-demo-bucket/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.

L'exemple de code suivant montre comment utiliserWait-CFNStack.

Outils pour PowerShell

Exemple 1 : teste si la pile a atteint l'un des états UPDATE _ ROLLBACK _COMPLETE, CREATE _COMPLETE, ROLLBACK _ COMPLETE ou UPDATE _COMPLETE. Si la pile n'est pas dans l'un des états, la commande est mise en veille pendant deux secondes avant de tester à nouveau l'état. Ceci est répété jusqu'à ce que la pile atteigne l'un des états demandés ou que le délai d'expiration par défaut de 60 secondes s'écoule. Si le délai d'expiration est dépassé, une exception est déclenchée. Si la pile atteint l'un des états demandés dans le délai imparti, elle est renvoyée dans le pipeline.

$stack = Wait-CFNStack -StackName MyStack

Exemple 2 : Cet exemple attend au total 5 minutes (300 secondes) pour que la pile atteigne l'un des états spécifiés. Dans cet exemple, l'état est atteint avant le délai d'expiration et l'objet de la pile est donc renvoyé dans le pipeline.

Wait-CFNStack -StackName MyStack -Timeout 300 -Status CREATE_COMPLETE,ROLLBACK_COMPLETE

Sortie :

Capabilities : {CAPABILITY_IAM} ChangeSetId : CreationTime : 6/1/2017 9:29:33 AM Description : AWS CloudFormation Sample Template ec2_instance_with_instance_profile: Create an EC2 instance with an associated instance profile. **WARNING** This template creates one or more Amazon EC2 instances and an Amazon SQS queue. You will be billed for the AWS resources used if you create a stack from this template. DisableRollback : False LastUpdatedTime : 1/1/0001 12:00:00 AM NotificationARNs : {} Outputs : {} Parameters : {} RoleARN : StackId : arn:aws:cloudformation:us-west-2:123456789012:stack/MyStack/7ea87b50-46e7-11e7-9c9b-503a90a9c4d1 StackName : MyStack StackStatus : CREATE_COMPLETE StackStatusReason : Tags : {} TimeoutInMinutes : 0

Exemple 3 : Cet exemple montre le résultat d'erreur lorsqu'une pile n'atteint pas l'un des états demandés dans le délai imparti (dans ce cas, le délai par défaut de 60 secondes).

Wait-CFNStack -StackName MyStack -Status CREATE_COMPLETE,ROLLBACK_COMPLETE

Sortie :

Wait-CFNStack : Timed out after 60 seconds waiting for CloudFormation stack MyStack in region us-west-2 to reach one of state(s): UPDATE_ROLLBACK_COMPLETE,CREATE_COMPLETE,ROLLBACK_COMPLETE,UPDATE_COMPLETE At line:1 char:1 + Wait-CFNStack -StackName MyStack -State CREATE_COMPLETE,ROLLBACK_COMPLETE + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (Amazon.PowerShe...tCFNStackCmdlet:WaitCFNStackCmdlet) [Wait-CFNStack], InvalidOperationException + FullyQualifiedErrorId : InvalidOperationException,Amazon.PowerShell.Cmdlets.CFN.WaitCFNStackCmdlet
  • Pour API plus de détails, consultez la section Référence des AWS Tools for PowerShell applets de commande Wait- CFNStack in.