Se ha publicado la versión 5 (V5) de Herramientas de AWS para PowerShell.
Para empezar a utilizar la nueva versión de Tools para PowerShell, consulte la Guía del usuario de Herramientas de AWS para PowerShell (V5), especialmente el tema sobre la Migración a la V5.
Ejemplos de CloudFormation con las Herramientas para PowerShell V4
En los siguientes ejemplos de código, se muestra cómo realizar acciones e implementar escenarios comunes usando Herramientas de AWS para PowerShell V4 con CloudFormation.
Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las distintas funciones de servicio, es posible ver las acciones en contexto en los escenarios relacionados.
En cada ejemplo se incluye un enlace al código de origen completo, con instrucciones de configuración y ejecución del código en el contexto.
Temas
Acciones
En el siguiente ejemplo de código, se muestra cómo utilizar Get-CFNStack.
- Herramientas para PowerShell V4
-
Ejemplo 1: Devolución de una colección de instancias de pila que describen todas las pilas del usuario.
Get-CFNStackEjemplo 2: Devolución de una instancia de pila que describe la pila especificada
Get-CFNStack -StackName "myStack"-
Para obtener información sobre la API, consulte DescribeStacks en Herramientas de AWS para PowerShell Cmdlet Reference (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Get-CFNStackEvent.
- Herramientas para PowerShell V4
-
Ejemplo 1: Devolución de todos los eventos relacionados con la pila especificada.
Get-CFNStackEvent -StackName "myStack"-
Para obtener información sobre la API, consulte DescribeStackEvents en Herramientas de AWS para PowerShell Cmdlet Reference (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Get-CFNStackResource.
- Herramientas para PowerShell V4
-
Ejemplo 1: Devolución de la descripción de un recurso identificado en la plantilla asociada a la pila especificada con la identificación lógica “MyDBInstance".
Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"-
Para obtener información sobre la API, consulte DescribeStackResource en Herramientas de AWS para PowerShell Cmdlet Reference (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Get-CFNStackResourceList.
- Herramientas para PowerShell V4
-
Ejemplo 1: Devolución de las descripciones de los recursos de AWS de hasta 100 recursos asociados a la pila especificada. Para obtener detalles de todos los recursos asociados a una pila, utilice Get-CFNStackResourceSummary, que también es compatible con la paginación manual de los resultados.
Get-CFNStackResourceList -StackName "myStack"Ejemplo 2: Devolución de la descripción de la instancia de Amazon EC2 identificada en la plantilla asociada a la pila especificada con la identificación lógica “Ec2Instance".
Get-CFNStackResourceList -StackName "myStack" -LogicalResourceId "Ec2Instance"Ejemplo 3: Devolución de la descripción de hasta 100 recursos asociados a la pila que contiene una instancia de Amazon EC2 identificada con la identificación de instancia “i-123456". Para obtener detalles de todos los recursos asociados a una pila, utilice Get-CFNStackResourceSummary, que también es compatible con la paginación manual de los resultados.
Get-CFNStackResourceList -PhysicalResourceId "i-123456"Ejemplo 4: Devolución de la descripción de la instancia de Amazon EC2 identificada con la identificación lógica “Ec2Instance” en la plantilla de una pila. La pila se identifica con la identificación de un recurso físico que también contiene una instancia de Amazon EC2 con la identificación de instancia “i-123456”. También se puede utilizar un recurso físico distinto para identificar la pila según el contenido de la plantilla; por ejemplo, un bucket de Amazon S.
Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"-
Para obtener información sobre la API, consulte DescribeStackResources en Herramientas de AWS para PowerShell Cmdlet Reference (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Get-CFNStackResourceSummary.
- Herramientas para PowerShell V4
-
Ejemplo 1: Devolución de las descripciones de todos los recursos asociados a la pila especificada.
Get-CFNStackResourceSummary -StackName "myStack"-
Para obtener información sobre la API, consulte ListStackResources en Herramientas de AWS para PowerShell Cmdlet Reference (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Get-CFNStackSummary.
- Herramientas para PowerShell V4
-
Ejemplo 1: Devolución de información de resumen de todas las pilas.
Get-CFNStackSummaryEjemplo 2: Devolución de información de resumen de todas las pilas que se crean actualmente.
Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"Ejemplo 3: Devolución de información de resumen de todas las pilas que se crean o se actualizan actualmente.
Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")-
Para obtener información sobre la API, consulte ListStacks en Herramientas de AWS para PowerShell Cmdlet Reference (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Get-CFNTemplate.
- Herramientas para PowerShell V4
-
Ejemplo 1: Devolución de la plantilla asociada a la pila especificada.
Get-CFNTemplate -StackName "myStack"-
Para obtener información sobre la API, consulte GetTemplate en Herramientas de AWS para PowerShell Cmdlet Reference (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Measure-CFNTemplateCost.
- Herramientas para PowerShell V4
-
Ejemplo 1: Devolución de la URL de la calculadora mensual de AWS con una cadena de consulta que describe los recursos necesarios para ejecutar la plantilla. La plantilla se obtiene de la URL de Amazon S3 especificada y del único parámetro de personalización aplicado. El parámetro también se puede especificar con “Key” y “Value” en lugar de “ParameterKey” y “ParameterValue'.
Measure-CFNTemplateCost -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Region us-west-1 ` -Parameter @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" }Ejemplo 2: Devolución de la URL de la calculadora mensual de AWS con una cadena de consulta que describe los recursos necesarios para ejecutar la plantilla. La plantilla se analiza a partir del contenido suministrado y de los parámetros de personalización aplicados. En este ejemplo, el contenido de la plantilla habría declarado dos parámetros, “KeyName” e “InstanceType”. Los parámetros de personalización también se pueden especificar con “Key” y “Value” en lugar de “ParameterKey” y “ParameterValue'.
Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" },` @{ ParameterKey="InstanceType"; ParameterValue="m1.large" })Ejemplo 3: Se utiliza New-Object para crear el conjunto de parámetros de plantilla y se devuelve la URL de la calculadora mensual de AWS con una cadena de consulta que describe los recursos necesarios para ejecutar la plantilla. La plantilla se analiza a partir del contenido suministrado con los parámetros de personalización. En este ejemplo, el contenido de la plantilla habría declarado dos parámetros, “KeyName” e “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 obtener información sobre la API, consulte EstimateTemplateCost en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar New-CFNStack.
- Herramientas para PowerShell V4
-
Ejemplo 1: Creación de una pila nueva con el nombre especificado. La plantilla se analiza a partir del contenido suministrado con los parámetros de personalización (“PK1” y “PK2” representan los nombres de los parámetros declarados en el contenido de la plantilla, mientras que “PV1” y “PV2” representan los valores de dichos parámetros). Los parámetros de personalización también se pueden especificar con “Key” y “Value” en lugar de “ParameterKey” y “ParameterValue”. Si la creación de la pila falla, no se revertirá.
New-CFNStack -StackName "myStack" ` -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" }) ` -DisableRollback $trueEjemplo 2: Creación de una pila nueva con el nombre especificado. La plantilla se analiza a partir del contenido suministrado con los parámetros de personalización (“PK1” y “PK2” representan los nombres de los parámetros declarados en el contenido de la plantilla, mientras que “PV1” y “PV2” representan los valores de dichos parámetros). Los parámetros de personalización también se pueden especificar con “Key” y “Value” en lugar de “ParameterKey” y “ParameterValue”. Si la creación de la pila falla, se revertirá.
$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"Ejemplo 3: Creación de una pila nueva con el nombre especificado. La plantilla obtenida de la URL de Amazon S3 con los parámetros de personalización (“PK1” representa el nombre del parámetro declarado en el contenido de la plantilla, mientras que “PV1” representa el valor del parámetro). Los parámetros de personalización también se pueden especificar con “Key” y “Value” en lugar de “ParameterKey” y “ParameterValue”. Si la creación de una pila falla, se revertirá (al igual que al especificar “-DisableRollback $false).
New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }Ejemplo 4: Creación de una pila nueva con el nombre especificado. La plantilla obtenida de la URL de Amazon S3 con los parámetros de personalización (“PK1” representa el nombre del parámetro declarado en el contenido de la plantilla, mientras que “PV1” representa el valor del parámetro). Los parámetros de personalización también se pueden especificar con “Key” y “Value” en lugar de “ParameterKey” y “ParameterValue”. Si la creación de una pila falla, se revertirá (al igual que al especificar “-DisableRollback $false”). Los AEN de notificación especificados recibirán los eventos publicados relacionados con la pila.
New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } ` -NotificationARN @( "arn1", "arn2" )-
Para obtener información sobre la API, consulte CreateStack en Herramientas de AWS para PowerShell Cmdlet Reference (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Remove-CFNStack.
- Herramientas para PowerShell V4
-
Ejemplo 1: Eliminación de la pila especificada.
Remove-CFNStack -StackName "myStack"-
Para obtener información sobre la API, consulte DeleteStack en Herramientas de AWS para PowerShell Cmdlet Reference (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Resume-CFNUpdateRollback.
- Herramientas para PowerShell V4
-
Ejemplo 1: Reanudación de la reversión de la pila seleccionada, la cual debería encontrarse en el estado “UPDATE_ROLLBACK_FAILED'. Si la reversión continua es exitosa, el estado de la pila será “UPDATE_ROLLBACK_COMPLETE'.
Resume-CFNUpdateRollback -StackName "myStack"-
Para obtener información sobre la API, consulte ContinueUpdateRollback en Herramientas de AWS para PowerShell Cmdlet Reference (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Stop-CFNUpdateStack.
- Herramientas para PowerShell V4
-
Ejemplo 1: Cancelación de una actualización en la pila especificada.
Stop-CFNUpdateStack -StackName "myStack"-
Para obtener información sobre la API, consulte CancelUpdateStack en Herramientas de AWS para PowerShell Cmdlet Reference (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Test-CFNStack.
- Herramientas para PowerShell V4
-
Ejemplo 1: Comprueba si la pila ha alcanzado uno de los estados UPDATE_ROLLBACK_COMPLETE, CREATE_COMPLETE, ROLLBACK_COMPLETE o UPDATE_COMPLETE.
Test-CFNStack -StackName MyStackSalida:
FalseEjemplo 2: Comprueba si la pila ha alcanzado el estado UPDATE_COMPLETE o UPDATE_ROLLBACK_COMPLETE.
Test-CFNStack -StackName MyStack -Status UPDATE_COMPLETE,UPDATE_ROLLBACK_COMPLETESalida:
True-
Para obtener información sobre la API, consulte Test-CFNStack en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Test-CFNTemplate.
- Herramientas para PowerShell V4
-
Ejemplo 1: Validación del contenido de la plantilla especificada. El resultado detalla las capacidades, la descripción y los parámetros de la plantilla.
Test-CFNTemplate -TemplateBody "{TEMPLATE CONTENT HERE}"Ejemplo 2: Validación de la plantilla especificada a la que se ha accedido con una URL de Amazon S. El resultado detalla las capacidades, la descripción y los parámetros de la plantilla.
Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template-
Para obtener información sobre la API, consulte ValidateTemplate en Herramientas de AWS para PowerShell Cmdlet Reference (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Update-CFNStack.
- Herramientas para PowerShell V4
-
Ejemplo 1: Actualización de la pila “myStack” con la plantilla y los parámetros de personalización especificados. “PK1” representa el nombre de un parámetro declarado en la plantilla, mientras que “PV1” representa su valor. Los parámetros de personalización también se pueden especificar con “Key” y “Value” en lugar de “ParameterKey” y “ParameterValue'.
Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }Ejemplo 2: Actualización de la pila “myStack” con la plantilla y los parámetros de personalización especificados. “PK1” y “PK2” representan los nombres de los parámetros declarados en la plantilla, mientras que “PV1” y “PV2” representan los valores solicitados. Los parámetros de personalización también se pueden especificar con “Key” y “Value” en lugar de “ParameterKey” y “ParameterValue'.
Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )Ejemplo 3: Actualización de la pila “myStack” con la plantilla y los parámetros de personalización especificados. “PK1” representa el nombre de un parámetro declarado en la plantilla, mientras que “PV2” representa su valor. Los parámetros de personalización también se pueden especificar con “Key” y “Value” en lugar de “ParameterKey” y “ParameterValue'.
Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }Ejemplo 4: Actualización de la pila “myStack” con la plantilla obtenida de Amazon S3 y los parámetros de personalización especificados. “PK1” y “PK2” representan los nombres de los parámetros declarados en la plantilla, mientras que “PV1” y “PV2” representan los valores solicitados. Los parámetros de personalización también se pueden especificar con “Key” y “Value” en lugar de “ParameterKey” y “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" } )Ejemplo 5: Actualización de la pila “myStack”, que en este ejemplo se supone que contiene recursos de IAM, con la plantilla obtenida de Amazon S3 y los parámetros de personalización específicos. “PK1” y “PK2” representan los nombres de los parámetros declarados en la plantilla, mientras que “PV1” y “PV2” representan los valores solicitados. Los parámetros de personalización también se pueden especificar con “Key” y “Value” en lugar de “ParameterKey” y “ParameterValue”. Las pilas que contienen recursos de IAM requieren que se especifique el parámetro “CAPABILITY_IAM” de -Capabilities; de lo contrario, la actualización fallará y mostrará el error “InsufentCapabilities.
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 obtener información sobre la API, consulte UpdateStack en Herramientas de AWS para PowerShell Cmdlet Reference (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Wait-CFNStack.
- Herramientas para PowerShell V4
-
Ejemplo 1: Comprueba si la pila ha alcanzado uno de los estados UPDATE_ROLLBACK_COMPLETE, CREATE_COMPLETE, ROLLBACK_COMPLETE o UPDATE_COMPLETE. Si la pila no tiene ninguno de los estados, el comando permanece inactivo durante dos segundos antes de volver a comprobar el estado. Esto se repite hasta que la pila alcance uno de los estados solicitados o hasta que transcurra el tiempo de espera predeterminado de 60 segundos. Si se supera el tiempo de espera, se generará una excepción. Si la pila alcanza uno de los estados solicitados dentro del período de tiempo de espera, se devuelve a la canalización.
$stack = Wait-CFNStack -StackName MyStackEjemplo 2: En este ejemplo se espera un total de 5 minutos (300 segundos) para que la pila alcance cualquiera de los estados especificados. En este ejemplo, el estado se alcanza antes del tiempo de espera y, por lo tanto, el objeto de pila se devuelve a la canalización.
Wait-CFNStack -StackName MyStack -Timeout 300 -Status CREATE_COMPLETE,ROLLBACK_COMPLETESalida:
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 : 0Ejemplo 3: En este ejemplo se muestra el error generado cuando una pila no alcanza uno de los estados solicitados dentro del período de tiempo de espera (en este caso, el período predeterminado de 60 segundos).
Wait-CFNStack -StackName MyStack -Status CREATE_COMPLETE,ROLLBACK_COMPLETESalida:
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 obtener información sobre la API, consulte Wait-CFNStack en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-