AWS CloudFormation esempi di utilizzo di Tools for PowerShell - Esempi di codice dell'AWS SDK

Ci sono altri AWS SDK esempi disponibili nel repository AWS Doc SDK Examples GitHub .

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS CloudFormation esempi di utilizzo di Tools for PowerShell

I seguenti esempi di codice mostrano come eseguire azioni e implementare scenari comuni utilizzando AWS Tools for PowerShell with AWS CloudFormation.

Le operazioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Mentre le azioni mostrano come richiamare le singole funzioni di servizio, è possibile visualizzare le azioni nel loro contesto negli scenari correlati.

Ogni esempio include un collegamento al codice sorgente completo, in cui è possibile trovare istruzioni su come configurare ed eseguire il codice nel contesto.

Argomenti

Azioni

Il seguente esempio di codice mostra come utilizzareGet-CFNStack.

Strumenti per PowerShell

Esempio 1: restituisce una raccolta di istanze Stack che descrivono tutti gli stack dell'utente.

Get-CFNStack

Esempio 2: restituisce un'istanza Stack che descrive lo stack specificato

Get-CFNStack -StackName "myStack"
  • Per API i dettagli, vedere DescribeStacksin AWS Tools for PowerShell Cmdlet Reference.

Il seguente esempio di codice mostra come utilizzare. Get-CFNStackEvent

Strumenti per PowerShell

Esempio 1: restituisce tutti gli eventi relativi allo stack per lo stack specificato.

Get-CFNStackEvent -StackName "myStack"

Il seguente esempio di codice mostra come utilizzare. Get-CFNStackResource

Strumenti per PowerShell

Esempio 1: restituisce la descrizione di una risorsa identificata nel modello associato allo stack specificato dall'ID logico yDBInstance «M».

Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"

Il seguente esempio di codice mostra come utilizzare. Get-CFNStackResourceList

Strumenti per PowerShell

Esempio 1: restituisce le descrizioni AWS delle risorse per un massimo di 100 risorse associate allo stack specificato. Per ottenere i dettagli di tutte le risorse associate a uno stack, usa Get-CFNStackResourceSummary, che supporta anche la paginazione manuale dei risultati.

Get-CFNStackResourceList -StackName "myStack"

Esempio 2: restituisce la descrizione dell'EC2istanza Amazon identificata nel modello associato allo stack specificato dall'ID logico «Ec2Instance».

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

Esempio 3: restituisce la descrizione di un massimo di 100 risorse associate allo stack contenente un'EC2istanza Amazon identificata dall'ID di istanza «i-123456". Per ottenere i dettagli di tutte le risorse associate a uno stack, usa Get-CFNStackResourceSummary, che supporta anche la paginazione manuale dei risultati.

Get-CFNStackResourceList -PhysicalResourceId "i-123456"

Esempio 4: restituisce la descrizione dell'EC2istanza Amazon identificata dall'ID logico «Ec2Instance» nel modello per uno stack. Lo stack viene identificato utilizzando l'ID della risorsa fisica di una risorsa che contiene, in questo caso anche un'EC2istanza Amazon con ID di istanza «i-123456". È inoltre possibile utilizzare una risorsa fisica diversa per identificare lo stack in base al contenuto del modello, ad esempio un bucket Amazon S3.

Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"

Il seguente esempio di codice mostra come utilizzare. Get-CFNStackResourceSummary

Strumenti per PowerShell

Esempio 1: restituisce le descrizioni di tutte le risorse associate allo stack specificato.

Get-CFNStackResourceSummary -StackName "myStack"
  • Per API i dettagli, vedere ListStackResourcesin AWS Tools for PowerShell Cmdlet Reference.

Il seguente esempio di codice mostra come utilizzare. Get-CFNStackSummary

Strumenti per PowerShell

Esempio 1: restituisce informazioni di riepilogo per tutti gli stack.

Get-CFNStackSummary

Esempio 2: restituisce informazioni di riepilogo per tutti gli stack attualmente in fase di creazione.

Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"

Esempio 3: restituisce informazioni di riepilogo per tutti gli stack attualmente in fase di creazione o aggiornamento.

Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")
  • Per API i dettagli, vedere ListStacksin AWS Tools for PowerShell Cmdlet Reference.

Il seguente esempio di codice mostra come utilizzare. Get-CFNTemplate

Strumenti per PowerShell

Esempio 1: restituisce il modello associato allo stack specificato.

Get-CFNTemplate -StackName "myStack"
  • Per API i dettagli, vedere GetTemplatein AWS Tools for PowerShell Cmdlet Reference.

Il seguente esempio di codice mostra come utilizzare. Measure-CFNTemplateCost

Strumenti per PowerShell

Esempio 1: restituisce una calcolatrice mensile AWS semplice URL con una stringa di query che descrive le risorse necessarie per eseguire il modello. Il modello è ottenuto dall'Amazon S3 specificato URL e viene applicato il singolo parametro di personalizzazione. Il parametro può anche essere specificato utilizzando «Key» e «Value» anziché «» e ParameterKey «». ParameterValue

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

Esempio 2: restituisce una calcolatrice mensile AWS semplice URL con una stringa di query che descrive le risorse necessarie per eseguire il modello. Il modello viene analizzato in base al contenuto fornito e ai parametri di personalizzazione applicati (l'esempio presuppone che il contenuto del modello abbia dichiarato due parametri, '' e 'KeyName'). InstanceType I parametri di personalizzazione possono anche essere specificati utilizzando 'Key' e 'Value' anziché '' e 'ParameterKey'. ParameterValue

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

Esempio 3: utilizza New-Object per creare il set di parametri del modello e restituisce una calcolatrice mensile AWS semplice URL con una stringa di query che descrive le risorse necessarie per eseguire il modello. Il modello viene analizzato a partire dal contenuto fornito, con parametri di personalizzazione (questo esempio presuppone che il contenuto del modello abbia dichiarato due parametri, '' e ''). KeyName 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 )

Il seguente esempio di codice mostra come utilizzare. New-CFNStack

Strumenti per PowerShell

Esempio 1: crea un nuovo stack con il nome specificato. Il modello viene analizzato a partire dal contenuto fornito con parametri di personalizzazione ('' e PK1 'PK2' rappresentano i nomi dei parametri dichiarati nel contenuto del modello, '' e PV1 'PV2' rappresentano i valori di tali parametri. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack fallisce, non verrà ripristinato.

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

Esempio 2: crea un nuovo stack con il nome specificato. Il modello viene analizzato a partire dal contenuto fornito con parametri di personalizzazione ('' e PK1 'PK2' rappresentano i nomi dei parametri dichiarati nel contenuto del modello, '' e PV1 'PV2' rappresentano i valori di tali parametri. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack fallisce, verrà ripristinato.

$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"

Esempio 3: crea un nuovo stack con il nome specificato. Il modello è ottenuto da Amazon S3 URL con parametri di personalizzazione ('PK1' rappresenta il nome di un parametro dichiarato nel contenuto del modello, 'PV1' rappresenta il valore del parametro. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack fallisce, verrà ripristinato (come specificare - DisableRollback $false).

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

Esempio 4: crea un nuovo stack con il nome specificato. Il modello è ottenuto da Amazon S3 URL con parametri di personalizzazione ('PK1' rappresenta il nome di un parametro dichiarato nel contenuto del modello, 'PV1' rappresenta il valore del parametro. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack fallisce, verrà ripristinato (come specificare - DisableRollback $false). La notifica specificata AENs riceverà gli eventi pubblicati relativi allo stack.

New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } ` -NotificationARN @( "arn1", "arn2" )
  • Per API i dettagli, vedere CreateStackin AWS Tools for PowerShell Cmdlet Reference.

Il seguente esempio di codice mostra come utilizzare. Remove-CFNStack

Strumenti per PowerShell

Esempio 1: elimina lo stack specificato.

Remove-CFNStack -StackName "myStack"
  • Per API i dettagli, vedere DeleteStackin AWS Tools for PowerShell Cmdlet Reference.

Il seguente esempio di codice mostra come utilizzare. Resume-CFNUpdateRollback

Strumenti per PowerShell

Esempio 1: continua il rollback dello stack denominato, che dovrebbe trovarsi nello stato 'UPDATE_ ROLLBACK _FAILED'. Se il rollback continuato ha esito positivo, lo stack entrerà nello stato '_ _'. UPDATE ROLLBACK COMPLETE

Resume-CFNUpdateRollback -StackName "myStack"

Il seguente esempio di codice mostra come utilizzare. Stop-CFNUpdateStack

Strumenti per PowerShell

Esempio 1: annulla un aggiornamento sullo stack specificato.

Stop-CFNUpdateStack -StackName "myStack"
  • Per API i dettagli, vedere CancelUpdateStackin AWS Tools for PowerShell Cmdlet Reference.

Il seguente esempio di codice mostra come utilizzare. Test-CFNStack

Strumenti per PowerShell

Esempio 1: verifica se lo stack ha raggiunto uno degli stati UPDATE _ ROLLBACK _COMPLETE, CREATE _COMPLETE, ROLLBACK _ COMPLETE o UPDATE _COMPLETE.

Test-CFNStack -StackName MyStack

Output:

False

Esempio 2: verifica se lo stack ha raggiunto lo stato di UPDATE _ COMPLETE o _ UPDATE _ROLLBACK. COMPLETE

Test-CFNStack -StackName MyStack -Status UPDATE_COMPLETE,UPDATE_ROLLBACK_COMPLETE

Output:

True
  • Per API i dettagli, vedere Test- CFNStack in AWS Tools for PowerShell Cmdlet Reference.

Il seguente esempio di codice mostra come utilizzare. Test-CFNTemplate

Strumenti per PowerShell

Esempio 1: convalida il contenuto del modello specificato. L'output descrive in dettaglio le funzionalità, la descrizione e i parametri del modello.

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

Esempio 2: convalida il modello specificato a cui si accede tramite Amazon URL S3. L'output descrive in dettaglio le funzionalità, la descrizione e i parametri del modello.

Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template
  • Per API i dettagli, vedere ValidateTemplatein AWS Tools for PowerShell Cmdlet Reference.

Il seguente esempio di codice mostra come utilizzare. Update-CFNStack

Strumenti per PowerShell

Esempio 1: aggiorna lo stack 'myStack' con il modello e i parametri di personalizzazione specificati. 'PK1' rappresenta il nome di un parametro dichiarato nel modello e 'PV1' ne rappresenta il valore. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».

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

Esempio 2: aggiorna lo stack 'myStack' con il modello e i parametri di personalizzazione specificati. 'PK1' e 'PK2' rappresentano i nomi dei parametri dichiarati nel modello, '' e PV1 'PV2' rappresentano i valori richiesti. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».

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

Esempio 3: aggiorna lo stack 'myStack' con il modello e i parametri di personalizzazione specificati. 'PK1' rappresenta il nome di un parametro dichiarato nel modello e 'PV2' ne rappresenta il valore. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».

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

Esempio 4: aggiorna lo stack 'myStack' con il modello specificato, ottenuto da Amazon S3, e i parametri di personalizzazione. 'PK1' e 'PK2' rappresentano i nomi dei parametri dichiarati nel modello, '' e PV1 'PV2' rappresentano i valori richiesti. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «ParameterKey» e «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" } )

Esempio 5: aggiorna lo stack 'myStack', che in questo esempio si presume contenga IAM risorse, con il modello specificato, ottenuto da Amazon S3, e i parametri di personalizzazione. 'PK1' e 'PK2' rappresentano i nomi dei parametri dichiarati nel modello, '' e PV1 'PV2' rappresentano i valori richiesti. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue». Gli stack contenenti IAM risorse richiedono di specificare il parametro -Capabilities "CAPABILITY_IAM" altrimenti l'aggiornamento avrà esito negativo e verrà generato un errore ''. 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"
  • Per API i dettagli, vedere UpdateStackin AWS Tools for PowerShell Cmdlet Reference.

Il seguente esempio di codice mostra come utilizzare. Wait-CFNStack

Strumenti per PowerShell

Esempio 1: verifica se lo stack ha raggiunto uno degli stati UPDATE _ ROLLBACK _COMPLETE, CREATE _COMPLETE, ROLLBACK _ COMPLETE o UPDATE _COMPLETE. Se lo stack non è in uno degli stati, il comando rimane inattivo per due secondi prima di testare nuovamente lo stato. Questa operazione viene ripetuta fino a quando lo stack raggiunge uno degli stati richiesti o fino allo scadere del periodo di timeout predefinito di 60 secondi. Se il periodo di timeout viene superato, viene generata un'eccezione. Se lo stack raggiunge uno degli stati richiesti entro il periodo di timeout, viene restituito alla pipeline.

$stack = Wait-CFNStack -StackName MyStack

Esempio 2: Questo esempio attende un totale di 5 minuti (300 secondi) affinché lo stack raggiunga uno degli stati specificati. In questo esempio lo stato viene raggiunto prima del timeout e quindi l'oggetto stack viene restituito alla pipeline.

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

Output:

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

Esempio 3: Questo esempio mostra l'errore generato quando uno stack non raggiunge uno degli stati richiesti entro il periodo di timeout (in questo caso il periodo predefinito di 60 secondi).

Wait-CFNStack -StackName MyStack -Status CREATE_COMPLETE,ROLLBACK_COMPLETE

Output:

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
  • Per API i dettagli, vedere Wait- CFNStack in AWS Tools for PowerShell Cmdlet Reference.