View a markdown version of this page

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

Sono disponibili altri esempi di AWS SDK 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à.

CloudFormation esempi di utilizzo di Tools for V5 PowerShell

I seguenti esempi di codice mostrano come eseguire azioni e implementare scenari comuni utilizzando AWS Strumenti per PowerShell V5 con. CloudFormation

Le azioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le azioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.

Ogni esempio include un link al codice sorgente completo, in cui vengono fornite le istruzioni su come configurare ed eseguire il codice nel contesto.

Argomenti

Azioni

L’esempio di codice seguente mostra come utilizzare Get-CFNStack.

Strumenti per PowerShell V5

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

Get-CFNStack

Esempio 2: restituisce un’istanza di stack che descrive lo stack specificato

Get-CFNStack -StackName "myStack"
  • Per i dettagli sull'API, vedere DescribeStacks in AWS Strumenti per PowerShell Cmdlet Reference (V5).

L’esempio di codice seguente mostra come utilizzare Get-CFNStackEvent.

Strumenti per V5 PowerShell

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

Get-CFNStackEvent -StackName "myStack"
  • Per i dettagli sull'API, vedere DescribeStackEvents in AWS Strumenti per PowerShell Cmdlet Reference (V5).

L’esempio di codice seguente mostra come utilizzare Get-CFNStackResource.

Strumenti per V5 PowerShell

Esempio 1: restituisce la descrizione di una risorsa identificata nel modello associato allo stack specificato dall’ID logico “MyDBInstance”.

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

L’esempio di codice seguente mostra come utilizzare Get-CFNStackResourceList.

Strumenti per V5 PowerShell

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

Get-CFNStackResourceList -StackName "myStack"

Esempio 2: restituisce la descrizione dell’istanza Amazon EC2 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’istanza Amazon EC2 identificata dall’ID di istanza “i-123456”. Per ottenere dettagli su tutte le risorse associate a uno stack, usa il Get-CFNStackResourceSummary, che supporta anche il paging manuale dei risultati.

Get-CFNStackResourceList -PhysicalResourceId "i-123456"

Esempio 4: restituisce la descrizione dell’istanza Amazon EC2 identificata dall’ID logico “Ec2Instance” nel modello di uno stack. Lo stack viene identificato utilizzando l’ID di una risorsa fisica in esso contenuta (in questo caso anche un’istanza Amazon EC2 con ID 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"

L’esempio di codice seguente mostra come utilizzare Get-CFNStackResourceSummary.

Strumenti per V5 PowerShell

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

Get-CFNStackResourceSummary -StackName "myStack"
  • Per i dettagli sull'API, vedere ListStackResources in AWS Strumenti per PowerShell Cmdlet Reference (V5).

L’esempio di codice seguente mostra come utilizzare Get-CFNStackSummary.

Strumenti per V5 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 i dettagli sull'API, vedere ListStacks in AWS Strumenti per PowerShell Cmdlet Reference (V5).

L’esempio di codice seguente mostra come utilizzare Get-CFNTemplate.

Strumenti per V5 PowerShell

Esempio 1: restituisce il modello associato allo stack specificato.

Get-CFNTemplate -StackName "myStack"
  • Per i dettagli sull'API, vedere GetTemplate in AWS Strumenti per PowerShell Cmdlet Reference (V5).

L’esempio di codice seguente mostra come utilizzare Measure-CFNTemplateCost.

Strumenti per V5 PowerShell

Esempio 1: restituisce l'URL di una calcolatrice mensile AWS semplice con una stringa di query che descrive le risorse necessarie per eseguire il modello. Il modello è ottenuto dall’URL Amazon S3 specificato e dal parametro di personalizzazione applicato. Il parametro può anche essere specificato utilizzando 'Key' e 'Value' invece di 'ParameterKey' e '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 l'URL di una calcolatrice mensile AWS semplice 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 (questo esempio presuppone che il contenuto del modello abbia dichiarato due parametri, '' e 'KeyName')InstanceType. I parametri di personalizzazione possono essere specificati anche utilizzando 'Key' e 'Value' invece di '' e 'ParameterKey'. ParameterValue

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

Esempio 3: viene utilizzato New-Object per creare il set di parametri del modello e restituisce un URL di AWS Simple Monthly Calculator con una stringa di query che descrive le risorse necessarie per eseguire il modello. Il modello viene analizzato 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 )

L’esempio di codice seguente mostra come utilizzare New-CFNStack.

Strumenti per V5 PowerShell

Esempio 1: crea un nuovo stack con il nome specificato. Il modello viene analizzato a partire dal contenuto fornito con parametri di personalizzazione (“PK1” e “PK2” rappresentano i nomi dei parametri dichiarati nel contenuto del modello, mentre “PV1” e “PV2” rappresentano i valori di tali parametri). I parametri di personalizzazione possono essere specificati anche utilizzando 'Key' e 'Value' invece di '' e ParameterKey ''. ParameterValue Se la creazione dello stack ha esito negativo, non verrà eseguito il rollback dello stack.

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 (“PK1” e “PK2” rappresentano i nomi dei parametri dichiarati nel contenuto del modello, mentre “PV1” e “PV2” rappresentano i valori di tali parametri). I parametri di personalizzazione possono essere specificati anche utilizzando 'Key' e 'Value' invece di '' e ParameterKey ''. ParameterValue Se la creazione dello stack ha esito negativo, verrà eseguito il rollback dello stack.

$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 dall'URL Amazon S3 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 anche essere specificati utilizzando «Key» e «Value» anziché «» e «». ParameterKey ParameterValue Se la creazione dello stack fallisce, verrà ripristinato (come se si specificasse - 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 dall'URL Amazon S3 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 anche essere specificati utilizzando «Key» e «Value» anziché «» e «». ParameterKey ParameterValue Se la creazione dello stack fallisce, verrà ripristinato (come se si specificasse - DisableRollback $false). La notifica specificata che i servizi di notifica degli eventi Amazon riceveranno in caso di 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 i dettagli sull'API, vedere CreateStack in AWS Strumenti per PowerShell Cmdlet Reference (V5).

L’esempio di codice seguente mostra come utilizzare Remove-CFNStack.

Strumenti per V5 PowerShell

Esempio 1: elimina lo stack specificato.

Remove-CFNStack -StackName "myStack"
  • Per i dettagli sull'API, vedere DeleteStack in AWS Strumenti per PowerShell Cmdlet Reference (V5).

L’esempio di codice seguente mostra come utilizzare Resume-CFNUpdateRollback.

Strumenti per V5 PowerShell

Esempio 1: continua il rollback dello stack denominato, il cui stato deve essere “UPDATE_ROLLBACK_FAILED”. Se il rollback continuato ha esito positivo, lo stack assumerà lo stato “UPDATE_ROLLBACK_COMPLETE”.

Resume-CFNUpdateRollback -StackName "myStack"

L’esempio di codice seguente mostra come utilizzare Stop-CFNUpdateStack.

Strumenti per V5 PowerShell

Esempio 1: annulla un aggiornamento nello stack specificato.

Stop-CFNUpdateStack -StackName "myStack"
  • Per i dettagli sull'API, vedere CancelUpdateStack in AWS Strumenti per PowerShell Cmdlet Reference (V5).

L’esempio di codice seguente mostra come utilizzare Test-CFNStack.

Strumenti per V5 PowerShell

Esempio 1: verifica se lo stack ha raggiunto uno degli stati seguenti: 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 UPDATE_COMPLETE o UPDATE_ROLLBACK_COMPLETE.

Test-CFNStack -StackName MyStack -Status UPDATE_COMPLETE,UPDATE_ROLLBACK_COMPLETE

Output:

True
  • Per i dettagli sull'API, vedere Test-CFNStack in AWS Strumenti per PowerShell Cmdlet Reference (V5).

L’esempio di codice seguente mostra come utilizzare Test-CFNTemplate.

Strumenti per V5 PowerShell

Esempio 1: convalida il contenuto del modello specificato. L’output riporta 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 un URL Amazon S3. L’output riporta 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 i dettagli sull'API, vedere ValidateTemplate in AWS Strumenti per PowerShell Cmdlet Reference (V5).

L’esempio di codice seguente mostra come utilizzare Update-CFNStack.

Strumenti per V5 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' invece di '' e ParameterKey ''. 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, mentre “PV1” e “PV2” ne rappresentano i valori richiesti. I parametri di personalizzazione possono essere specificati anche utilizzando «Chiave» e «Valore» 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 «Chiave» e «Valore» 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 (recuperato da Amazon S3) e i parametri di personalizzazione specificati. “PK1” e “PK2” rappresentano i nomi dei parametri dichiarati nel modello, mentre “PV1” e “PV2” ne rappresentano i valori richiesti. I parametri di personalizzazione possono essere specificati anche utilizzando «Chiave» e «Valore» 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 risorse IAM, con il modello (recuperato da Amazon S3) e i parametri di personalizzazione specificati. “PK1” e “PK2” rappresentano i nomi dei parametri dichiarati nel modello, mentre “PV1” e “PV2” ne rappresentano i valori richiesti. I parametri di personalizzazione possono essere specificati anche utilizzando «Chiave» e «Valore» anziché «ParameterKey» e «ParameterValue». Gli stack contenenti risorse IAM richiedono di specificare il parametro -Capabilities «CAPABILITY_IAM», altrimenti l'aggiornamento avrà esito negativo e verrà visualizzato 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 i dettagli sull'API, vedere UpdateStack in AWS Strumenti per PowerShell Cmdlet Reference (V5).

L’esempio di codice seguente mostra come utilizzare Wait-CFNStack.

Strumenti per V5 PowerShell

Esempio 1: verifica se lo stack ha raggiunto uno degli stati seguenti: UPDATE_ROLLBACK_COMPLETE, CREATE_COMPLETE, ROLLBACK_COMPLETE o UPDATE_COMPLETE. Se lo stack non è in uno di questi 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 i dettagli sull'API, vedere Wait-CFNStack in AWS Strumenti per PowerShell Cmdlet Reference (V5).