AWS CloudFormation exemplos usando ferramentas para PowerShell - AWS SDKExemplos de código

Há mais AWS SDK exemplos disponíveis no GitHub repositório AWS Doc SDK Examples.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS CloudFormation exemplos usando ferramentas para PowerShell

Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o AWS Tools for PowerShell with AWS CloudFormation.

Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar funções de serviço individuais, é possível ver as ações no contexto em seus cenários relacionados.

Cada exemplo inclui um link para o código-fonte completo, onde você pode encontrar instruções sobre como configurar e executar o código no contexto.

Tópicos

Ações

O código de exemplo a seguir mostra como usar Get-CFNStack.

Ferramentas para PowerShell

Exemplo 1: retorna um conjunto de instâncias de pilha descrevendo todas as pilhas do usuário.

Get-CFNStack

Exemplo 2: retorna uma instância de pilha descrevendo a pilha especificada

Get-CFNStack -StackName "myStack"
  • Para API obter detalhes, consulte DescribeStacksem Referência de AWS Tools for PowerShell cmdlet.

O código de exemplo a seguir mostra como usar Get-CFNStackEvent.

Ferramentas para PowerShell

Exemplo 1: retorna todos os eventos relacionados à pilha especificada.

Get-CFNStackEvent -StackName "myStack"
  • Para API obter detalhes, consulte DescribeStackEventsem Referência de AWS Tools for PowerShell cmdlet.

O código de exemplo a seguir mostra como usar Get-CFNStackResource.

Ferramentas para PowerShell

Exemplo 1: Retorna a descrição de um recurso identificado no modelo associado à pilha especificada pelo ID lógico yDBInstance “M”.

Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
  • Para API obter detalhes, consulte DescribeStackResourceem Referência de AWS Tools for PowerShell cmdlet.

O código de exemplo a seguir mostra como usar Get-CFNStackResourceList.

Ferramentas para PowerShell

Exemplo 1: retorna as descrições dos AWS recursos de até 100 recursos associados à pilha especificada. Para obter detalhes de todos os recursos associados a uma pilha, use o Get-CFNStackResourceSummary, que também oferece suporte à paginação manual dos resultados.

Get-CFNStackResourceList -StackName "myStack"

Exemplo 2: Retorna a descrição da EC2 instância Amazon identificada no modelo associado à pilha especificada pelo ID lógico “Ec2Instance”.

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

Exemplo 3: retorna a descrição de até 100 recursos associados à pilha que contém uma instância da Amazon identificada pelo ID de EC2 instância “i-123456". Para obter detalhes de todos os recursos associados a uma pilha, use o Get-CFNStackResourceSummary, que também oferece suporte à paginação manual dos resultados.

Get-CFNStackResourceList -PhysicalResourceId "i-123456"

Exemplo 4: Retorna a descrição da EC2 instância da Amazon identificada pelo ID lógico “Ec2Instance” no modelo de uma pilha. A pilha é identificada usando o ID do recurso físico de um recurso que ela contém; nesse caso, também uma instância da Amazon com o ID de EC2 instância “i-123456". Um outro recurso físico também poderia ser usado para identificar a pilha, dependendo do conteúdo do modelo, por exemplo, um bucket do Amazon S3.

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

O código de exemplo a seguir mostra como usar Get-CFNStackResourceSummary.

Ferramentas para PowerShell

Exemplo 1: retorna as descrições de todos os recursos associados à pilha especificada.

Get-CFNStackResourceSummary -StackName "myStack"
  • Para API obter detalhes, consulte ListStackResourcesem Referência de AWS Tools for PowerShell cmdlet.

O código de exemplo a seguir mostra como usar Get-CFNStackSummary.

Ferramentas para PowerShell

Exemplo 1: retorna informações resumidas de todas as pilhas.

Get-CFNStackSummary

Exemplo 2: retorna informações resumidas de todas as pilhas que estão sendo criadas no momento.

Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"

Exemplo 3: retorna informações resumidas de todas as pilhas que estão sendo criadas ou atualizadas no momento.

Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")
  • Para API obter detalhes, consulte ListStacksem Referência de AWS Tools for PowerShell cmdlet.

O código de exemplo a seguir mostra como usar Get-CFNTemplate.

Ferramentas para PowerShell

Exemplo 1: retorna o modelo associado à pilha especificada.

Get-CFNTemplate -StackName "myStack"
  • Para API obter detalhes, consulte GetTemplateem Referência de AWS Tools for PowerShell cmdlet.

O código de exemplo a seguir mostra como usar Measure-CFNTemplateCost.

Ferramentas para PowerShell

Exemplo 1: retorna uma calculadora mensal AWS simples URL com uma sequência de caracteres de consulta que descreve os recursos necessários para executar o modelo. O modelo é obtido do Amazon S3 especificado URL e o único parâmetro de personalização é aplicado. O parâmetro também pode ser especificado usando 'Chave' e 'Valor' em vez de '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" }

Exemplo 2: retorna uma calculadora mensal AWS simples URL com uma sequência de caracteres de consulta que descreve os recursos necessários para executar o modelo. O modelo é analisado a partir do conteúdo fornecido e os parâmetros de personalização aplicados (este exemplo pressupõe que o conteúdo do modelo teria declarado dois parâmetros, '' e 'KeyName')InstanceType. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'.

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

Exemplo 3: usa New-Object para criar o conjunto de parâmetros do modelo e retorna uma calculadora mensal AWS simples URL com uma string de consulta que descreve os recursos necessários para executar o modelo. O modelo é analisado a partir do conteúdo fornecido, com parâmetros de personalização (este exemplo pressupõe que o conteúdo do modelo teria declarado dois parâmetros, '' 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 )
  • Para API obter detalhes, consulte EstimateTemplateCostem Referência de AWS Tools for PowerShell cmdlet.

O código de exemplo a seguir mostra como usar New-CFNStack.

Ferramentas para PowerShell

Exemplo 1: cria uma nova pilha com o nome especificado. O modelo é analisado a partir do conteúdo fornecido com parâmetros de personalização ('PK1' e 'PK2' representam os nomes dos parâmetros declarados no conteúdo do modelo, 'PV1' e 'PV2' representam os valores desses parâmetros. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. Se houver falha na criação da pilha, ela não será revertida.

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

Exemplo 2: cria uma nova pilha com o nome especificado. O modelo é analisado a partir do conteúdo fornecido com parâmetros de personalização ('PK1' e 'PK2' representam os nomes dos parâmetros declarados no conteúdo do modelo, 'PV1' e 'PV2' representam os valores desses parâmetros. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. Se houver falha na criação da pilha, ela será revertida.

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

Exemplo 3: cria uma nova pilha com o nome especificado. O modelo é obtido do Amazon S3 URL com parâmetros de personalização ('PK1' representa o nome de um parâmetro declarado no conteúdo do modelo, 'PV1' representa o valor do parâmetro. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. Se a criação da pilha falhar, ela será revertida (o mesmo que especificar - DisableRollback $false).

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

Exemplo 4: cria uma nova pilha com o nome especificado. O modelo é obtido do Amazon S3 URL com parâmetros de personalização ('PK1' representa o nome de um parâmetro declarado no conteúdo do modelo, 'PV1' representa o valor do parâmetro. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. Se a criação da pilha falhar, ela será revertida (o mesmo que especificar - DisableRollback $false). A notificação especificada AENs receberá eventos publicados relacionados à pilha.

New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } ` -NotificationARN @( "arn1", "arn2" )
  • Para API obter detalhes, consulte CreateStackem Referência de AWS Tools for PowerShell cmdlet.

O código de exemplo a seguir mostra como usar Remove-CFNStack.

Ferramentas para PowerShell

Exemplo 1: exclui a pilha especificada.

Remove-CFNStack -StackName "myStack"
  • Para API obter detalhes, consulte DeleteStackem Referência de AWS Tools for PowerShell cmdlet.

O código de exemplo a seguir mostra como usar Resume-CFNUpdateRollback.

Ferramentas para PowerShell

Exemplo 1: continua a reversão da pilha nomeada, que deve estar no estado 'UPDATE_ _ROLLBACK'. FAILED Se a reversão contínua for bem-sucedida, a pilha entrará no estado 'UPDATE_ _ROLLBACK'. COMPLETE

Resume-CFNUpdateRollback -StackName "myStack"

O código de exemplo a seguir mostra como usar Stop-CFNUpdateStack.

Ferramentas para PowerShell

Exemplo 1: cancela uma atualização na pilha especificada.

Stop-CFNUpdateStack -StackName "myStack"
  • Para API obter detalhes, consulte CancelUpdateStackem Referência de AWS Tools for PowerShell cmdlet.

O código de exemplo a seguir mostra como usar Test-CFNStack.

Ferramentas para PowerShell

Exemplo 1: Testa se a pilha atingiu um dos estados UPDATE _ _COMPLETE, ROLLBACK _COMPLETE, CREATE ROLLBACK _ COMPLETE ou UPDATE _COMPLETE.

Test-CFNStack -StackName MyStack

Saída:

False

Exemplo 2: Testa se a pilha atingiu um status de UPDATE _ COMPLETE ou _ UPDATE ROLLBACK _COMPLETE.

Test-CFNStack -StackName MyStack -Status UPDATE_COMPLETE,UPDATE_ROLLBACK_COMPLETE

Saída:

True
  • Para API obter detalhes, consulte Test- CFNStack in AWS Tools for PowerShell Cmdlet Reference.

O código de exemplo a seguir mostra como usar Test-CFNTemplate.

Ferramentas para PowerShell

Exemplo 1: valida o conteúdo do modelo especificado. A saída detalha os recursos, a descrição e os parâmetros do modelo.

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

Exemplo 2: Valida o modelo especificado acessado por meio de um Amazon URL S3. A saída detalha os recursos, a descrição e os parâmetros do modelo.

Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template
  • Para API obter detalhes, consulte ValidateTemplateem Referência de AWS Tools for PowerShell cmdlet.

O código de exemplo a seguir mostra como usar Update-CFNStack.

Ferramentas para PowerShell

Exemplo 1: atualiza a pilha 'myStack' com o modelo e os parâmetros de personalização especificados. 'PK1' representa o nome de um parâmetro declarado no modelo e 'PV1' representa seu valor. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'.

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

Exemplo 2: atualiza a pilha 'myStack' com o modelo e os parâmetros de personalização especificados. 'PK1' e 'PK2' representam os nomes dos parâmetros declarados no modelo, 'PV1' e 'PV2' representam os valores solicitados. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'.

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

Exemplo 3: atualiza a pilha 'myStack' com o modelo e os parâmetros de personalização especificados. 'PK1' representa o nome de um parâmetro declarado no modelo e 'PV2' representa seu valor. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'.

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

Exemplo 4: atualiza a pilha 'myStack' com o modelo especificado, obtido do Amazon S3, e os parâmetros de personalização. 'PK1' e 'PK2' representam os nomes dos parâmetros declarados no modelo, 'PV1' e 'PV2' representam os valores solicitados. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de '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" } )

Exemplo 5: atualiza a pilha 'myStack', que neste exemplo se supõe que contenha IAM recursos, com o modelo especificado, obtido do Amazon S3, e parâmetros de personalização. 'PK1' e 'PK2' representam os nomes dos parâmetros declarados no modelo, 'PV1' e 'PV2' representam os valores solicitados. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. As pilhas contendo IAM recursos exigem que você especifique o parâmetro -Capabilities "CAPABILITY_IAM", caso contrário, a atualização falhará com um erro '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"
  • Para API obter detalhes, consulte UpdateStackem Referência de AWS Tools for PowerShell cmdlet.

O código de exemplo a seguir mostra como usar Wait-CFNStack.

Ferramentas para PowerShell

Exemplo 1: Testa se a pilha atingiu um dos estados UPDATE _ _COMPLETE, ROLLBACK _COMPLETE, CREATE ROLLBACK _ COMPLETE ou UPDATE _COMPLETE. Se a pilha não estiver em um dos estados, o comando dorme por dois segundos antes de testar o status novamente. Isso é repetido até que a pilha alcance um dos estados solicitados ou o período de tempo limite padrão de 60 segundos termine. Se o período de tempo limite for excedido, uma exceção será lançada. Se a pilha atingir um dos estados solicitados dentro do período de tempo limite, ela será retornada ao pipeline.

$stack = Wait-CFNStack -StackName MyStack

Exemplo 2: Este exemplo espera por um total de 5 minutos (300 segundos) para que a pilha alcance qualquer um dos estados especificados. Neste exemplo, o estado é atingido antes do tempo limite e, portanto, o objeto da pilha é retornado ao pipeline.

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

Saída:

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

Exemplo 3: Este exemplo mostra a saída de erro quando uma pilha não atinge um dos estados solicitados dentro do período de tempo limite (nesse caso, o período padrão de 60 segundos).

Wait-CFNStack -StackName MyStack -Status CREATE_COMPLETE,ROLLBACK_COMPLETE

Saída:

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
  • Para API obter detalhes, consulte Wait- CFNStack in AWS Tools for PowerShell Cmdlet Reference.