

Hay más ejemplos de AWS SDK disponibles en el GitHub repositorio de [ejemplos de AWS Doc SDK](https://github.com/awsdocs/aws-doc-sdk-examples).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Ejemplos básicos de uso CloudFormation AWS SDKs
<a name="cloudformation_code_examples_basics"></a>

Los siguientes ejemplos de código muestran cómo utilizar los conceptos básicos de AWS CloudFormation with AWS SDKs. 

**Contents**
+ [Hola CloudFormation](cloudformation_example_cloudformation_Hello_section.md)
+ [Acciones](cloudformation_code_examples_actions.md)
  + [`CancelUpdateStack`](cloudformation_example_cloudformation_CancelUpdateStack_section.md)
  + [`ContinueUpdateRollback`](cloudformation_example_cloudformation_ContinueUpdateRollback_section.md)
  + [`CreateStack`](cloudformation_example_cloudformation_CreateStack_section.md)
  + [`DeleteStack`](cloudformation_example_cloudformation_DeleteStack_section.md)
  + [`DescribeStackEvents`](cloudformation_example_cloudformation_DescribeStackEvents_section.md)
  + [`DescribeStackResource`](cloudformation_example_cloudformation_DescribeStackResource_section.md)
  + [`DescribeStackResources`](cloudformation_example_cloudformation_DescribeStackResources_section.md)
  + [`DescribeStacks`](cloudformation_example_cloudformation_DescribeStacks_section.md)
  + [`EstimateTemplateCost`](cloudformation_example_cloudformation_EstimateTemplateCost_section.md)
  + [`GetTemplate`](cloudformation_example_cloudformation_GetTemplate_section.md)
  + [`ListStackResources`](cloudformation_example_cloudformation_ListStackResources_section.md)
  + [`ListStacks`](cloudformation_example_cloudformation_ListStacks_section.md)
  + [`UpdateStack`](cloudformation_example_cloudformation_UpdateStack_section.md)
  + [`ValidateTemplate`](cloudformation_example_cloudformation_ValidateTemplate_section.md)

# Hola CloudFormation
<a name="cloudformation_example_cloudformation_Hello_section"></a>

En el siguiente ejemplo de código se muestra cómo empezar a utilizar CloudFormation.

------
#### [ .NET ]

**SDK para .NET (v4)**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv4/CloudFormation#code-examples). 

```
using Amazon.CloudFormation;
using Amazon.CloudFormation.Model;
using Amazon.Runtime;

namespace CloudFormationActions;

public static class HelloCloudFormation
{
    public static IAmazonCloudFormation _amazonCloudFormation = null!;

    static async Task Main(string[] args)
    {
        // Create the CloudFormation client
        _amazonCloudFormation = new AmazonCloudFormationClient();
        Console.WriteLine($"\nIn Region: {_amazonCloudFormation.Config.RegionEndpoint}");

        // List the resources for each stack
        await ListResources();
    }

    /// <summary>
    /// Method to list stack resources and other information.
    /// </summary>
    /// <returns>True if successful.</returns>
    public static async Task<bool> ListResources()
    {
        try
        {
            Console.WriteLine("Getting CloudFormation stack information...");

            // Get all stacks using the stack paginator.
            var paginatorForDescribeStacks =
                _amazonCloudFormation.Paginators.DescribeStacks(
                    new DescribeStacksRequest());
            if (paginatorForDescribeStacks.Stacks != null)
            {
                await foreach (Stack stack in paginatorForDescribeStacks.Stacks)
                {
                    // Basic information for each stack
                    Console.WriteLine(
                        "\n------------------------------------------------");
                    Console.WriteLine($"\nStack: {stack.StackName}");
                    Console.WriteLine($"  Status: {stack.StackStatus.Value}");
                    Console.WriteLine($"  Created: {stack.CreationTime}");

                    // The tags of each stack (etc.)
                    if (stack.Tags != null && stack.Tags.Count > 0)
                    {
                        Console.WriteLine("  Tags:");
                        foreach (Tag tag in stack.Tags)
                            Console.WriteLine($"    {tag.Key}, {tag.Value}");
                    }

                    // The resources of each stack
                    DescribeStackResourcesResponse responseDescribeResources =
                        await _amazonCloudFormation.DescribeStackResourcesAsync(
                            new DescribeStackResourcesRequest
                            {
                                StackName = stack.StackName
                            });
                    if (responseDescribeResources.StackResources != null && responseDescribeResources.StackResources.Count > 0)
                    {
                        Console.WriteLine("  Resources:");
                        foreach (StackResource resource in responseDescribeResources
                                     .StackResources)
                            Console.WriteLine(
                                $"    {resource.LogicalResourceId}: {resource.ResourceStatus}");
                    }
                }
            }

            Console.WriteLine("\n------------------------------------------------");
            return true;
        }
        catch (AmazonCloudFormationException ex)
        {
            Console.WriteLine("Unable to get stack information:\n" + ex.Message);
            return false;
        }
        catch (AmazonServiceException ex)
        {
            if (ex.Message.Contains("Unable to get IAM security credentials"))
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("If you are usnig SSO, be sure to install" +
                                  " the AWSSDK.SSO and AWSSDK.SSOOIDC packages.");
            }
            else
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }

            return false;
        }
        catch (ArgumentNullException ex)
        {
            if (ex.Message.Contains("Options property cannot be empty: ClientName"))
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("If you are using SSO, have you logged in?");
            }
            else
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }

            return false;
        }
    }
```
+  Para obtener más información sobre la API, consulta [DescribeStackResources](https://docs.aws.amazon.com/goto/DotNetSDKV4/cloudformation-2010-05-15/DescribeStackResources)la *Referencia AWS SDK para .NET de la API*. 

------

# Acciones de CloudFormation uso AWS SDKs
<a name="cloudformation_code_examples_actions"></a>

Los siguientes ejemplos de código muestran cómo realizar CloudFormation acciones individuales con AWS SDKs. Cada ejemplo incluye un enlace a GitHub, donde puede encontrar instrucciones para configurar y ejecutar el código. 

Estos extractos se denominan CloudFormation API y son fragmentos de código de programas más grandes que deben ejecutarse en su contexto. Puede ver las acciones en contexto en [Escenarios de uso CloudFormation AWS SDKs](cloudformation_code_examples_scenarios.md). 

 Los siguientes ejemplos incluyen solo las acciones que se utilizan con mayor frecuencia. Para ver una lista completa, consulte la [Referencia de la API de AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/Welcome.html). 

**Topics**
+ [`CancelUpdateStack`](cloudformation_example_cloudformation_CancelUpdateStack_section.md)
+ [`ContinueUpdateRollback`](cloudformation_example_cloudformation_ContinueUpdateRollback_section.md)
+ [`CreateStack`](cloudformation_example_cloudformation_CreateStack_section.md)
+ [`DeleteStack`](cloudformation_example_cloudformation_DeleteStack_section.md)
+ [`DescribeStackEvents`](cloudformation_example_cloudformation_DescribeStackEvents_section.md)
+ [`DescribeStackResource`](cloudformation_example_cloudformation_DescribeStackResource_section.md)
+ [`DescribeStackResources`](cloudformation_example_cloudformation_DescribeStackResources_section.md)
+ [`DescribeStacks`](cloudformation_example_cloudformation_DescribeStacks_section.md)
+ [`EstimateTemplateCost`](cloudformation_example_cloudformation_EstimateTemplateCost_section.md)
+ [`GetTemplate`](cloudformation_example_cloudformation_GetTemplate_section.md)
+ [`ListStackResources`](cloudformation_example_cloudformation_ListStackResources_section.md)
+ [`ListStacks`](cloudformation_example_cloudformation_ListStacks_section.md)
+ [`UpdateStack`](cloudformation_example_cloudformation_UpdateStack_section.md)
+ [`ValidateTemplate`](cloudformation_example_cloudformation_ValidateTemplate_section.md)

# Utilizar `CancelUpdateStack` con una CLI
<a name="cloudformation_example_cloudformation_CancelUpdateStack_section"></a>

Los siguientes ejemplos de código muestran cómo utilizar `CancelUpdateStack`.

------
#### [ CLI ]

**AWS CLI**  
**Cancelación de una actualización de pila en progreso**  
El comando `cancel-update-stack` a continuación cancela una actualización de pila en la pila `myteststack`:  

```
aws cloudformation cancel-update-stack --stack-name myteststack
```
+  Para obtener más información sobre la API, consulte [CancelUpdateStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/cancel-update-stack.html)la *Referencia de AWS CLI comandos*. 

------
#### [ PowerShell ]

**Herramientas para la PowerShell versión 4**  
**Ejemplo 1: Cancelación de una actualización en la pila especificada.**  

```
Stop-CFNUpdateStack -StackName "myStack"
```
+  Para obtener más información sobre la API, consulte [CancelUpdateStack Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v4/reference)*Cmdlet Reference (V4)*. 

**Herramientas para la versión 5 PowerShell **  
**Ejemplo 1: Cancelación de una actualización en la pila especificada.**  

```
Stop-CFNUpdateStack -StackName "myStack"
```
+  Para obtener más información sobre la API, consulte [CancelUpdateStack](https://docs.aws.amazon.com/powershell/v5/reference)la *referencia de Herramientas de AWS para PowerShell cmdlets (*V5). 

------

# Utilizar `ContinueUpdateRollback` con una CLI
<a name="cloudformation_example_cloudformation_ContinueUpdateRollback_section"></a>

Los siguientes ejemplos de código muestran cómo utilizar `ContinueUpdateRollback`.

------
#### [ CLI ]

**AWS CLI**  
**Nuevo intento de reversión de actualizaciones**  
El ejemplo de `continue-update-rollback` a continuación reanuda una operación de reversión a partir de un intento fallido previo de una actualización de pila.  

```
aws cloudformation continue-update-rollback \
    --stack-name my-stack
```
Este comando no genera ninguna salida.  
+  Para obtener más información sobre la API, consulte [ContinueUpdateRollback](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/continue-update-rollback.html)la *Referencia de AWS CLI comandos*. 

------
#### [ PowerShell ]

**Herramientas para la PowerShell versión 4**  
**Ejemplo 1: Reanudación de la reversión de la pila seleccionada, la cual debería encontrarse en el estado “UPDATE\$1ROLLBACK\$1FAILED”. Si la reversión continua es exitosa, el estado de la pila será “UPDATE\$1ROLLBACK\$1COMPLETE”.**  

```
Resume-CFNUpdateRollback -StackName "myStack"
```
+  Para obtener más información sobre la API, consulte [ContinueUpdateRollback Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v4/reference)*Cmdlet Reference (V4)*. 

**Herramientas para la versión 5 PowerShell **  
**Ejemplo 1: Reanudación de la reversión de la pila seleccionada, la cual debería encontrarse en el estado “UPDATE\$1ROLLBACK\$1FAILED”. Si la reversión continua es exitosa, el estado de la pila será “UPDATE\$1ROLLBACK\$1COMPLETE”.**  

```
Resume-CFNUpdateRollback -StackName "myStack"
```
+  Para obtener más información sobre la API, consulte [ContinueUpdateRollback](https://docs.aws.amazon.com/powershell/v5/reference)la *referencia de Herramientas de AWS para PowerShell cmdlets (*V5). 

------

# Utilizar `CreateStack` con una CLI
<a name="cloudformation_example_cloudformation_CreateStack_section"></a>

Los siguientes ejemplos de código muestran cómo utilizar `CreateStack`.

------
#### [ CLI ]

**AWS CLI**  
**Para crear una AWS CloudFormation pila**  
En el siguiente ejemplo de `create-stacks`, se crea una pila con el nombre `myteststack` mediante la plantilla `sampletemplate.json`:  

```
aws cloudformation create-stack --stack-name myteststack --template-body file://sampletemplate.json --parameters ParameterKey=KeyPairName,ParameterValue=TestKey ParameterKey=SubnetIDs,ParameterValue=SubnetID1\\,SubnetID2
```
Salida:  

```
{
    "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896"
}
```
Para obtener más información, consulte Stacks en la *Guía del AWS CloudFormation usuario*.  
+  Para obtener más información sobre la API, consulte [CreateStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/create-stack.html)la *Referencia de AWS CLI comandos*. 

------
#### [ PowerShell ]

**Herramientas para la PowerShell versión 4**  
**Ejemplo 1: Creación de una pila nueva con el nombre especificado. La plantilla se analiza a partir del contenido suministrado con parámetros de personalización ('' y PK1 'PK2' representan los nombres de los parámetros declarados en el contenido de la plantilla, 'PV1' y PV2 'representan los valores de esos parámetros). Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» 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 $true
```
**Ejemplo 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, PV1 '' y PV2 'representan los valores de esos parámetros). Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» 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 se obtiene de la URL de Amazon S3 con los parámetros de personalización (PK1'' representa el nombre de un parámetro declarado en el contenido de la plantilla, PV1 '' representa el valor del parámetro). Los parámetros de personalización también se pueden especificar mediante «clave» y «valor» en lugar de «ParameterKey» y «ParameterValue». Si la creación de la pila falla, se revertirá (igual que si se especificara: DisableRollback \$1false).**  

```
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 se obtiene de la URL de Amazon S3 con los parámetros de personalización (PK1'' representa el nombre de un parámetro declarado en el contenido de la plantilla, PV1 '' representa el valor del parámetro). Los parámetros de personalización también se pueden especificar mediante «clave» y «valor» en lugar de «ParameterKey» y «ParameterValue». Si la creación de la pila falla, se revertirá (igual que si se especificara: DisableRollback \$1false). La notificación especificada AENs recibirá 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 más información sobre la API, consulte la *referencia [CreateStack](https://docs.aws.amazon.com/powershell/v4/reference)de Herramientas de AWS para PowerShell cmdlets (V4*). 

**Herramientas para la versión 5 PowerShell **  
**Ejemplo 1: Creación de una pila nueva con el nombre especificado. La plantilla se analiza a partir del contenido suministrado con parámetros de personalización ('' y PK1 'PK2' representan los nombres de los parámetros declarados en el contenido de la plantilla, 'PV1' y PV2 'representan los valores de esos parámetros). Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» 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 $true
```
**Ejemplo 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, PV1 '' y PV2 'representan los valores de esos parámetros). Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» 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 se obtiene de la URL de Amazon S3 con los parámetros de personalización (PK1'' representa el nombre de un parámetro declarado en el contenido de la plantilla, PV1 '' representa el valor del parámetro). Los parámetros de personalización también se pueden especificar mediante «clave» y «valor» en lugar de «ParameterKey» y «ParameterValue». Si la creación de la pila falla, se revertirá (igual que si se especificara: DisableRollback \$1false).**  

```
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 se obtiene de la URL de Amazon S3 con los parámetros de personalización (PK1'' representa el nombre de un parámetro declarado en el contenido de la plantilla, PV1 '' representa el valor del parámetro). Los parámetros de personalización también se pueden especificar mediante «clave» y «valor» en lugar de «ParameterKey» y «ParameterValue». Si la creación de la pila falla, se revertirá (igual que si se especificara: DisableRollback \$1false). La notificación especificada AENs recibirá 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 más información sobre la API, consulte [CreateStack Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v5/reference)*Cmdlet Reference* (V5). 

------

# Utilizar `DeleteStack` con una CLI
<a name="cloudformation_example_cloudformation_DeleteStack_section"></a>

Los siguientes ejemplos de código muestran cómo utilizar `DeleteStack`.

------
#### [ CLI ]

**AWS CLI**  
**Eliminación de una pila**  
En el siguiente ejemplo de `delete-stack`, se elimina la pila especificada.  

```
aws cloudformation delete-stack \
    --stack-name my-stack
```
Este comando no genera ninguna salida.  
+  Para obtener más información sobre la API, consulte [DeleteStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/delete-stack.html)la *Referencia de AWS CLI comandos*. 

------
#### [ PowerShell ]

**Herramientas para la PowerShell versión 4**  
**Ejemplo 1: Eliminación de la pila especificada.**  

```
Remove-CFNStack -StackName "myStack"
```
+  Para obtener más información sobre la API, consulte [DeleteStack Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v4/reference)*Cmdlet Reference (V4)*. 

**Herramientas para la versión 5 PowerShell **  
**Ejemplo 1: Eliminación de la pila especificada.**  

```
Remove-CFNStack -StackName "myStack"
```
+  Para obtener más información sobre la API, consulte [DeleteStack](https://docs.aws.amazon.com/powershell/v5/reference)la *referencia de Herramientas de AWS para PowerShell cmdlets (*V5). 

------

# Utilizar `DescribeStackEvents` con una CLI
<a name="cloudformation_example_cloudformation_DescribeStackEvents_section"></a>

Los siguientes ejemplos de código muestran cómo utilizar `DescribeStackEvents`.

------
#### [ CLI ]

**AWS CLI**  
**Descripción de los eventos de la pila**  
En el siguiente ejemplo de `describe-stack-events`, se muestran los dos eventos más recientes de la pila especificada.  

```
aws cloudformation describe-stack-events \
    --stack-name my-stack \
    --max-items 2

{
    "StackEvents": [
        {
            "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
            "EventId": "4e1516d0-e4d6-xmpl-b94f-0a51958a168c",
            "StackName": "my-stack",
            "LogicalResourceId": "my-stack",
            "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
            "ResourceType": "AWS::CloudFormation::Stack",
            "Timestamp": "2019-10-02T05:34:29.556Z",
            "ResourceStatus": "UPDATE_COMPLETE"
        },
        {
            "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
            "EventId": "4dd3c810-e4d6-xmpl-bade-0aaf8b31ab7a",
            "StackName": "my-stack",
            "LogicalResourceId": "my-stack",
            "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
            "ResourceType": "AWS::CloudFormation::Stack",
            "Timestamp": "2019-10-02T05:34:29.127Z",
            "ResourceStatus": "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS"
        }
    ],
    "NextToken": "eyJOZXh0VG9XMPLiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ=="
}
```
+  Para obtener más información sobre la API, consulte [DescribeStackEvents](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stack-events.html)la *Referencia de AWS CLI comandos*. 

------
#### [ PowerShell ]

**Herramientas para la PowerShell versión 4**  
**Ejemplo 1: Devolución de todos los eventos relacionados con la pila especificada.**  

```
Get-CFNStackEvent -StackName "myStack"
```
+  Para obtener más información sobre la API, consulte [DescribeStackEvents Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v4/reference)*Cmdlet Reference (V4)*. 

**Herramientas para la versión 5 PowerShell **  
**Ejemplo 1: Devolución de todos los eventos relacionados con la pila especificada.**  

```
Get-CFNStackEvent -StackName "myStack"
```
+  Para obtener más información sobre la API, consulte [DescribeStackEvents](https://docs.aws.amazon.com/powershell/v5/reference)la *referencia de Herramientas de AWS para PowerShell cmdlets (*V5). 

------

# Utilizar `DescribeStackResource` con una CLI
<a name="cloudformation_example_cloudformation_DescribeStackResource_section"></a>

Los siguientes ejemplos de código muestran cómo utilizar `DescribeStackResource`.

------
#### [ CLI ]

**AWS CLI**  
**Obtención de información sobre un recurso de pila**  
En el siguiente ejemplo de `describe-stack-resource`, se muestran los detalles del recurso con el nombre `MyFunction` en la pila especificada.  

```
aws cloudformation describe-stack-resource \
    --stack-name MyStack \
    --logical-resource-id MyFunction
```
Salida:  

```
{
    "StackResourceDetail": {
        "StackName": "MyStack",
        "StackId": "arn:aws:cloudformation:us-east-2:123456789012:stack/MyStack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
        "LogicalResourceId": "MyFunction",
        "PhysicalResourceId": "my-function-SEZV4XMPL4S5",
        "ResourceType": "AWS::Lambda::Function",
        "LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z",
        "ResourceStatus": "UPDATE_COMPLETE",
        "Metadata": "{}",
        "DriftInformation": {
            "StackResourceDriftStatus": "IN_SYNC"
        }
    }
}
```
+  Para obtener más información sobre la API, consulte [DescribeStackResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stack-resource.html)la *Referencia de AWS CLI comandos*. 

------
#### [ PowerShell ]

**Herramientas para la PowerShell versión 4**  
**Ejemplo 1: devuelve la descripción de un recurso identificado en la plantilla asociada a la pila especificada mediante el identificador lógico DBInstance «My».**  

```
Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
```
+  Para obtener más información sobre la API, consulte [DescribeStackResource Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v4/reference)*Cmdlet Reference (V4)*. 

**Herramientas para la versión 5 PowerShell **  
**Ejemplo 1: devuelve la descripción de un recurso identificado en la plantilla asociada a la pila especificada mediante el identificador lógico DBInstance «My».**  

```
Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
```
+  Para obtener más información sobre la API, consulte [DescribeStackResource Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v5/reference)*Cmdlet Reference (V5)*. 

------

# Utilizar `DescribeStackResources` con una CLI
<a name="cloudformation_example_cloudformation_DescribeStackResources_section"></a>

Los siguientes ejemplos de código muestran cómo utilizar `DescribeStackResources`.

------
#### [ CLI ]

**AWS CLI**  
**Obtención de información sobre un recurso de pila**  
En el siguiente ejemplo de `describe-stack-resources`, se muestran los detalles de los recursos en la pila especificada.  

```
aws cloudformation describe-stack-resources \
    --stack-name my-stack
```
Salida:  

```
{
    "StackResources": [
        {
            "StackName": "my-stack",
            "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
            "LogicalResourceId": "bucket",
            "PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf",
            "ResourceType": "AWS::S3::Bucket",
            "Timestamp": "2019-10-02T04:34:11.345Z",
            "ResourceStatus": "CREATE_COMPLETE",
            "DriftInformation": {
                "StackResourceDriftStatus": "IN_SYNC"
            }
        },
        {
            "StackName": "my-stack",
            "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
            "LogicalResourceId": "function",
            "PhysicalResourceId": "my-function-SEZV4XMPL4S5",
            "ResourceType": "AWS::Lambda::Function",
            "Timestamp": "2019-10-02T05:34:27.989Z",
            "ResourceStatus": "UPDATE_COMPLETE",
            "DriftInformation": {
                "StackResourceDriftStatus": "IN_SYNC"
            }
        },
        {
            "StackName": "my-stack",
            "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
            "LogicalResourceId": "functionRole",
            "PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E",
            "ResourceType": "AWS::IAM::Role",
            "Timestamp": "2019-10-02T04:34:06.350Z",
            "ResourceStatus": "CREATE_COMPLETE",
            "DriftInformation": {
                "StackResourceDriftStatus": "IN_SYNC"
            }
        }
    ]
}
```
+  Para obtener más información sobre la API, consulte [DescribeStackResources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stack-resources.html)la *Referencia de AWS CLI comandos*. 

------
#### [ PowerShell ]

**Herramientas para la PowerShell versión 4**  
**Ejemplo 1: devuelve las descripciones AWS de los recursos de un máximo de 100 recursos asociados a la pila especificada. Para obtener detalles de todos los recursos asociados a una pila, utilice el comando Get- CFNStackResourceSummary, que también permite 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, usa el Get- CFNStackResourceSummary, que también permite 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 S3.**  

```
Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"
```
+  Para obtener más información sobre la API, consulte [DescribeStackResources](https://docs.aws.amazon.com/powershell/v4/reference)la *referencia de Herramientas de AWS para PowerShell cmdlets (*V4). 

**Herramientas para la versión 5 PowerShell **  
**Ejemplo 1: devuelve las descripciones AWS de los recursos de un máximo de 100 recursos asociados a la pila especificada. Para obtener detalles de todos los recursos asociados a una pila, utilice el comando Get- CFNStackResourceSummary, que también permite 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, usa el Get- CFNStackResourceSummary, que también permite 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 S3.**  

```
Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"
```
+  Para obtener más información sobre la API, consulte [DescribeStackResources Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v5/reference)*Cmdlet Reference (*V5). 

------

# Úselo `DescribeStacks` con un AWS SDK o CLI
<a name="cloudformation_example_cloudformation_DescribeStacks_section"></a>

Los siguientes ejemplos de código muestran cómo utilizar `DescribeStacks`.

------
#### [ CLI ]

**AWS CLI**  
**Para describir las AWS CloudFormation pilas**  
En el siguiente ejemplo de `describe-stacks`, se muestra la información del resumen para la pila `myteststack`:  

```
aws cloudformation describe-stacks --stack-name myteststack
```
Salida:  

```
{
    "Stacks":  [
        {
            "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896",
            "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.",
            "Tags": [],
            "Outputs": [
                {
                    "Description": "Name of S3 bucket to hold website content",
                    "OutputKey": "BucketName",
                    "OutputValue": "myteststack-s3bucket-jssofi1zie2w"
                }
            ],
            "StackStatusReason": null,
            "CreationTime": "2013-08-23T01:02:15.422Z",
            "Capabilities": [],
            "StackName": "myteststack",
            "StackStatus": "CREATE_COMPLETE",
            "DisableRollback": false
        }
    ]
}
```
Para obtener más información, consulte Stacks en la Guía del *AWS CloudFormation usuario*.  
+  Para obtener más información sobre la API, consulte [DescribeStacks](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stacks.html)la *Referencia de AWS CLI comandos*. 

------
#### [ Go ]

**SDK para Go V2**  
 Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2/workflows/user_pools_and_lambda_triggers#code-examples). 

```
import (
	"context"
	"log"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/service/cloudformation"
)

// StackOutputs defines a map of outputs from a specific stack.
type StackOutputs map[string]string

type CloudFormationActions struct {
	CfnClient *cloudformation.Client
}

// GetOutputs gets the outputs from a CloudFormation stack and puts them into a structured format.
func (actor CloudFormationActions) GetOutputs(ctx context.Context, stackName string) StackOutputs {
	output, err := actor.CfnClient.DescribeStacks(ctx, &cloudformation.DescribeStacksInput{
		StackName: aws.String(stackName),
	})
	if err != nil || len(output.Stacks) == 0 {
		log.Panicf("Couldn't find a CloudFormation stack named %v. Here's why: %v\n", stackName, err)
	}
	stackOutputs := StackOutputs{}
	for _, out := range output.Stacks[0].Outputs {
		stackOutputs[*out.OutputKey] = *out.OutputValue
	}
	return stackOutputs
}
```
+  Para obtener más información sobre la API, consulta [DescribeStacks](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/cloudformation#Client.DescribeStacks)la *Referencia AWS SDK para Go de la API*. 

------
#### [ PowerShell ]

**Herramientas para la PowerShell versión 4**  
**Ejemplo 1: Devolución de una colección de instancias de pila que describen todas las pilas del usuario.**  

```
Get-CFNStack
```
**Ejemplo 2: Devolución de una instancia de pila que describe la pila especificada.**  

```
Get-CFNStack -StackName "myStack"
```
+  Para obtener más información sobre la API, consulte [DescribeStacks Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v4/reference)*Cmdlet Reference (V4)*. 

**Herramientas para la versión 5 PowerShell **  
**Ejemplo 1: Devolución de una colección de instancias de pila que describen todas las pilas del usuario.**  

```
Get-CFNStack
```
**Ejemplo 2: Devolución de una instancia de pila que describe la pila especificada.**  

```
Get-CFNStack -StackName "myStack"
```
+  Para obtener más información sobre la API, consulte [DescribeStacks](https://docs.aws.amazon.com/powershell/v5/reference)la *referencia de Herramientas de AWS para PowerShell cmdlets (*V5). 

------

# Utilizar `EstimateTemplateCost` con una CLI
<a name="cloudformation_example_cloudformation_EstimateTemplateCost_section"></a>

Los siguientes ejemplos de código muestran cómo utilizar `EstimateTemplateCost`.

------
#### [ CLI ]

**AWS CLI**  
**Cálculo del costo de una plantilla**  
En el siguiente ejemplo de `estimate-template-cost`, se genera un cálculo del costo para una plantilla con el nombre `template.yaml` en la carpeta actual.  

```
aws cloudformation estimate-template-cost \
    --template-body file://template.yaml
```
Salida:  

```
{
    "Url": "http://calculator.s3.amazonaws.com/calc5.html?key=cloudformation/7870825a-xmpl-4def-92e7-c4f8dd360cca"
}
```
+  Para obtener más información sobre la API, consulte [EstimateTemplateCost](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/estimate-template-cost.html)la *Referencia de AWS CLI comandos*. 

------
#### [ PowerShell ]

**Herramientas para la PowerShell versión 4**  
**Ejemplo 1: devuelve la URL de una calculadora mensual AWS simple 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 mediante «Clave» y «Valor» 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: devuelve la URL de una calculadora mensual AWS simple 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 se supone que el contenido de la plantilla habría declarado dos parámetros, 'KeyName' y 'InstanceType'). Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» en lugar de «ParameterKey» y «ParameterValue».**  

```
Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" `
                        -Parameter @( @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" },`
                                      @{ ParameterKey="InstanceType"; ParameterValue="m1.large" })
```
**Ejemplo 3: Utiliza New-Object para crear el conjunto de parámetros de la plantilla y devuelve la URL de una calculadora mensual AWS simple con una cadena de consulta que describe los recursos necesarios para ejecutar la plantilla. La plantilla se analiza a partir del contenido suministrado, con parámetros de personalización (en este ejemplo se supone que el contenido de la plantilla habría declarado dos parámetros, '' y 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 obtener más información sobre la API, consulte [EstimateTemplateCost Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v4/reference)*Cmdlet Reference (*V4). 

**Herramientas para la versión 5 PowerShell **  
**Ejemplo 1: devuelve la URL de una calculadora mensual AWS simple 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 mediante «Clave» y «Valor» 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: devuelve la URL de una calculadora mensual AWS simple 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 se supone que el contenido de la plantilla habría declarado dos parámetros, 'KeyName' y 'InstanceType'). Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» en lugar de «ParameterKey» y «ParameterValue».**  

```
Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" `
                        -Parameter @( @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" },`
                                      @{ ParameterKey="InstanceType"; ParameterValue="m1.large" })
```
**Ejemplo 3: Utiliza New-Object para crear el conjunto de parámetros de la plantilla y devuelve la URL de una calculadora mensual AWS simple con una cadena de consulta que describe los recursos necesarios para ejecutar la plantilla. La plantilla se analiza a partir del contenido suministrado, con parámetros de personalización (en este ejemplo se supone que el contenido de la plantilla habría declarado dos parámetros, '' y 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 obtener más información sobre la API, consulte [EstimateTemplateCost Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v5/reference)*Cmdlet Reference (*V5). 

------

# Utilizar `GetTemplate` con una CLI
<a name="cloudformation_example_cloudformation_GetTemplate_section"></a>

Los siguientes ejemplos de código muestran cómo utilizar `GetTemplate`.

------
#### [ CLI ]

**AWS CLI**  
**Para ver el cuerpo de la plantilla de una AWS CloudFormation pila**  
En el siguiente ejemplo de `get-template`, se muestra la plantilla para la pila `myteststack`:  

```
aws cloudformation get-template --stack-name myteststack
```
Salida:  

```
{
    "TemplateBody": {
        "AWSTemplateFormatVersion": "2010-09-09",
        "Outputs": {
            "BucketName": {
                "Description": "Name of S3 bucket to hold website content",
                "Value": {
                    "Ref": "S3Bucket"
                }
            }
        },
        "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.",
        "Resources": {
            "S3Bucket": {
                "Type": "AWS::S3::Bucket",
                "Properties": {
                    "AccessControl": "PublicRead"
                }
            }
        }
    }
}
```
+  Para obtener más información sobre la API, consulte [GetTemplate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/get-template.html)la *Referencia de AWS CLI comandos*. 

------
#### [ PowerShell ]

**Herramientas para la PowerShell versión 4**  
**Ejemplo 1: Devolución de la plantilla asociada a la pila especificada.**  

```
Get-CFNTemplate -StackName "myStack"
```
+  Para obtener más información sobre la API, consulte [GetTemplate Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v4/reference)*Cmdlet Reference (V4)*. 

**Herramientas para la versión 5 PowerShell **  
**Ejemplo 1: Devolución de la plantilla asociada a la pila especificada.**  

```
Get-CFNTemplate -StackName "myStack"
```
+  Para obtener más información sobre la API, consulte [GetTemplate](https://docs.aws.amazon.com/powershell/v5/reference)la *referencia de Herramientas de AWS para PowerShell cmdlets (*V5). 

------

# Utilizar `ListStackResources` con una CLI
<a name="cloudformation_example_cloudformation_ListStackResources_section"></a>

Los siguientes ejemplos de código muestran cómo utilizar `ListStackResources`.

------
#### [ CLI ]

**AWS CLI**  
**Enumeración de los recursos de una pila**  
En el siguiente comando, se muestra la lista de los recursos en la pila especificada.  

```
aws cloudformation list-stack-resources \
    --stack-name my-stack
```
Salida:  

```
{
    "StackResourceSummaries": [
        {
            "LogicalResourceId": "bucket",
            "PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf",
            "ResourceType": "AWS::S3::Bucket",
            "LastUpdatedTimestamp": "2019-10-02T04:34:11.345Z",
            "ResourceStatus": "CREATE_COMPLETE",
            "DriftInformation": {
                "StackResourceDriftStatus": "IN_SYNC"
            }
        },
        {
            "LogicalResourceId": "function",
            "PhysicalResourceId": "my-function-SEZV4XMPL4S5",
            "ResourceType": "AWS::Lambda::Function",
            "LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z",
            "ResourceStatus": "UPDATE_COMPLETE",
            "DriftInformation": {
                "StackResourceDriftStatus": "IN_SYNC"
            }
        },
        {
            "LogicalResourceId": "functionRole",
            "PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E",
            "ResourceType": "AWS::IAM::Role",
            "LastUpdatedTimestamp": "2019-10-02T04:34:06.350Z",
            "ResourceStatus": "CREATE_COMPLETE",
            "DriftInformation": {
                "StackResourceDriftStatus": "IN_SYNC"
            }
        }
    ]
}
```
+  Para obtener más información sobre la API, consulte [ListStackResources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/list-stack-resources.html)la *Referencia de AWS CLI comandos*. 

------
#### [ PowerShell ]

**Herramientas para la PowerShell versión 4**  
**Ejemplo 1: Devolución de las descripciones de todos los recursos asociados a la pila especificada.**  

```
Get-CFNStackResourceSummary -StackName "myStack"
```
+  Para obtener más información sobre la API, consulte [ListStackResources Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v4/reference)*Cmdlet Reference (V4)*. 

**Herramientas para la versión 5 PowerShell **  
**Ejemplo 1: Devolución de las descripciones de todos los recursos asociados a la pila especificada.**  

```
Get-CFNStackResourceSummary -StackName "myStack"
```
+  Para obtener más información sobre la API, consulte [ListStackResources](https://docs.aws.amazon.com/powershell/v5/reference)la *referencia de Herramientas de AWS para PowerShell cmdlets (*V5). 

------

# Utilizar `ListStacks` con una CLI
<a name="cloudformation_example_cloudformation_ListStacks_section"></a>

Los siguientes ejemplos de código muestran cómo utilizar `ListStacks`.

------
#### [ CLI ]

**AWS CLI**  
**Para enumerar AWS CloudFormation pilas**  
En el siguiente ejemplo de `list-stacks`, se muestra un resumen de todas las pilas que tienen el estado `CREATE_COMPLETE`:  

```
aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE
```
Salida:  

```
[
    {
        "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896",
        "TemplateDescription": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.",
        "StackStatusReason": null,
        "CreationTime": "2013-08-26T03:27:10.190Z",
        "StackName": "myteststack",
        "StackStatus": "CREATE_COMPLETE"
    }
]
```
+  Para obtener más información sobre la API, consulte [ListStacks](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/list-stacks.html)la *Referencia de AWS CLI comandos*. 

------
#### [ PowerShell ]

**Herramientas para la PowerShell versión 4**  
**Ejemplo 1: Devolución de información de resumen de todas las pilas.**  

```
Get-CFNStackSummary
```
**Ejemplo 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 más información sobre la API, consulte [ListStacks Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v4/reference)*Cmdlet Reference (V4)*. 

**Herramientas para la versión 5 PowerShell **  
**Ejemplo 1: Devolución de información de resumen de todas las pilas.**  

```
Get-CFNStackSummary
```
**Ejemplo 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 más información sobre la API, consulte [ListStacks](https://docs.aws.amazon.com/powershell/v5/reference)la *referencia de Herramientas de AWS para PowerShell cmdlets (*V5). 

------

# Utilizar `UpdateStack` con una CLI
<a name="cloudformation_example_cloudformation_UpdateStack_section"></a>

Los siguientes ejemplos de código muestran cómo utilizar `UpdateStack`.

------
#### [ CLI ]

**AWS CLI**  
**Para actualizar AWS CloudFormation pilas**  
En el siguiente ejemplo de `update-stack`, se actualiza la plantilla y los parámetros de entrada de la pila `mystack`:  

```
aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,ParameterValue=SampleKeyPair ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,SampleSubnetID2
```
En el siguiente ejemplo de `update-stack`, se actualiza únicamente el valor de parámetro `SubnetIDs` para la pila `mystack`. Si no se especifica un valor de parámetro, se utilizará el valor predeterminado que esté especificado en la plantilla:  

```
aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,UsePreviousValue=true ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,UpdatedSampleSubnetID2
```
En el siguiente ejemplo de `update-stack`, se agregan dos temas de notificaciones de pila en la pila `mystack`:  

```
aws cloudformation update-stack --stack-name mystack --use-previous-template --notification-arns "arn:aws:sns:use-east-1:123456789012:mytopic1" "arn:aws:sns:us-east-1:123456789012:mytopic2"
```
Para obtener más información, consulta [las actualizaciones de las AWS CloudFormation pilas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html) en la *Guía del AWS CloudFormation usuario*.  
+  Para obtener más información sobre la API, consulte [UpdateStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/update-stack.html)la *Referencia de AWS CLI comandos*. 

------
#### [ PowerShell ]

**Herramientas para la PowerShell versión 4**  
**Ejemplo 1: actualiza 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 y 'PV1' representa su valor. Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» en lugar de ParameterKey «» y «ParameterValue».**  

```
Update-CFNStack -StackName "myStack" `
                -TemplateBody "{Template Content Here}" `
                -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Ejemplo 2: actualiza 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, 'PV1' y 'PV2' representan los valores solicitados. Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» 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: actualiza 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 y 'PV2' representa su valor. Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» en lugar de ParameterKey «» y «ParameterValue».**  

```
Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Ejemplo 4: actualiza la pila 'myStack' con la plantilla especificada, obtenida de Amazon S3, y los parámetros de personalización. 'PK1' y 'PK2' representan los nombres de los parámetros declarados en la plantilla, 'PV1' y 'PV2' representan los valores solicitados. Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» 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: actualiza la pila «MyStack», que en este ejemplo se supone que contiene recursos de IAM, con la plantilla especificada, obtenida de Amazon S3, y los parámetros de personalización. 'PK1' y 'PK2' representan los nombres de los parámetros declarados en la plantilla, 'PV1' y 'PV2' representan los valores solicitados. Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» en lugar de ParameterKey «» y «ParameterValue». Las pilas que contienen recursos de IAM requieren que especifiques el parámetro «CAPABILITY\$1IAM» de -Capabilities; de lo contrario, la actualización fallará y aparecerá un error de «». 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 obtener información sobre la API, consulte la referencia de cmdlets ([UpdateStack](https://docs.aws.amazon.com/powershell/v4/reference)V4).Herramientas de AWS para PowerShell * 

**Herramientas para la versión 5 PowerShell **  
**Ejemplo 1: actualiza 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 y 'PV1' representa su valor. Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» en lugar de ParameterKey «» y «ParameterValue».**  

```
Update-CFNStack -StackName "myStack" `
                -TemplateBody "{Template Content Here}" `
                -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Ejemplo 2: actualiza 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, 'PV1' y 'PV2' representan los valores solicitados. Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» 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: actualiza 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 y 'PV2' representa su valor. Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» en lugar de ParameterKey «» y «ParameterValue».**  

```
Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Ejemplo 4: actualiza la pila 'myStack' con la plantilla especificada, obtenida de Amazon S3, y los parámetros de personalización. 'PK1' y 'PK2' representan los nombres de los parámetros declarados en la plantilla, 'PV1' y 'PV2' representan los valores solicitados. Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» 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: actualiza la pila «MyStack», que en este ejemplo se supone que contiene recursos de IAM, con la plantilla especificada, obtenida de Amazon S3, y los parámetros de personalización. 'PK1' y 'PK2' representan los nombres de los parámetros declarados en la plantilla, 'PV1' y 'PV2' representan los valores solicitados. Los parámetros de personalización también se pueden especificar mediante «Clave» y «Valor» en lugar de ParameterKey «» y «ParameterValue». Las pilas que contienen recursos de IAM requieren que especifiques el parámetro «CAPABILITY\$1IAM» de -Capabilities; de lo contrario, la actualización fallará y aparecerá un error de «». 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 obtener más información sobre la API, consulte la referencia de cmdlets ([UpdateStack](https://docs.aws.amazon.com/powershell/v5/reference)V5).Herramientas de AWS para PowerShell * 

------

# Utilizar `ValidateTemplate` con una CLI
<a name="cloudformation_example_cloudformation_ValidateTemplate_section"></a>

Los siguientes ejemplos de código muestran cómo utilizar `ValidateTemplate`.

------
#### [ CLI ]

**AWS CLI**  
**Para validar una AWS CloudFormation plantilla**  
En el siguiente ejemplo de `validate-template`, se valida la plantilla `sampletemplate.json`:  

```
aws cloudformation validate-template --template-body file://sampletemplate.json
```
Salida:  

```
{
    "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.",
    "Parameters": [],
    "Capabilities": []
}
```
Para obtener más información, consulte Trabajar con AWS CloudFormation plantillas en la *Guía del AWS CloudFormation usuario*.  
+  Para obtener más información sobre la API, consulte [ValidateTemplate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/validate-template.html)la *Referencia de AWS CLI comandos*. 

------
#### [ PowerShell ]

**Herramientas para la PowerShell versión 4**  
**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 S3. 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 más información sobre la API, consulte [ValidateTemplate Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/v4/reference)*Cmdlet Reference (V4)*. 

**Herramientas para la versión 5 PowerShell **  
**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 S3. 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 más información sobre la API, consulte [ValidateTemplate](https://docs.aws.amazon.com/powershell/v5/reference)la *referencia de Herramientas de AWS para PowerShell cmdlets (*V5). 

------