

• El panel de AWS Systems Manager CloudWatch dejará de estar disponible después del 30 de abril de 2026. Los clientes pueden seguir utilizando la consola de Amazon CloudWatch para ver, crear y administrar sus paneles de Amazon CloudWatch, tal y como lo hacen actualmente. Para obtener más información, consulte la [documentación del panel de Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

# Referencia de acciones de Automatización de Systems Manager
<a name="automation-actions"></a>

Esta referencia describe las acciones de Automation que puede especificar en un manual de procedimientos de automatización. Automatización es una herramienta de AWS Systems Manager. Estas acciones no se pueden utilizar en otros tipos de documentos de Systems Manager (SSM). Para obtener información acerca de los complementos para otros tipos de documentos de SSM, consulte [Referencia de complementos del documento de comandos](documents-command-ssm-plugin-reference.md).

Automatización de Systems Manager ejecuta los pasos definidos en los manuales de procedimientos de Automation. Cada paso está asociado a una acción concreta. La acción determina las entradas, el comportamiento y las salidas del paso. Los pasos se definen en la sección `mainSteps` de su manual de procedimientos.

No necesita especificar las salidas de una acción o paso. Las salidas están predeterminadas por la acción asociada al paso. Al especificar entradas de paso en los manuales de procedimientos, puede referenciar una o más salidas de un paso anterior. Por ejemplo, puede hacer que la salida de `aws:runInstances` esté disponible para una acción `aws:runCommand` posterior. También puede referenciar las salidas de pasos anteriores en la sección `Output` del manual de procedimientos. 

**importante**  
Si ejecuta un flujo de trabajo de automatización que invoca otros servicios mediante un rol de servicio de AWS Identity and Access Management (IAM), tenga en cuenta que el rol de servicio debe configurarse con el permiso necesario para invocar dichos servicios. Este requisito se aplica a todos los manuales de procedimientos de automatización de AWS (manuales de `AWS-*`), como los manuales de procedimientos `AWS-ConfigureS3BucketLogging`, `AWS-CreateDynamoDBBackup` y `AWS-RestartEC2Instance`, por nombrar algunos. Este requisito también se aplica a cualquier manual de procedimientos de automatización personalizado que cree para llamar otros Servicios de AWS mediante acciones que llaman a otros servicios. Por ejemplo, si utiliza las acciones `aws:executeAwsApi`, `aws:createStack` o `aws:copyImage`, configure el rol de servicio con el permiso necesario para invocar dichos servicios. Puede conceder permisos a otros Servicios de AWS mediante la incorporación de una política insertada de IAM al rol. Para obtener más información, consulte [(Opcional) Agregar una política insertada de Automatización o una política administrada por el cliente para invocar otros Servicios de AWS](automation-setup-iam.md#add-inline-policy).

**Topics**
+ [Propiedades compartidas por todas las acciones](#automation-common)
+ [`aws:approve`: detener una automatización para la aprobación manual](automation-action-approve.md)
+ [`aws:assertAwsResourceProperty`: confirmar el estado de un recurso o un evento de AWS](automation-action-assertAwsResourceProperty.md)
+ [`aws:branch`: ejecutar pasos de automatización condicionales](automation-action-branch.md)
+ [`aws:changeInstanceState`: cambiar o confirmar el estado de la instancia](automation-action-changestate.md)
+ [`aws:copyImage` – copiar o cifrar una Amazon Machine Image](automation-action-copyimage.md)
+ [`aws:createImage`: crear una Amazon Machine Image](automation-action-create.md)
+ [`aws:createStack`: crear una pila de CloudFormation](automation-action-createstack.md)
+ [`aws:createTags`: crear etiquetas para recursos de AWS](automation-action-createtag.md)
+ [`aws:deleteImage`: eliminar una Amazon Machine Image](automation-action-delete.md)
+ [`aws:deleteStack`: eliminar una pila de CloudFormation](automation-action-deletestack.md)
+ [`aws:executeAutomation`: ejecutar otra automatización](automation-action-executeAutomation.md)
+ [`aws:executeAwsApi`: llamar y ejecutar operaciones de la API de AWS](automation-action-executeAwsApi.md)
+ [`aws:executeScript`: ejecutar un script](automation-action-executeScript.md)
+ [`aws:executeStateMachine`: ejecutar una máquina de estado de AWS Step Functions](automation-action-executeStateMachine.md)
+ [`aws:invokeWebhook`: invocar una integración de webhook de Automation](invoke-webhook.md)
+ [`aws:invokeLambdaFunction`: invocar una función de AWS Lambda](automation-action-lamb.md)
+ [`aws:loop` — Repita los pasos en una automatización](automation-action-loop.md)
+ [`aws:pause`: detener una automatización](automation-action-pause.md)
+ [`aws:runCommand`: ejecutar un comando en una instancia administrada](automation-action-runcommand.md)
+ [`aws:runInstances`: lanzar una instancia de Amazon EC2](automation-action-runinstance.md)
+ [`aws:sleep`: retrasar una automatización](automation-action-sleep.md)
+ [`aws:updateVariable` — Actualiza el valor de una variable del manual de procedimientos](automation-action-update-variable.md)
+ [`aws:waitForAwsResourceProperty`: esperar una propiedad de recurso de AWS](automation-action-waitForAwsResourceProperty.md)
+ [Variables del sistema de Automation](automation-variables.md)

## Propiedades compartidas por todas las acciones
<a name="automation-common"></a>

Las propiedades comunes son parámetros u opciones que se encuentran en todas las acciones. Algunas opciones definen el comportamiento de un paso, como cuánto tiempo debe esperar para que se complete un paso y qué hacer si el paso produce un error. Las siguientes propiedades son comunes a todas las acciones.

[description](#descriptProp)  
Información que proporciona para describir el propósito de un manual de procedimientos o un paso.  
Tipo: cadena  
Requerido: no

[name](#nameProp)  
Un identificador que debe ser único en todos los nombres de paso del manual de procedimientos.  
Tipo: cadena  
Patrón permitido: [a-zA-Z0-9\$1]\$1\$1  
Obligatorio: sí

[action](#actProp)  
El nombre de la acción que ejecutará el paso. [`aws:runCommand`: ejecutar un comando en una instancia administrada](automation-action-runcommand.md) es un ejemplo de una acción que puede especificar aquí. En este documento, se proporciona información detallada sobre todas las acciones disponibles.  
Tipo: cadena  
Obligatorio: sí

[maxAttempts](#maxProp)  
El número de veces que se debe reintentar el paso en caso de error. Si el valor es mayor que 1, no se considerará que hay un error en el paso hasta que todos los reintentos produzcan errores. El valor predeterminado es 1.  
Tipo: entero  
Obligatorio: no

[timeoutSeconds](#timeProp)  
El valor de tiempo de espera del paso. Si se alcanza el tiempo de espera y el valor de `maxAttempts` es mayor que 1, no se considera que se ha agotado el tiempo de espera del paso hasta que se hayan realizado todos los reintentos.  
Tipo: entero  
Obligatorio: no

[onFailure](#failProp)  
Indica si la automatización se debe detener, continuar o ir a otro paso en caso de error. El valor predeterminado para esta opción es abort (anular).  
Tipo: cadena  
Valores válidos: Abort \$1 Continue \$1 step:*nombre\$1del\$1paso*  
Obligatorio: no

[onCancel](#canProp)  
Indica a qué paso debe ir la automatización en caso de que un usuario la cancele. Automation ejecuta el flujo de trabajo de cancelación durante un máximo de dos minutos.  
Tipo: cadena  
Valores válidos: Abort \$1 step:*step\$1name*  
Obligatorio: no  
La propiedad `onCancel` no admite pasar a las siguientes acciones:  
+ `aws:approve`
+ `aws:copyImage`
+ `aws:createImage`
+ `aws:createStack`
+ `aws:createTags`
+ `aws:loop`
+ `aws:pause`
+ `aws:runInstances`
+ `aws:sleep`

[isEnd](#endProp)  
Esta opción detiene una automatización al final de un paso determinado. La automatización se detiene tanto si el paso genera un error como si se realiza correctamente. El valor predeterminado es false.  
Tipo: Booleano  
Valores válidos: true \$1 false  
Obligatorio: no

[nextStep](#nextProp)  
Especifica qué paso de una automatización se debe procesar después de finalizar correctamente un paso.  
Tipo: cadena  
Requerido: no

[isCritical](#critProp)  
Designa un paso como crítico para la finalización correcta de Automation. Si un paso con esta designación genera un error, Automation considera que el estado final de la Automation ha generado un error. Esta propiedad solo se evalúa si la define de forma explícita en el paso. Si la propiedad `onFailure` está establecida en `Continue` en un paso, el valor adopta la opción predeterminada false. De lo contrario, el valor predeterminado para esta opción es true.  
Tipo: Booleano  
Valores válidos: true \$1 false  
Obligatorio: no

[inputs](#inProp)  
Las propiedades específicas de la acción.  
Tipo: mapa  
Obligatorio: sí

### Ejemplo
<a name="automation-demo"></a>

```
---
description: "Custom Automation Example"
schemaVersion: '0.3'
assumeRole: "{{ AutomationAssumeRole }}"
parameters:
  AutomationAssumeRole:
    type: String
    description: "(Required) The ARN of the role that allows Automation to perform
      the actions on your behalf. If no role is specified, Systems Manager Automation
      uses your IAM permissions to run this runbook."
    default: ''
  InstanceId:
      type: String
      description: "(Required) The Instance Id whose root EBS volume you want to restore the latest Snapshot."
      default: ''
mainSteps:
- name: getInstanceDetails
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeInstances
    InstanceIds:
    - "{{ InstanceId }}"
  outputs:
    - Name: availabilityZone
      Selector: "$.Reservations[0].Instances[0].Placement.AvailabilityZone"
      Type: String
    - Name: rootDeviceName
      Selector: "$.Reservations[0].Instances[0].RootDeviceName"
      Type: String
  nextStep: getRootVolumeId
- name: getRootVolumeId
  action: aws:executeAwsApi
  maxAttempts: 3
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeVolumes
    Filters:
    -  Name: attachment.device
       Values: ["{{ getInstanceDetails.rootDeviceName }}"]
    -  Name: attachment.instance-id
       Values: ["{{ InstanceId }}"]
  outputs:
    - Name: rootVolumeId
      Selector: "$.Volumes[0].VolumeId"
      Type: String
  nextStep: getSnapshotsByStartTime
- name: getSnapshotsByStartTime
  action: aws:executeScript
  timeoutSeconds: 45
  onFailure: Abort
  inputs:
    Runtime: python3.8
    Handler: getSnapshotsByStartTime
    InputPayload:
      rootVolumeId : "{{ getRootVolumeId.rootVolumeId }}"
    Script: |-
      def getSnapshotsByStartTime(events,context):
        import boto3

        #Initialize client
        ec2 = boto3.client('ec2')
        rootVolumeId = events['rootVolumeId']
        snapshotsQuery = ec2.describe_snapshots(
          Filters=[
            {
              "Name": "volume-id",
              "Values": [rootVolumeId]
            }
          ]
        )
        if not snapshotsQuery['Snapshots']:
          noSnapshotFoundString = "NoSnapshotFound"
          return { 'noSnapshotFound' : noSnapshotFoundString }
        else:
          jsonSnapshots = snapshotsQuery['Snapshots']
          sortedSnapshots = sorted(jsonSnapshots, key=lambda k: k['StartTime'], reverse=True)
          latestSortedSnapshotId = sortedSnapshots[0]['SnapshotId']
          return { 'latestSnapshotId' : latestSortedSnapshotId }
  outputs:
  - Name: Payload
    Selector: $.Payload
    Type: StringMap
  - Name: latestSnapshotId
    Selector: $.Payload.latestSnapshotId
    Type: String
  - Name: noSnapshotFound
    Selector: $.Payload.noSnapshotFound
    Type: String 
  nextStep: branchFromResults
- name: branchFromResults
  action: aws:branch
  onFailure: Abort
  onCancel: step:startInstance
  inputs:
    Choices:
    - NextStep: createNewRootVolumeFromSnapshot
      Not:
        Variable: "{{ getSnapshotsByStartTime.noSnapshotFound }}"
        StringEquals: "NoSnapshotFound"
  isEnd: true
- name: createNewRootVolumeFromSnapshot
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: CreateVolume
    AvailabilityZone: "{{ getInstanceDetails.availabilityZone }}"
    SnapshotId: "{{ getSnapshotsByStartTime.latestSnapshotId }}"
  outputs:
    - Name: newRootVolumeId
      Selector: "$.VolumeId"
      Type: String
  nextStep: stopInstance
- name: stopInstance
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: StopInstances
    InstanceIds:
    - "{{ InstanceId }}"
  nextStep: verifyVolumeAvailability
- name: verifyVolumeAvailability
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 120
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
    PropertySelector: "$.Volumes[0].State"
    DesiredValues:
    - "available"
  nextStep: verifyInstanceStopped
- name: verifyInstanceStopped
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 120
  inputs:
    Service: ec2
    Api: DescribeInstances
    InstanceIds:
    - "{{ InstanceId }}"
    PropertySelector: "$.Reservations[0].Instances[0].State.Name"
    DesiredValues:
    - "stopped"
  nextStep: detachRootVolume
- name: detachRootVolume
  action: aws:executeAwsApi
  onFailure: Abort
  isCritical: true
  inputs:
    Service: ec2
    Api: DetachVolume
    VolumeId: "{{ getRootVolumeId.rootVolumeId }}"
  nextStep: verifyRootVolumeDetached
- name: verifyRootVolumeDetached
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 30
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ getRootVolumeId.rootVolumeId }}"
    PropertySelector: "$.Volumes[0].State"
    DesiredValues:
    - "available"
  nextStep: attachNewRootVolume
- name: attachNewRootVolume
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: AttachVolume
    Device: "{{ getInstanceDetails.rootDeviceName }}"
    InstanceId: "{{ InstanceId }}"
    VolumeId: "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
  nextStep: verifyNewRootVolumeAttached
- name: verifyNewRootVolumeAttached
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 30
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
    PropertySelector: "$.Volumes[0].Attachments[0].State"
    DesiredValues:
    - "attached"
  nextStep: startInstance
- name: startInstance
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: StartInstances
    InstanceIds:
    - "{{ InstanceId }}"
```

# `aws:approve`: detener una automatización para la aprobación manual
<a name="automation-action-approve"></a>

Detiene temporalmente una automatización hasta que las entidades principales designadas aprueben o rechacen la acción. Después de que se alcanza el número necesario de aprobaciones, se reanuda la automatización. Puede insertar el paso de aprobación en cualquier lugar de la sección `mainSteps` de su manual de procedimientos. 

**nota**  
Esta acción no admite automatizaciones de varias cuentas ni de regiones. El tiempo de espera predeterminado para esta acción es de 7 días (604 800 segundos) y el valor máximo es de 30 días (2 592 000 segundos). Puede limitar o ampliar el tiempo de espera mediante la especificación del parámetro `timeoutSeconds` para un paso `aws:approve`.

En el siguiente ejemplo, la acción `aws:approve` detiene temporalmente la automatización hasta que un aprobador la acepte o la rechace. Tras la aprobación, la automatización ejecuta un comando PowerShell sencillo. 

------
#### [ YAML ]

```
---
description: RunInstancesDemo1
schemaVersion: '0.3'
assumeRole: "{{ assumeRole }}"
parameters:
  assumeRole:
    type: String
  message:
    type: String
mainSteps:
- name: approve
  action: aws:approve
  timeoutSeconds: 1000
  onFailure: Abort
  inputs:
    NotificationArn: arn:aws:sns:us-east-2:12345678901:AutomationApproval
    Message: "{{ message }}"
    MinRequiredApprovals: 1
    Approvers:
    - arn:aws:iam::12345678901:user/AWS-User-1
- name: run
  action: aws:runCommand
  inputs:
    InstanceIds:
    - i-1a2b3c4d5e6f7g
    DocumentName: AWS-RunPowerShellScript
    Parameters:
      commands:
      - date
```

------
#### [ JSON ]

```
{
   "description":"RunInstancesDemo1",
   "schemaVersion":"0.3",
   "assumeRole":"{{ assumeRole }}",
   "parameters":{
      "assumeRole":{
         "type":"String"
      },
      "message":{
         "type":"String"
      }
   },
   "mainSteps":[
      {
         "name":"approve",
         "action":"aws:approve",
         "timeoutSeconds":1000,
         "onFailure":"Abort",
         "inputs":{
            "NotificationArn":"arn:aws:sns:us-east-2:12345678901:AutomationApproval",
            "Message":"{{ message }}",
            "MinRequiredApprovals":1,
            "Approvers":[
               "arn:aws:iam::12345678901:user/AWS-User-1"
            ]
         }
      },
      {
         "name":"run",
         "action":"aws:runCommand",
         "inputs":{
            "InstanceIds":[
               "i-1a2b3c4d5e6f7g"
            ],
            "DocumentName":"AWS-RunPowerShellScript",
            "Parameters":{
               "commands":[
                  "date"
               ]
            }
         }
      }
   ]
}
```

------

Puede aprobar o denegar las instancias de Automation pendientes de aprobación en la consola.

**Para aprobar o denegar las automatizaciones en espera**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. En el panel de navegación, elija **automatización**.

1. Elija la opción junto a una automatización cuyo estado sea **En espera**.  
![\[Acceso a la página Approve/Deny Automation (Aprobar/Denegar Automation)\]](http://docs.aws.amazon.com/es_es/systems-manager/latest/userguide/images/automation-approve-action-aws.png)

1. Elija **Aprobar/Denegar**.

1. Revise los detalles de Automation.

1. Elija **Aprobar** o **Denegar**, escriba un comentario opcional y, a continuación, elija **Enviar**.

**Ejemplo de entrada**

------
#### [ YAML ]

```
NotificationArn: arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest
Message: Please approve this step of the Automation.
MinRequiredApprovals: 3
Approvers:
- IamUser1
- IamUser2
- arn:aws:iam::12345678901:user/IamUser3
- arn:aws:iam::12345678901:role/IamRole
```

------
#### [ JSON ]

```
{
   "NotificationArn":"arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest",
   "Message":"Please approve this step of the Automation.",
   "MinRequiredApprovals":3,
   "Approvers":[
      "IamUser1",
      "IamUser2",
      "arn:aws:iam::12345678901:user/IamUser3",
      "arn:aws:iam::12345678901:role/IamRole"
   ]
}
```

------

NotificationArn  
El nombre de recurso de Amazon (ARN) de un tema de Amazon Simple Notification Service (Amazon SNS) para aprobaciones de Automation. Al especificar un paso `aws:approve` en un manual de procedimientos, Automation envía un mensaje a este tema con el cual se informa a las entidades principales que deben aprobar o rechazar un paso de Automation. El título del tema de Amazon SNS debe tener el prefijo “Automation”.  
Tipo: cadena  
Requerido: no

Mensaje  
La información que desea incluir en el tema de Amazon SNS cuando se envía la solicitud de aprobación. La longitud máxima del mensaje es de 4096 caracteres.   
Tipo: cadena  
Requerido: no

MinRequiredApprovals  
El número mínimo de aprobaciones requeridas para reanudar la automatización. Si no especifica un valor, el sistema utiliza el valor predeterminado de uno. El valor de este parámetro debe ser un número positivo. El valor de este parámetro no puede superar el número de aprobadores definidos por el parámetro `Approvers`.   
Tipo: entero  
Obligatorio: no

Approvers  
Una lista de entidades principales autenticadas de AWS que pueden aprobar o rechazar la acción. El número máximo de aprobadores es 10. Puede especificar entidades principales mediante cualquiera de los formatos siguientes:  
+ Un nombre de usuario
+ Un ARN de usuario
+ un ARN de rol de IAM
+ Un ARN de rol de asunción de IAM
Tipo: StringList  
Obligatorio: sí

EnhancedApprovals  
Esta entrada solo se utiliza para las plantillas de Change Manager. Una lista de las entidades principales autenticadas de AWS que pueden aprobar o rechazar la acción, el tipo de entidad principal de IAM y el número mínimo de aprobadores. A continuación, se muestra un ejemplo:  

```
schemaVersion: "0.3"
emergencyChange: false
autoApprovable: false
mainSteps:
    - name: ApproveAction1
    action: aws:approve
    timeoutSeconds: 604800
    inputs:
        Message: Please approve this change request
        MinRequiredApprovals: 3
        EnhancedApprovals:
        Approvers:
            - approver: John Stiles
            type: IamUser
            minRequiredApprovals: 0
            - approver: Ana Carolina Silva
            type: IamUser
            minRequiredApprovals: 0
            - approver: GroupOfThree
            type: IamGroup
            minRequiredApprovals: 0
            - approver: RoleOfTen
            type: IamRole
            minRequiredApprovals: 0
```
Tipo: StringList  
Obligatorio: sí

**Output**

ApprovalStatus  
El estado de aprobación del paso. El estado puede ser uno de los siguientes: Approved, Rejected o Waiting. "Waiting" significa que Automation está esperando la entrada de los aprobadores.  
Tipo: cadena

ApproverDecisions  
Un mapa JSON que incluye la decisión de aprobación de cada aprobador.  
Tipo: MapList

# `aws:assertAwsResourceProperty`: confirmar el estado de un recurso o un evento de AWS
<a name="automation-action-assertAwsResourceProperty"></a>

La acción `aws:assertAwsResourceProperty` le permite confirmar el estado de un recurso o de un evento específico para determinado paso de Automation.

**nota**  
La acción `aws:assertAwsResourceProperty` admite el reintento automático de limitación. Para obtener más información, consulte [Configurar el reintento automático para operaciones limitadas](automation-throttling-retry.md).

Para más ejemplos sobre cómo usar esta acción, consulte [Ejemplos adicionales de manuales de procedimientos](automation-document-examples.md).

**Input**  
Las entradas se definen con la operación de la API que elija. 

------
#### [ YAML ]

```
action: aws:assertAwsResourceProperty
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
  PropertySelector: Response object
  DesiredValues:
  - Desired property values
```

------
#### [ JSON ]

```
{
  "action": "aws:assertAwsResourceProperty",
  "inputs": {
    "Service":"The official namespace of the service",
    "Api":"The API operation or method name",
    "API operation inputs or parameters":"A value",
    "PropertySelector": "Response object",
    "DesiredValues": [
      "Desired property values"
    ]
  }
}
```

------

Servicio  
El espacio de nombres del Servicio de AWS que contiene la operación de la API que desea ejecutar. Por ejemplo, el espacio de nombres para Systems Manager es `ssm`. El espacio de nombres para Amazon EC2 es `ec2`. Puede ver una lista de espacios de nombres de Servicio de AWS admitidos en la sección [Available Services](https://docs.aws.amazon.com/cli/latest/reference/#available-services) (Servicios disponibles) de la *Referencia de los comandos de la AWS CLI*.  
Tipo: cadena  
Obligatorio: sí

API  
El nombre de la operación de la API que desea ejecutar. Puede ver las operaciones de la API (también llamadas métodos) si elige un servicio en el panel de navegación ubicado a la izquierda, en la siguiente página: [Services Reference](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Elija un método en la sección **Cliente** para el servicio que desea invocar. Por ejemplo, todas las operaciones de la API (los métodos) para Amazon Relational Database Service (Amazon RDS) se indican en la siguiente página: [métodos de Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Tipo: cadena  
Obligatorio: sí

Entradas de la operación de la API  
Una o más entradas de la operación de la API. Puede ver las entradas disponibles (también llamadas parámetros) eligiendo un servicio en el panel de navegación izquierdo en la siguiente página de [referencia de servicios](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Elija un método en la sección **Cliente** para el servicio que desea invocar. Por ejemplo, todos los métodos para Amazon RDS se indican en la siguiente página: [métodos de Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). Elija el método [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) y desplácese hacia abajo para ver los parámetros disponibles, como, por ejemplo, **DBInstanceIdentifier**, **Name** y **Values**. Utilice el formato siguiente para especificar más de una entrada.  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Tipo: se determina a partir de la operación de la API elegida  
Obligatorio: sí

PropertySelector  
El elemento JSONPath a un atributo específico en el objeto de respuesta. Puede ver los objetos de respuesta eligiendo un servicio en el panel de navegación izquierdo en la siguiente página de [referencia de servicios](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Elija un método en la sección **Cliente** para el servicio que desea invocar. Por ejemplo, todos los métodos para Amazon RDS se indican en la siguiente página: [métodos de Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). Elija el método [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) y desplácese hasta la sección **Response Structure (Estructura de respuesta)**. **DBInstances** aparece como un objeto de respuesta.  
Tipo: cadena  
Obligatorio: sí

DesiredValues  
El estado previsto o el estado en el que continuará la automatización. Si especifica un valor booleano, debe utilizar una letra mayúscula como Verdadero o Falso.  
Tipo: StringList  
Obligatorio: sí

# `aws:branch`: ejecutar pasos de automatización condicionales
<a name="automation-action-branch"></a>

La acción `aws:branch` le permite crear una automatización dinámica que evalúa diferentes elecciones en un solo paso y, a continuación, salta a otro paso en el manual de procedimientos en función de los resultados de dicha evaluación. 

Cuando se especifica la acción `aws:branch` para un paso, se especifican `Choices` que la automatización debe evaluar. Las `Choices` pueden basarse en un valor que especificó en la sección `Parameters` del manual de procedimientos o en un valor dinámico generado como la salida del paso anterior. La automatización evalúa cada elección mediante una expresión booleana. Si la primera elección es true, la automatización saltará al paso designado para esa elección. Si la primera elección es false, la automatización evaluará la siguiente elección. La automatización sigue evaluando cada elección hasta que procese una elección true. A continuación, la automatización saltará al paso designado para la elección true.

Si ninguna de las elecciones es true, la automatización comprueba si el paso contiene un valor `default`. Un valor predeterminado define un paso al cual la automatización debe saltar si ninguna de las elecciones es true. Si no se especifica un valor `default` para el paso, la automatización procesará el siguiente paso en el manual de procedimientos.

La acción `aws:branch` admite evaluaciones de elecciones complejas mediante una combinación de operadores `And`, `Not` y `Or`. Para obtener más información acerca de cómo utilizar `aws:branch`, así como ejemplos de manuales de procedimientos y ejemplos que utilizan diferentes operadores, consulte [Uso de instrucciones condicionales en manuales de procedimientos](automation-branch-condition.md).

**Input**  
Especifique una o más `Choices` en un paso. Las `Choices` pueden basarse en un valor que especificó en la sección `Parameters` del manual de procedimientos o en un valor dinámico generado como la salida del paso anterior. A continuación se muestra un ejemplo de YAML que evalúa un parámetro.

```
mainSteps:
- name: chooseOS
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runWindowsCommand
      Variable: "{{Name of a parameter defined in the Parameters section. For example: OS_name}}"
      StringEquals: windows
    - NextStep: runLinuxCommand
      Variable: "{{Name of a parameter defined in the Parameters section. For example: OS_name}}"
      StringEquals: linux
    Default:
      sleep3
```

A continuación se muestra un ejemplo de YAML que evalúa la salida de un paso anterior.

```
mainSteps:
- name: chooseOS
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runPowerShellCommand
      Variable: "{{Name of a response object. For example: GetInstance.platform}}"
      StringEquals: Windows
    - NextStep: runShellCommand
      Variable: "{{Name of a response object. For example: GetInstance.platform}}"
      StringEquals: Linux
    Default:
      sleep3
```

Choices  
Una o más expresiones que la Automation debe evaluar a la hora de determinar el siguiente paso que procesar. Las elecciones se evalúan mediante una expresión booleana. Cada elección debe definir las siguientes opciones:  
+ **NextStep**: el siguiente paso en el manual de procedimientos que se debe procesar si la elección designada es true.
+ **Variable**: especifique el nombre de un parámetro que se define en la sección `Parameters` del manual de procedimientos. O bien, especifique un objeto de salida de un paso anterior del manual de procedimientos. Para obtener más información sobre cómo crear variables para `aws:branch`, consulte [Acerca de la creación de la variable de salida](automation-branch-condition.md#branch-action-output).
+ **Operation**: los criterios utilizados para evaluar la elección. La acción `aws:branch` admite las siguientes operaciones:

**Operaciones de cadena**
  + StringEquals
  + EqualsIgnoreCase
  + StartsWith
  + EndsWith
  + Contiene

**Numeric operations**
  + NumericEquals
  + NumericGreater
  + NumericLesser
  + NumericGreaterOrEquals
  + NumericLesser
  + NumericLesserOrEquals

**Operación booleana**
  + BooleanEquals
**importante**  
Al crear un manual de procedimientos, el sistema valida cada operación del manual. Si no se admite una operación, el sistema devuelve un error cuando intenta crear el manual de procedimientos.

Predeterminado  
El nombre de un paso al que debe saltar la automatización si ninguna de las `Choices` es true.  
Tipo: cadena  
Requerido: no

**nota**  
La acción `aws:branch` admite los operadores `And`, `Or` y `Not`. Para ver ejemplos de `aws:branch` que utilizan operadores, consulte [Uso de instrucciones condicionales en manuales de procedimientos](automation-branch-condition.md).

# `aws:changeInstanceState`: cambiar o confirmar el estado de la instancia
<a name="automation-action-changestate"></a>

Cambia o confirma el estado de la instancia.

Esta acción se puede utilizar en el modo de confirmación (no ejecuta la API para cambiar el estado, sino para comprobar que la instancia se encuentre en el estado deseado). Para utilizar el modo de aserción, establezca el parámetro `CheckStateOnly` en true. Este modo es útil al ejecutar el comando Sysprep en Windows Server, que es un comando asíncrono que puede ejecutar en segundo plano durante mucho tiempo. Puede asegurarse de que la instancia esté detenida antes de crear una Amazon Machine Image (AMI).

**nota**  
El valor del tiempo de espera predeterminado para esta acción es de 3600 segundos (una hora). Puede limitar o ampliar el tiempo de espera mediante la especificación del parámetro `timeoutSeconds` para un paso `aws:changeInstanceState`.

**nota**  
La acción `aws:changeInstanceState` admite el reintento automático de limitación. Para obtener más información, consulte [Configurar el reintento automático para operaciones limitadas](automation-throttling-retry.md).

**Input**

------
#### [ YAML ]

```
name: stopMyInstance
action: aws:changeInstanceState
maxAttempts: 3
timeoutSeconds: 3600
onFailure: Abort
inputs:
  InstanceIds:
  - i-1234567890abcdef0
  CheckStateOnly: true
  DesiredState: stopped
```

------
#### [ JSON ]

```
{
    "name":"stopMyInstance",
    "action": "aws:changeInstanceState",
    "maxAttempts": 3,
    "timeoutSeconds": 3600,
    "onFailure": "Abort",
    "inputs": {
        "InstanceIds": ["i-1234567890abcdef0"],
        "CheckStateOnly": true,
        "DesiredState": "stopped"
    }
}
```

------

InstanceIds  
Los ID de las instancias.  
Tipo: StringList  
Obligatorio: sí

CheckStateOnly  
Si es false, establece el estado de la instancia en el valor deseado. Si es true, confirma el estado deseado mediante sondeo.  
Predeterminado: `false`  
Tipo: Booleano  
Obligatorio: no

DesiredState  
El estado deseado. Cuando se establece en `running`, esta acción espera hasta que el estado de Amazon EC2 sea `Running`, el estado de la instancia sea `OK` y el estado del sistema sea `OK` antes de completarse.  
Tipo: cadena  
Valores válidos: `running` \$1 `stopped` \$1 `terminated`  
Obligatorio: sí

Force  
Si se establece, obliga a las instancias a detenerse. Las instancias no tienen la oportunidad de vaciar las memorias cachés o los metadatos de los sistemas de archivos. Si utiliza esta opción, debe realizar los procedimientos de comprobación y reparación del sistema de archivos. Esta opción no se recomienda para las instancias EC2 de Windows Server.  
Tipo: Booleano  
Obligatorio: no

AdditionalInfo  
Reservado.  
Tipo: cadena  
Requerido: no

**Output**  
Ninguno

# `aws:copyImage` – copiar o cifrar una Amazon Machine Image
<a name="automation-action-copyimage"></a>

Copia una Amazon Machine Image (AMI) de cualquier Región de AWS en la región actual. Esta acción también puede cifrar la nueva AMI.

**nota**  
La acción `aws:copyImage` admite el reintento automático de limitación. Para obtener más información, consulte [Configurar el reintento automático para operaciones limitadas](automation-throttling-retry.md).

**Input**  
Esta acción admite la mayoría de los parámetros `CopyImage`. Para obtener más información, consulte [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html).

En el siguiente ejemplo, se crea una copia de una AMI en la región de Seúl (`SourceImageID`: ami-0fe10819. `SourceRegion`: ap-northeast-2). La nueva AMI se copia en la región en la que inició la acción de Automation. La AMI copiada se cifrará porque la marca `Encrypted` opcional se ha configurado en `true`.

------
#### [ YAML ]

```
name: createEncryptedCopy
action: aws:copyImage
maxAttempts: 3
onFailure: Abort
inputs:
  SourceImageId: ami-0fe10819
  SourceRegion: ap-northeast-2
  ImageName: Encrypted Copy of LAMP base AMI in ap-northeast-2
  Encrypted: true
```

------
#### [ JSON ]

```
{   
    "name": "createEncryptedCopy",
    "action": "aws:copyImage",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "SourceImageId": "ami-0fe10819",
        "SourceRegion": "ap-northeast-2",
        "ImageName": "Encrypted Copy of LAMP base AMI in ap-northeast-2",
        "Encrypted": true
    }   
}
```

------

SourceRegion  
La región en la que se encuentra la AMI de origen.  
Tipo: cadena  
Obligatorio: sí

SourceImageId  
El ID de la AMI que se copiará de la región de origen.  
Tipo: cadena  
Obligatorio: sí

ImageName  
El nombre de la nueva imagen.  
Tipo: cadena  
Obligatorio: sí

ImageDescription  
Una descripción de la imagen de destino.  
Tipo: cadena  
Requerido: no

Encriptado  
Cifre la de destino AMI.  
Tipo: Booleano  
Obligatorio: no

KmsKeyId  
El nombre de recurso de Amazon (ARN) completo de la AWS KMS key que se utilizará al cifrar las instantáneas de una imagen durante una operación de copia. Para obtener más información, consulte [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_copyimage.html).  
Tipo: cadena  
Requerido: no

ClientToken  
Un identificador con distinción entre mayúsculas y minúsculas único que proporciona para garantizar la idempotencia de la solicitud. Para obtener más información, consulte [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_copyimage.html).  
Tipo: cadena  
Requerido: noOutput

ImageId  
El ID de la imagen copiada.

ImageState  
El estado de la imagen copiada.  
Valores válidos: `available` \$1 `pending` \$1 `failed`

# `aws:createImage`: crear una Amazon Machine Image
<a name="automation-action-create"></a>

Crea una Amazon Machine Image (AMI) a partir de una instancia que está en ejecución, deteniéndose o detenida, y sondea para que `ImageState` esté `available`.

**nota**  
La acción `aws:createImage` admite el reintento automático de limitación. Para obtener más información, consulte [Configurar el reintento automático para operaciones limitadas](automation-throttling-retry.md).

**Input**  
Esta acción es compatible con los siguientes parámetros de `CreateImage`. Para obtener más información, consulte [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html).

------
#### [ YAML ]

```
name: createMyImage
action: aws:createImage
maxAttempts: 3
onFailure: Abort
inputs:
  InstanceId: i-1234567890abcdef0
  ImageName: AMI Created on{{global:DATE_TIME}}
  NoReboot: true
  ImageDescription: My newly created AMI
```

------
#### [ JSON ]

```
{
    "name": "createMyImage",
    "action": "aws:createImage",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "InstanceId": "i-1234567890abcdef0",
        "ImageName": "AMI Created on{{global:DATE_TIME}}",
        "NoReboot": true,
        "ImageDescription": "My newly created AMI"
    }
}
```

------

InstanceId  
El ID de la instancia.  
Tipo: cadena  
Obligatorio: sí

ImageName  
El nombre de la imagen.  
Tipo: cadena  
Obligatorio: sí

ImageDescription  
Una descripción de la imagen.  
Tipo: cadena  
Requerido: no

NoReboot  
Un literal booleano.  
De forma predeterminada, Amazon Elastic Compute Cloud (Amazon EC2) intenta apagar y reiniciar la instancia antes de crear la imagen. Si la opción **No reboot** (Sin reiniciar) se establece en `true`, Amazon EC2 no apaga la instancia antes de crear la imagen. Cuando se utiliza esta opción, no se puede garantizar la integridad del sistema de archivos en la imagen creada.   
Si no desea que la instancia se ejecute después de crear una AMI a partir de ella, primero debe usar la acción [`aws:changeInstanceState`: cambiar o confirmar el estado de la instancia](automation-action-changestate.md) para detener la instancia y, a continuación, usar la acción `aws:createImage` con la opción **NoReboot** establecida en `true`.  
Tipo: Booleano  
Obligatorio: no

BlockDeviceMappings  
Los dispositivos de bloques para la instancia.  
Tipo: mapa  
Obligatorio: noOutput

ImageId  
El ID de la imagen recién creada.  
Tipo: cadena

ImageState  
El estado actual de la imagen. Si el estado está disponible, la imagen se registra correctamente y se puede utilizar para iniciar una instancia.  
Tipo: cadena

# `aws:createStack`: crear una pila de CloudFormation
<a name="automation-action-createstack"></a>

Crea una pila de AWS CloudFormation a partir de una plantilla.

**nota**  
La acción `aws:createStack` admite el reintento automático de limitación. Para obtener más información, consulte [Configurar el reintento automático para operaciones limitadas](automation-throttling-retry.md).

Para obtener información adicional acerca de la creación de pilas de CloudFormation, consulte [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html) en la *Referencia de la API de AWS CloudFormation*. 

**Input**

------
#### [ YAML ]

```
name: makeStack
action: aws:createStack
maxAttempts: 1
onFailure: Abort
inputs:
  Capabilities:
  - CAPABILITY_IAM
  StackName: myStack
  TemplateURL: http://s3.amazonaws.com/amzn-s3-demo-bucket/myStackTemplate
  TimeoutInMinutes: 5
  Parameters:
    - ParameterKey: LambdaRoleArn
      ParameterValue: "{{LambdaAssumeRole}}"
    - ParameterKey: createdResource
      ParameterValue: createdResource-{{automation:EXECUTION_ID}}
```

------
#### [ JSON ]

```
{
    "name": "makeStack",
    "action": "aws:createStack",
    "maxAttempts": 1,
    "onFailure": "Abort",
    "inputs": {
        "Capabilities": [
            "CAPABILITY_IAM"
        ],
        "StackName": "myStack",
        "TemplateURL": "http://s3.amazonaws.com/amzn-s3-demo-bucket/myStackTemplate",
        "TimeoutInMinutes": 5,
        "Parameters": [
          {
            "ParameterKey": "LambdaRoleArn",
            "ParameterValue": "{{LambdaAssumeRole}}"
          },
          {
            "ParameterKey": "createdResource",
            "ParameterValue": "createdResource-{{automation:EXECUTION_ID}}"
          }
    }
}
```

------

Capacidades  
Una lista de valores que especifica para que CloudFormation pueda crear determinadas pilas. Algunas plantillas de pila incluyen recursos que pueden afectar los permisos de Cuenta de AWS. Para estas pilas, debe reconocer explícitamente sus capacidades especificando este parámetro.   
Los valores válidos son `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM` y `CAPABILITY_AUTO_EXPAND`.   
**CAPABILITY\$1IAM y CAPABILITY\$1NAMED\$1IAM**  
Si tiene recursos de IAM, puede especificar cualquiera de las dos capacidades. Si tiene recursos de IAM con nombres personalizados, debe especificar `CAPABILITY_NAMED_IAM`. Si no especifica este parámetro, esta acción devuelve un error `InsufficientCapabilities`. Los siguientes recursos requieren que especifique `CAPABILITY_IAM` o `CAPABILITY_NAMED_IAM`.
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
Si su plantilla de pila contiene estos recursos, le recomendamos que revise todos los permisos asociados con ellos y edite sus permisos, si es necesario.   
Para obtener más información, consulte [Reconocimiento de recursos de IAM en plantillas de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).   
**CAPABILITY\$1AUTO\$1EXPAND**  
Algunas plantillas contienen macros. Las macros realizan procesamiento personalizado en las plantillas; esto puede incluir desde acciones sencillas como operaciones de búsqueda y reemplazo hasta amplias transformaciones de plantillas completas. Debido a esto, los usuarios suelen crear un conjunto de cambios a partir de la plantilla procesada, de modo que puedan revisar los cambios resultantes de las macros antes de proceder a crear la pila. Si la plantilla de pila contiene una o más macros y decide crear una pila directamente a partir de la plantilla procesada, sin revisar primero los cambios resultantes en un conjunto de cambios, deberá confirmar esta prestación. 
Para obtener más información, consulte [Uso de macros de AWS CloudFormation para realizar un procesamiento personalizado en plantillas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html) en la *Guía del usuario de AWS CloudFormation*.  
Tipo: matriz de cadenas  
Valores válidos: `CAPABILITY_IAM | CAPABILITY_NAMED_IAM | CAPABILITY_AUTO_EXPAND`  
Obligatorio: no

ClientRequestToken  
Identificador exclusivo de esta solicitud CreateStack. Especifique este token si establece maxAttempts en este paso en un valor mayor que 1. Al especificar este token, CloudFormation sabe que no está intentando crear una pila nueva con el mismo nombre.  
Tipo: cadena  
Requerido: no  
Limitaciones de longitud: longitud mínima de 1. Longitud máxima de 128.  
Patrón: [a-zA-Z0-9][-a-zA-Z0-9]\$1

DisableRollback  
Se configura en `true` para desactivar la restauración de la pila si se produce un error al crearla.  
Condicional: puede especificar el parámetro `DisableRollback` o `OnFailure`, pero no ambos.   
Predeterminado: `false`  
Tipo: Booleano  
Obligatorio: no

NotificationARNs  
Los ARN de temas de Amazon Simple Notification Service (Amazon SNS) utilizados para publicar eventos relacionados con la pila. Puede encontrar ARN de temas de SNS con la consola de Amazon SNS, [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home).   
Tipo: matriz de cadenas  
Miembros de la matriz: número máximo de 5 elementos.  
Obligatorio: no

OnFailure  
Determina la acción que se realizará si se produce un error en la creación de la pila. Debe especificar `DO_NOTHING`, `ROLLBACK` o `DELETE`.  
Condicional: puede especificar el parámetro `OnFailure` o `DisableRollback`, pero no ambos.   
Valor predeterminado: `ROLLBACK`  
Tipo: cadena  
Valores válidos:` DO_NOTHING | ROLLBACK | DELETE`  
Obligatorio: no

Parameters  
Una lista de estructuras `Parameter` que especifican los parámetros de entrada de la pila. Para obtener más información, consulte el tipo de datos [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html).   
Tipo: matriz de objetos [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)   
Obligatorio: no

ResourceTypes  
Los tipos de recurso de plantilla para los que tiene permiso para trabajar con ellos para esta acción de creación de la pila. Por ejemplo: `AWS::EC2::Instance`, `AWS::EC2::*` o `Custom::MyCustomInstance`. Utilice la siguiente sintaxis para describir los tipos de recurso de plantilla.  
+ Para todos los recursos de AWS:

  ```
  AWS::*
  ```
+ Para todos los recursos personalizados:

  ```
  Custom::*
  ```
+ Para un recurso personalizado específico:

  ```
  Custom::logical_ID
  ```
+ Para todos los recursos de un Servicio de AWS concreto:

  ```
  AWS::service_name::*
  ```
+ Para un recurso de AWS específico:

  ```
  AWS::service_name::resource_logical_ID
  ```
Si la lista de tipos de recursos no incluye un recurso que está va a crear, se produce un error en la creación de la pila. De forma predeterminada, CloudFormation concede permisos a todos los tipos de recursos. IAM utiliza este parámetro para las claves de condición específicas de CloudFormation en las políticas de IAM. Para obtener más información, consulte [Control del acceso con AWS Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).   
Tipo: matriz de cadenas  
Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 256 caracteres.  
Obligatorio: no

RoleARN  
El nombre de recurso de Amazon (ARN) de un rol de (IAM) que CloudFormation asume al crear la pila. CloudFormation utiliza las credenciales del rol para realizar llamadas en su nombre. CloudFormation siempre utiliza este rol para todas las operaciones futuras en la pila. Siempre que los usuarios tengan permiso para operar en la pila, CloudFormation utiliza este rol, aunque los usuarios no tengan permiso para transmitirlo. Asegúrese de que el rol concede la menor cantidad de privilegios.   
Si no especifica un valor, CloudFormation utiliza el rol que se había asociado anteriormente a la pila. Si no hay ningún rol disponible, CloudFormation utiliza una sesión temporal que se genera a partir de sus credenciales de usuario.   
Tipo: cadena  
Limitaciones de longitud: longitud mínima de 20. La longitud máxima es de 2048 caracteres.  
Obligatorio: no

StackName  
El nombre que está asociado a la pila. El nombre debe ser único en la región en la que se crea la pila.  
El nombre de una pila solo puede contener caracteres alfanuméricos (con distinción de mayúsculas y minúsculas) y guiones. Debe comenzar con un carácter alfabético y no puede tener más de 128 caracteres. 
Tipo: cadena  
Obligatorio: sí

StackPolicyBody  
Estructura que contiene el cuerpo de políticas de la pila. Para obtener más información, consulte [Evitar actualizaciones en los recursos de la pila](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html).  
Condicional: puede especificar el parámetro `StackPolicyBody` o `StackPolicyURL`, pero no ambos.   
Tipo: cadena  
Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 16384 caracteres.  
Obligatorio: no

StackPolicyURL  
Ubicación de un archivo que contiene la política de la pila. La URL debe apuntar a una política ubicada en un bucket de &S3; en la misma región que el stack. El tamaño de archivo máximo permitido para la política de la pila es de 16 KB.  
Condicional: puede especificar el parámetro `StackPolicyBody` o `StackPolicyURL`, pero no ambos.   
Tipo: cadena  
Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 1350 caracteres.  
Obligatorio: no

Etiquetas  
Pares clave-valor para asociar con este stack. CloudFormation también propaga estas etiquetas a los recursos que se crean en la pila. Puede especificar un número máximo de 10 etiquetas.   
Tipo: matriz de objetos [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Tag.html)   
Obligatorio: no

TemplateBody  
Estructura que contiene el cuerpo de la plantilla con una longitud mínima de 1 byte y una longitud máxima de 51.200 bytes. Para obtener más información, consulte [Anatomía de la plantilla](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html).   
Condicional: puede especificar el parámetro `TemplateBody` o `TemplateURL`, pero no ambos.   
Tipo: cadena  
Limitaciones de longitud: longitud mínima de 1.  
Obligatorio: no

TemplateURL  
Ubicación de un archivo que contiene el cuerpo de la plantilla. La URL debe apuntar a una plantilla que se encuentre en un bucket de S3. El tamaño máximo permitido para la plantilla es de 460.800 bytes. Para obtener más información, consulte [Anatomía de la plantilla](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html).   
Condicional: puede especificar el parámetro `TemplateBody` o `TemplateURL`, pero no ambos.   
Tipo: cadena  
Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 1024 caracteres.  
Obligatorio: no

TimeoutInMinutes  
Periodo de tiempo que puede transcurrir antes de que el estado de la pila se convierta en `CREATE_FAILED`. Si no se ha establecido `DisableRollback` o se ha establecido en `false`, se restaurará la pila.   
Tipo: número entero  
Rango válido: valor mínimo de 1.  
Obligatorio: no

## Salidas
<a name="automation-action-createstack-output"></a>

StackId  
Identificador único de la pila.  
Tipo: cadena

StackStatus  
Estado actual de la pila.  
Tipo: cadena  
Valores válidos: `CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE | REVIEW_IN_PROGRESS`  
Obligatorio: sí

StackStatusReason  
Mensaje de éxito o error asociado con el estado de la pila.  
Tipo: cadena  
Requerido: no  
Para obtener más información, consulte [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html).

## Consideraciones de seguridad
<a name="automation-action-createstack-security"></a>

Para poder usar la acción `aws:createStack`, debe asignar la siguiente política al rol de asunción de Automation de IAM. Para obtener más información sobre el rol de asunción, consulte [Tarea 1: crear un rol de servicio para Automation](automation-setup-iam.md#create-service-role). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "sqs:*",
            "cloudformation:CreateStack",
            "cloudformation:DescribeStacks"
         ],
         "Resource":"*"
      }
   ]
}
```

------

# `aws:createTags`: crear etiquetas para recursos de AWS
<a name="automation-action-createtag"></a>

Crea etiquetas nuevas para instancias de Amazon Elastic Compute Cloud (Amazon EC2) o instancias administradas de AWS Systems Manager.

**nota**  
La acción `aws:createTags` admite el reintento automático de limitación. Para obtener más información, consulte [Configurar el reintento automático para operaciones limitadas](automation-throttling-retry.md).

**Input**  
Esta acción admite la mayoría de los parámetros `CreateTags` de Amazon EC2 y `AddTagsToResource` de Systems Manager. Para obtener más información, consulte [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_createtags.html) y [AddTagsToResource](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_addtagstoresource.html).

En el siguiente ejemplo, se muestra cómo etiquetar una Amazon Machine Image (AMI) y una instancia como recursos de producción para un determinado departamento.

------
#### [ YAML ]

```
name: createTags
action: aws:createTags
maxAttempts: 3
onFailure: Abort
inputs:
  ResourceType: EC2
  ResourceIds:
  - ami-9a3768fa
  - i-02951acd5111a8169
  Tags:
  - Key: production
    Value: ''
  - Key: department
    Value: devops
```

------
#### [ JSON ]

```
{
    "name": "createTags",
    "action": "aws:createTags",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "ResourceType": "EC2",
        "ResourceIds": [
            "ami-9a3768fa",
            "i-02951acd5111a8169"
        ],
        "Tags": [
            {
                "Key": "production",
                "Value": ""
            },
            {
                "Key": "department",
                "Value": "devops"
            }
        ]
    }
}
```

------

ResourceIds  
Los ID de los recursos que se van a etiquetar. Si el tipo de recurso no es “EC2”, este campo solo puede contener un único elemento.  
Tipo: lista de cadenas  
Obligatorio: sí

Etiquetas  
Las etiquetas para asociarlas con los recursos.  
Tipo: lista de mapas  
Obligatorio: sí

ResourceType  
El tipo de los recursos que se van a etiquetar. Si no se suministra, se usa el valor predeterminado "EC2".  
Tipo: cadena  
Requerido: no  
Valores válidos: `EC2` \$1 `ManagedInstance` \$1 `MaintenanceWindow` \$1 `Parameter`

**Output**  
Ninguno

# `aws:deleteImage`: eliminar una Amazon Machine Image
<a name="automation-action-delete"></a>

Elimina la Amazon Machine Image (AMI) especificada y todas las instantáneas relacionadas.

**nota**  
La acción `aws:deleteImage` admite el reintento automático de limitación. Para obtener más información, consulte [Configurar el reintento automático para operaciones limitadas](automation-throttling-retry.md).

**Input**  
Esta acción solo admite un parámetro. Para obtener más información, consulte la documentación de [DeregisterImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeregisterImage.html) y [DeleteSnapshot](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSnapshot.html).

------
#### [ YAML ]

```
name: deleteMyImage
action: aws:deleteImage
maxAttempts: 3
timeoutSeconds: 180
onFailure: Abort
inputs:
  ImageId: ami-12345678
```

------
#### [ JSON ]

```
{
    "name": "deleteMyImage",
    "action": "aws:deleteImage",
    "maxAttempts": 3,
    "timeoutSeconds": 180,
    "onFailure": "Abort",
    "inputs": {
        "ImageId": "ami-12345678"
    }
}
```

------

ImageId  
El ID de la imagen que se va a eliminar.  
Tipo: cadena  
Obligatorio: sí

**Output**  
Ninguno

# `aws:deleteStack`: eliminar una pila de CloudFormation
<a name="automation-action-deletestack"></a>

Elimina una pila de AWS CloudFormation.

**nota**  
La acción `aws:deleteStack` admite el reintento automático de limitación. Para obtener más información, consulte [Configurar el reintento automático para operaciones limitadas](automation-throttling-retry.md).

**Input**

------
#### [ YAML ]

```
name: deleteStack
action: aws:deleteStack
maxAttempts: 1
onFailure: Abort
inputs:
  StackName: "{{stackName}}"
```

------
#### [ JSON ]

```
{
   "name":"deleteStack",
   "action":"aws:deleteStack",
   "maxAttempts":1,
   "onFailure":"Abort",
   "inputs":{
      "StackName":"{{stackName}}"
   }
}
```

------

ClientRequestToken  
Un identificador único para esta solicitud `DeleteStack`. Especifique este token si tiene previsto intentar completar las solicitudes otra vez para que CloudFormation sepa que no está intentando eliminar una pila con el mismo nombre. Puede intentar completar las solicitudes `DeleteStack` otra vez para verificar que CloudFormation las ha recibido.  
Tipo: cadena  
Limitaciones de longitud: longitud mínima de 1. Longitud máxima de 128.  
Patrón: [a-zA-Z][-a-zA-Z0-9]\$1  
Obligatorio: no

RetainResources.member.N  
Esta entrada solo se aplica a las pilas que se encuentran en un estado `DELETE_FAILED`. Una lista de los ID de recurso lógico en el caso de los recursos que desea conservar. Durante la eliminación, CloudFormation elimina la pila, pero no los recursos que se conservan.  
La retención de recursos resulta útil cuando no se puede eliminar un recurso, como un bucket de &S3; vacío, pero desea eliminar el stack.  
Tipo: matriz de cadenas  
Obligatorio: no

RoleARN  
El nombre de recurso de Amazon (ARN) de un rol de AWS Identity and Access Management (IAM) que CloudFormation asume para crear la pila. CloudFormation utiliza las credenciales del rol para realizar llamadas en su nombre. CloudFormation siempre utiliza este rol para todas las operaciones futuras en la pila. Siempre que los usuarios tengan permiso para operar en la pila, CloudFormation utiliza este rol, aunque los usuarios no tengan permiso para transmitirlo. Asegúrese de que el rol concede la menor cantidad de privilegios.   
Si no especifica un valor, CloudFormation utiliza el rol que se había asociado anteriormente a la pila. Si no hay ningún rol disponible, CloudFormation utiliza una sesión temporal que se genera a partir de sus credenciales de usuario.   
Tipo: cadena  
Limitaciones de longitud: longitud mínima de 20. La longitud máxima es de 2048 caracteres.  
Obligatorio: no

StackName  
El nombre o el ID de pila único que está asociado con la pila.  
Tipo: cadena  
Obligatorio: sí

## Consideraciones de seguridad
<a name="automation-action-deletestack-security"></a>

Para poder usar la acción `aws:deleteStack`, debe asignar la siguiente política al rol de asunción de Automation de IAM. Para obtener más información sobre el rol de asunción, consulte [Tarea 1: crear un rol de servicio para Automation](automation-setup-iam.md#create-service-role). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "sqs:*",
            "cloudformation:DeleteStack",
            "cloudformation:DescribeStacks"
         ],
         "Resource":"*"
      }
   ]
}
```

------

# `aws:executeAutomation`: ejecutar otra automatización
<a name="automation-action-executeAutomation"></a>

Ejecuta una automatización secundaria mediante la llamada a un manual de procedimientos secundario. Con esta acción, puede crear manuales de procedimientos para sus operaciones más comunes y puede referenciar esos manuales durante una automatización. Esta acción puede simplificar los manuales de procedimientos, ya que se elimina la necesidad de duplicar pasos en manuales similares.

La automatización secundaria se ejecuta en el contexto del usuario que ha iniciado la automatización principal. Esto significa que la automatización secundaria utiliza el mismo rol o usuario de AWS Identity and Access Management (IAM) que el usuario que inició la primera automatización.

**importante**  
Si especifica parámetros en una automatización secundaria que use un rol de asunción (un rol que usa la política iam:passRole), el usuario o el rol que hayan iniciado la automatización principal deben tener permiso para transmitir el rol de asunción especificado en la automatización secundaria. Para obtener más información sobre la configuración de un rol de asunción para Automation, consulte [Cree los roles de servicio para la automatización mediante la consola](automation-setup-iam.md).

**Input**

------
#### [ YAML ]

```
name: Secondary_Automation
action: aws:executeAutomation
maxAttempts: 3
timeoutSeconds: 3600
onFailure: Abort
inputs:
  DocumentName: secondaryAutomation
  RuntimeParameters:
    instanceIds:
    - i-1234567890abcdef0
```

------
#### [ JSON ]

```
{
   "name":"Secondary_Automation",
   "action":"aws:executeAutomation",
   "maxAttempts":3,
   "timeoutSeconds":3600,
   "onFailure":"Abort",
   "inputs":{
      "DocumentName":"secondaryAutomation",
      "RuntimeParameters":{
         "instanceIds":[
            "i-1234567890abcdef0"
         ]
      }
   }
}
```

------

DocumentName  
El nombre del manual de procedimientos secundario que se ejecutará durante el paso. Para ver manuales de procedimientos en la misma Cuenta de AWS, especifique el nombre del manual. Para ver manuales de procedimientos compartidos desde una Cuenta de AWS diferente, especifique el nombre de recurso de Amazon (ARN) del manual. Para obtener información acerca del uso de manuales de procedimientos compartidos, consulte [Uso de documentos de SSM compartidos](documents-ssm-sharing.md#using-shared-documents).  
Tipo: cadena  
Obligatorio: sí

DocumentVersion  
La versión del manual de procedimientos secundario que se ejecutará. Si no se especifica, Automation ejecuta la versión predeterminada del manual de procedimientos.  
Tipo: cadena  
Requerido: no

MaxConcurrency  
El número máximo de destinos que pueden ejecutar esta tarea en paralelo. Puede especificar un número, como 10, o un porcentaje, como 10 %.  
Tipo: cadena  
Requerido: no

MaxErrors  
Número de errores permitidos antes de que el sistema deje de ejecutar la automatización en destinos adicionales. Puede especificar un número absoluto de errores, por ejemplo, 10 o un porcentaje del destino definido, por ejemplo, el 10 %. Si especifica 3, por ejemplo, el sistema dejará de ejecutar la automatización una vez que se reciba el cuarto error. Si especifica 0, el sistema dejará de ejecutar la automatización en otros destinos una vez que se reciba el primer resultado de error. Si ejecuta una automatización en 50 recursos y establece `MaxErrors` al 10 %, el sistema dejará de ejecutar la automatización en destinos adicionales una vez que se reciba el sexto error.  
Las automatizaciones que ya se están ejecutando cuando se alcanza un umbral de `MaxErrors` tienen permiso para completarse, pero es posible que algunas de ellas también presenten un error. Si necesita asegurarse de que no se produzcan más errores en las automatizaciones más allá del valor de `MaxErrors` especificado, establezca `MaxConcurrency` en 1 de modo que las automatizaciones se procesen de una en una.  
Tipo: cadena  
Requerido: no

RuntimeParameters  
Parámetros obligatorios para el manual de procedimientos secundario. El mapeo usa el formato siguiente: \$1"parámetro1" : "valor1", "parámetro2" : "valor2" \$1  
Tipo: mapa  
Obligatorio: no

Etiquetas  
Metadatos opcionales que se asignan a un recurso. Puede especificar un máximo de cinco etiquetas para una automatización.  
Tipo: MapList  
Obligatorio: no

TargetLocations  
Una ubicación es una combinación de Regiones de AWS o Cuentas de AWS en las que desea ejecutar la automatización. Se debe especificar 1 elemento como mínimo y 100 como máximo. Al especificar un valor para este parámetro, las salidas no se devuelven a la automatización principal. Si es necesario, debe realizar llamadas posteriores a las operaciones de la API para recuperar la salida de las automatizaciones secundarias.  
Tipo: MapList  
Obligatorio: no

TargetMaps  
Lista de asignaciones de clave-valor de los parámetros del documento para indicar los recursos de destino. Tanto `Targets` como `TargetMaps` no se pueden especificar juntos.   
Tipo: MapList  
Obligatorio: no

TargetParameterName  
Nombre del parámetro utilizado como el recurso de destino para la automatización con frecuencia controlada. Es obligatorio si especifica `Targets`.  
Tipo: cadena  
Requerido: no

Targets  
Lista de asignaciones de clave-valor para indicar recursos como destino. Es obligatorio si especifica `TargetParameterName`.  
Tipo: MapList  
Obligatorio: noOutput

Output  
La salida generada por la automatización secundaria. Puede hacer referencia a la salida mediante el formato siguiente: *Secondary\$1Automation\$1Step\$1Name*.Output  
Tipo: StringList  
A continuación se muestra un ejemplo:  

```
- name: launchNewWindowsInstance
  action: 'aws:executeAutomation'
  onFailure: Abort
  inputs:
    DocumentName: launchWindowsInstance
  nextStep: getNewInstanceRootVolume
- name: getNewInstanceRootVolume
  action: 'aws:executeAwsApi'
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeVolumes
    Filters:
    - Name: attachment.device
      Values:
      - /dev/sda1
    - Name: attachment.instance-id
      Values:
      - '{{launchNewWindowsInstance.Output}}'
  outputs:
  - Name: rootVolumeId
    Selector: '$.Volumes[0].VolumeId'
    Type: String
  nextStep: snapshotRootVolume
- name: snapshotRootVolume
  action: 'aws:executeAutomation'
  onFailure: Abort
  inputs:
    DocumentName: AWS-CreateSnapshot
    RuntimeParameters:
    VolumeId:
    - '{{getNewInstanceRootVolume.rootVolumeId}}'
    Description:
    - 'Initial root snapshot for {{launchNewWindowsInstance.Output}}'
```

ExecutionId  
El ID de la automatización secundaria.  
Tipo: cadena

Status  
El estado de la automatización secundaria.  
Tipo: cadena

# `aws:executeAwsApi`: llamar y ejecutar operaciones de la API de AWS
<a name="automation-action-executeAwsApi"></a>

Llama y ejecuta operaciones de la API de AWS. Se admiten la mayoría de las operaciones de la API, aunque no todas se han puesto a prueba. No se admiten las operaciones de la API de streaming, como [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html). Si no estás seguro de si una operación de API que quiere usar es una operación de streaming, revise la documentación de [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) del servicio para determinar si una API requiere entradas o salidas de streaming. Actualizamos periódicamente la versión de Boto3 que utiliza esta acción. Sin embargo, tras el lanzamiento de una nueva versión de Boto3, los cambios pueden tardar varias semanas en reflejarse en esta acción. Cada acción `aws:executeAwsApi` puede ejecutarse hasta un máximo de 25 segundos. Para más ejemplos sobre cómo usar esta acción, consulte [Ejemplos adicionales de manuales de procedimientos](automation-document-examples.md).

**nota**  
La acción `aws:executeAwsApi` admite el reintento automático de limitación. Para obtener más información, consulte [Configurar el reintento automático para operaciones limitadas](automation-throttling-retry.md).

**Entradas**  
Las entradas se definen con la operación de la API que elija. 

------
#### [ YAML ]

```
action: aws:executeAwsApi
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
outputs: # These are user-specified outputs
- Name: The name for a user-specified output key
  Selector: A response object specified by using jsonpath format
  Type: The data type
```

------
#### [ JSON ]

```
{
   "action":"aws:executeAwsApi",
   "inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation or method name",
      "API operation inputs or parameters":"A value"
   },
   "outputs":[ These are user-specified outputs
      {
         "Name":"The name for a user-specified output key",
         "Selector":"A response object specified by using JSONPath format",
         "Type":"The data type"
      }
   ]
}
```

------

Servicio  
El espacio de nombres del Servicio de AWS que contiene la operación de la API que desea ejecutar. Puede ver una lista de espacios de nombres de espacios de Servicio de AWS admitidos en la sección [Available services](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) (Servicios disponibles) de AWS SDK para Python (Boto3). El espacio de nombres se encuentra en la sección **Cliente**. Por ejemplo, el espacio de nombres para Systems Manager es `ssm`. El espacio de nombres para Amazon Elastic Compute Cloud (Amazon EC2) es `ec2`.  
Tipo: cadena  
Obligatorio: sí

API  
El nombre de la operación de la API que desea ejecutar. Puede ver las operaciones de la API (también llamadas métodos) si elige un servicio en el panel de navegación ubicado a la izquierda, en la siguiente página: [Services Reference](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Elija un método en la sección **Cliente** para el servicio que desea invocar. Por ejemplo, todas las operaciones de la API (los métodos) para Amazon Relational Database Service (Amazon RDS) se indican en la siguiente página: [métodos de Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Tipo: cadena  
Obligatorio: sí

Entradas de la operación de la API  
Una o más entradas de la operación de la API. Puede ver las entradas disponibles (también llamadas parámetros) eligiendo un servicio en el panel de navegación izquierdo en la siguiente página de [referencia de servicios](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Elija un método en la sección **Cliente** para el servicio que desea invocar. Por ejemplo, todos los métodos para Amazon RDS se indican en la siguiente página: [métodos de Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). Elija el método [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) y desplácese hacia abajo para ver los parámetros disponibles, como, por ejemplo, **DBInstanceIdentifier**, **Name** y **Values**.  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Tipo: se determina a partir de la operación de la API elegida  
Obligatorio: sí

**Salidas**  
El usuario especifica las salidas en función de la respuesta de la operación de la API elegida.

Nombre  
Un nombre para la salida.  
Tipo: cadena  
Obligatorio: sí

Selector  
El elemento JSONPath a un atributo específico en el objeto de respuesta. Puede ver los objetos de respuesta eligiendo un servicio en el panel de navegación izquierdo en la siguiente página de [referencia de servicios](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Elija un método en la sección **Cliente** para el servicio que desea invocar. Por ejemplo, todos los métodos para Amazon RDS se indican en la siguiente página: [métodos de Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). Elija el método [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) y desplácese hasta la sección **Response Structure (Estructura de respuesta)**. **DBInstances** aparece como un objeto de respuesta.  
Tipo: Entero, Booleano, Cadena, StringList, StringMap o MapList  
Obligatorio: sí

Tipo  
El tipo de datos del elemento de respuesta.  
Tipo: varía  
Obligatorio: sí

# `aws:executeScript`: ejecutar un script
<a name="automation-action-executeScript"></a>

Ejecuta el script Python o PowerShell proporcionado mediante el uso del tiempo de ejecución y el controlador especificados. Cada acción `aws:executeScript` puede ejecutarse hasta un máximo de 600 segundos (10 minutos). Puede limitar el tiempo de espera mediante la especificación del parámetro `timeoutSeconds` para un paso `aws:executeScript`.

Utilice instrucciones de devolución en la función para agregar salidas a la carga útil de salida. Para ver ejemplos sobre cómo definir salidas para la acción `aws:executeScript`, consulte [Ejemplo 2: manual de procedimientos con scripts](automation-authoring-runbooks-scripted-example.md). También puede enviar la salida de acciones `aws:executeScript` de los manuales de procedimientos al grupo de registros de Amazon CloudWatch Logs que especifique. Para obtener más información, consulte [Registro de salida de acción de Automation con CloudWatch Logs](automation-action-logging.md).

Si desea enviar la salida desde acciones `aws:executeScript` a los Registros de CloudWatch o si los scripts que especifica para la llamada de acciones `aws:executeScript` las operaciones de la API de AWS, siempre se requiere un rol de servicio de AWS Identity and Access Management (IAM) (o asumir un rol) para ejecutar el manual de procedimientos.

**nota**  
La acción `aws:executeScript` no admite el reintento automático de limitación. Si el script realiza llamadas a la API de AWS que podrían estar limitadas, debe implementar su propia lógica de reintento en el código del script.

La acción `aws:executeScript` contiene los siguientes módulos de PowerShell Core preinstalados:
+ Microsoft.PowerShell.Host
+ Microsoft.PowerShell.Management
+ Microsoft.PowerShell.Security
+ Microsoft.PowerShell.Utility
+ PackageManagement
+ PowerShellGet

Para utilizar módulos de PowerShell Core que no estén preinstalados, el script debe instalar el módulo con la marca `-Force`, como se muestra en el siguiente comando. No se admite el módulo `AWSPowerShell.NetCore`. Reemplace *ModuleName* con el módulo que desee instalar.

```
Install-Module ModuleName -Force
```

Para utilizar cmdlets de PowerShell Core en el script, se recomienda utilizar los módulos de `AWS.Tools`, como se muestra en los siguientes comandos. Reemplace cada *example resource placeholder* con su propia información.
+ Cmdlets de Amazon S3

  ```
  Install-Module AWS.Tools.S3 -Force
  Get-S3Bucket -BucketName amzn-s3-demo-bucket
  ```
+ Cmdlets de Amazon EC2

  ```
  Install-Module AWS.Tools.EC2 -Force
  Get-EC2InstanceStatus -InstanceId instance-id
  ```
+ Cmdlets de AWS Tools for Windows PowerShell comunes o independientes del servicio

  ```
  Install-Module AWS.Tools.Common -Force
  Get-AWSRegion
  ```

Si el script inicializa nuevos objetos además de usar cmdlets de PowerShell Core, también debe importar el módulo como se muestra en el siguiente comando.

```
Install-Module AWS.Tools.EC2 -Force
Import-Module AWS.Tools.EC2

$tag = New-Object Amazon.EC2.Model.Tag
$tag.Key = "Tag"
$tag.Value = "TagValue"

New-EC2Tag -Resource i-02573cafcfEXAMPLE -Tag $tag
```

Para obtener ejemplos de instalación e importación de módulos de `AWS.Tools`, y de uso de cmdlets de PowerShell Core en los manuales de procedimientos, consulte [Experiencia de diseño visual para manuales de procedimientos de automatización](automation-visual-designer.md).

**Input**  
Proporcione la información necesaria para ejecutar el script. Reemplace cada *example resource placeholder* con su propia información.

**nota**  
El archivo adjunto de un script de Python puede ser un archivo .py o uno .zip que contenga el script. Los scripts de PowerShell deben almacenarse en archivos .zip.

------
#### [ YAML ]

```
action: "aws:executeScript"
inputs: 
 Runtime: runtime
 Handler: "functionName"
 InputPayload: 
  scriptInput: '{{parameterValue}}'
 Script: |-
   def functionName(events, context):
   ...
 Attachment: "scriptAttachment.zip"
```

------
#### [ JSON ]

```
{
    "action": "aws:executeScript",
    "inputs": {
        "Runtime": "runtime",
        "Handler": "functionName",
        "InputPayload": {
            "scriptInput": "{{parameterValue}}"
        },
        "Attachment": "scriptAttachment.zip"
    }
}
```

------

Tiempo de ejecución  
El tiempo de ejecución es el lenguaje que se debe usar para ejecutar el script proporcionado. `aws:executeScript` admite los tiempos de ejecución de la siguiente tabla.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/systems-manager/latest/userguide/automation-action-executeScript.html)
Tipo: cadena  
Obligatorio: sí  
Para los tiempos de ejecución de Python, el entorno proporciona 512 MB de memoria y 512 MB de espacio en disco. Para los tiempos de ejecución de PowerShell, el entorno proporciona 1024 MB de memoria y 512 MB de espacio en disco.

Controlador  
Nombre de la función. Debe asegurarse de que la función definida en el controlador tenga dos parámetros, `events` y `context`. El tiempo de ejecución de PowerShell no admite este parámetro.  
Tipo: cadena  
Requerido: Sí (Python) \$1 No admitido (PowerShell)

InputPayload  
Un objeto JSON o YAML que se pasará al primer parámetro del controlador. Se puede usar para pasar los datos de entrada al script.  
Tipo: cadena  
Requerido: no  

```
description: Tag an instance
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
    AutomationAssumeRole:
        type: String
        description: '(Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'
    InstanceId:
        type: String
        description: (Required) The ID of the EC2 instance you want to tag.
mainSteps:
  - name: tagInstance
    action: 'aws:executeScript'
    inputs:
        Runtime: "python3.11"
        Handler: tagInstance
        InputPayload:
            instanceId: '{{InstanceId}}'
        Script: |-
          def tagInstance(events,context):
            import boto3

            #Initialize client
            ec2 = boto3.client('ec2')
            instanceId = events['instanceId']
            tag = {
                "Key": "Env",
                "Value": "ExamplePython"
            }
            print(f"Adding tag {tag} to instance id {instanceId}")
            ec2.create_tags(
                Resources=[instanceId],
                Tags=[tag]
            )
            return tag
    outputs:
      - Type: String
        Name: TagKey
        Selector: $.Payload.Key
outputs:
  - tagInstance.TagKey
```

```
description: Tag an instance
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
  AutomationAssumeRole:
    type: String
    description: (Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.
  InstanceId:
    type: String
    description: (Required) The ID of the EC2 instance you want to tag.
mainSteps:
  - name: tagInstance
    action: aws:executeScript
    isEnd: true
    inputs:
      Runtime: PowerShell 7.4
      InputPayload:
        instanceId: '{{InstanceId}}'
      Script: |-
        Install-Module AWS.Tools.EC2 -Force
        Import-Module AWS.Tools.EC2

        $input = $env:InputPayload | ConvertFrom-Json

        $tag = New-Object Amazon.EC2.Model.Tag
        $tag.Key = "Env"
        $tag.Value = "ExamplePowerShell"

        Write-Information "Adding tag key: $($tag.Key) and value: $($tag.Value) to instance id $($input.instanceId)"
        New-EC2Tag -Resource $input.instanceId -Tag $tag

        return $tag
    outputs:
      - Type: String
        Name: TagKey
        Selector: $.Payload.Key
outputs:
  - tagInstance.TagKey
```

Script  
Un script insertado que desea ejecutar durante la automatización.  
Tipo: cadena  
Requerido: No (Python) \$1 Sí (PowerShell)

Archivo adjunto  
Nombre de un archivo de script independiente o archivo .zip que puede invocarse mediante la acción. Especifique el mismo valor que el `Name` del archivo adjunto de documento que especifique en el parámetro de solicitud `Attachments`. Para obtener más información, consulte [Archivos adjuntos](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateDocument.html#systemsmanager-CreateDocument-request-Attachments) en la *referencia de la API de AWS Systems Manager*. Si proporciona un script mediante un archivo adjunto, también debe definir una sección `files` en los elementos de nivel superior del manual de procedimientos. Para obtener más información, consulte [Versión de esquema 0.3](documents-schemas-features.md#automation-doc-syntax-examples).  
Si desea invocar un archivo para Python, use el formato `filename.method_name` en `Handler`.   
El archivo adjunto de un script de Python puede ser un archivo .py o uno .zip que contenga el script. Los scripts de PowerShell deben almacenarse en archivos .zip.
Al incluir bibliotecas de Python en su archivo adjunto, recomendamos que agregue un archivo `__init__.py` vacío en cada directorio del módulo. Esto le permite importar los módulos desde la biblioteca del archivo adjunto dentro del contenido de su script. Por ejemplo: `from library import module`  
Tipo: cadena  
Requerido: noOutput

Carga  
La representación JSON del objeto devuelta por su función. Se devuelven hasta 100 KB. Si genera una lista, incluirá un máximo de 100 elementos.

## Uso de archivos adjuntos con aws:executeScript
<a name="automation-action-executeScript-attachments"></a>

Los archivos adjuntos proporcionan una forma eficaz de empaquetar y reutilizar scripts complejos, varios módulos y dependencias externas con sus acciones `aws:executeScript`. Use archivos adjuntos cuando necesite hacer lo siguiente:
+ Empaquetar varios módulos de Python o scripts de PowerShell juntos.
+ Reutilizar la misma lógica de script en varios manuales de procedimientos.
+ Incluir bibliotecas o dependencias externas en sus scripts.
+ Mantener limpia la definición del manual de procedimientos separando la lógica de los scripts complejos.
+ Compartir paquetes de scripts entre equipos o flujos de trabajo de automatización.

### Estructura y empaquetado de los archivos adjuntos
<a name="automation-action-executeScript-attachment-structure"></a>

Puede adjuntar archivos individuales o paquetes zip que contengan varios archivos. La estructura depende de su caso de uso:

**Archivos adjuntos de un único archivo**  
En el caso de scripts sencillos, puede adjuntar un único archivo `.py` (Python) o un archivo `.zip` que contenga un único script de PowerShell.

**Paquetes de varios módulos**  
Para una automatización compleja que requiera varios módulos, cree un paquete zip con la siguiente estructura recomendada:

```
my-automation-package.zip
├── main.py                    # Entry point script
├── utils/
│   ├── __init__.py           # Required for Python module imports
│   ├── helper_functions.py   # Utility functions
│   └── aws_operations.py     # AWS-specific operations
├── config/
│   ├── __init__.py
│   └── settings.py           # Configuration settings
└── requirements.txt          # Optional: document dependencies
```

**importante**  
Para los paquetes de Python, debe incluir un archivo `__init__.py` vacío en cada directorio que contenga los módulos de Python. Esto le permite importar módulos utilizando la sintaxis de importación estándar de Python, como `from utils import helper_functions`.

**Estructura de paquetes de PowerShell**  
Los archivos adjuntos de PowerShell deben empaquetarse en archivos zip con la siguiente estructura:

```
my-powershell-package.zip
├── Main.ps1                  # Entry point script
├── Modules/
│   ├── HelperFunctions.ps1   # Utility functions
│   └── AWSOperations.ps1     # AWS-specific operations
└── Config/
    └── Settings.ps1          # Configuration settings
```

### Crear manuales de procedimientos con archivos adjuntos
<a name="automation-action-executeScript-attachment-workflow"></a>

Siga estos pasos para crear manuales de procedimientos que utilicen archivos adjuntos:

1. **Cargar el archivo adjunto a Amazon S3**

   Cargue el archivo de script o el paquete zip en un bucket de S3 al que pueda acceder su rol de automatización. Observe el URI de S3 que se usará en el siguiente paso.

   ```
   aws s3 cp my-automation-package.zip s3://my-automation-bucket/scripts/
   ```

1. **Calcular la suma de verificación del archivo adjunto**

   Calcule la suma de verificación SHA-256 de su archivo adjunto para la verificación de seguridad:

   ```
   # Linux/macOS
   shasum -a 256 my-automation-package.zip
   
   # Windows PowerShell
   Get-FileHash -Algorithm SHA256 my-automation-package.zip
   ```

1. **Definir la sección de archivos en su manual de procedimientos**

   Agregue una sección `files` en el nivel superior de su manual de procedimientos para hacer referencia a su archivo adjunto:

   ```
   files:
     my-automation-package.zip:
       checksums:
         sha256: "your-calculated-checksum-here"
   ```

1. **Hacer referencia al archivo adjunto en su paso de executeScript**

   Utilice el parámetro `Attachment` para hacer referencia al archivo cargado:

   ```
   - name: runMyScript
     action: aws:executeScript
     inputs:
       Runtime: python3.11
       Handler: main.process_data
       Attachment: my-automation-package.zip
       InputPayload:
         inputData: "{{InputParameter}}"
   ```

## Ejemplos de archivos adjuntos aws:executeScript
<a name="automation-action-executeScript-examples"></a>

Los siguientes ejemplos muestran diferentes maneras de usar los archivos adjuntos con la acción `aws:executeScript`.

### Ejemplo 1: Archivo adjunto único
<a name="automation-action-executeScript-single-file-example"></a>

En este ejemplo, se muestra cómo utilizar un único archivo Python como adjunto para procesar los datos de la instancia EC2.

**Archivo adjunto: process\$1instance.py**  
Cree un archivo Python con el siguiente contenido:

```
import boto3
import json

def process_instance_data(events, context):
    """Process EC2 instance data and return formatted results."""
    try:
        instance_id = events.get('instanceId')
        if not instance_id:
            raise ValueError("instanceId is required")
        
        ec2 = boto3.client('ec2')
        
        # Get instance details
        response = ec2.describe_instances(InstanceIds=[instance_id])
        instance = response['Reservations'][0]['Instances'][0]
        
        # Format the response
        result = {
            'instanceId': instance_id,
            'instanceType': instance['InstanceType'],
            'state': instance['State']['Name'],
            'availabilityZone': instance['Placement']['AvailabilityZone'],
            'tags': {tag['Key']: tag['Value'] for tag in instance.get('Tags', [])}
        }
        
        print(f"Successfully processed instance {instance_id}")
        return result
        
    except Exception as e:
        print(f"Error processing instance: {str(e)}")
        raise
```

**Manual de procedimientos completo**  
Este es el manual de procedimientos completo que usa el archivo adjunto único:

```
description: Process EC2 instance data using single file attachment
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
  AutomationAssumeRole:
    type: String
    description: (Required) IAM role for automation execution
  InstanceId:
    type: String
    description: (Required) EC2 instance ID to process

files:
  process_instance.py:
    checksums:
      sha256: "abc123def456..."

mainSteps:
  - name: processInstance
    action: aws:executeScript
    inputs:
      Runtime: python3.11
      Handler: process_instance.process_instance_data
      Attachment: process_instance.py
      InputPayload:
        instanceId: '{{InstanceId}}'
    outputs:
      - Type: StringMap
        Name: InstanceData
        Selector: $.Payload

outputs:
  - processInstance.InstanceData
```

### Ejemplo 2: Paquete de varios módulos
<a name="automation-action-executeScript-multi-module-example"></a>

En este ejemplo, se muestra el uso de un paquete zip que contiene varios módulos de Python para operaciones complejas de bucket de S3.

**Estructura del paquete**  
Cree un paquete zip con la siguiente estructura:

```
s3-operations.zip
├── main.py
├── utils/
│   ├── __init__.py
│   ├── s3_helper.py
│   └── validation.py
└── config/
    ├── __init__.py
    └── settings.py
```

**main.py (punto de entrada)**  
El script principal que orquesta las operaciones:

```
from utils.s3_helper import S3Operations
from utils.validation import validate_bucket_name
from config.settings import get_default_settings

def cleanup_s3_bucket(events, context):
    """Clean up S3 bucket based on specified criteria."""
    try:
        bucket_name = events.get('bucketName')
        max_age_days = events.get('maxAgeDays', 30)
        
        # Validate inputs
        if not validate_bucket_name(bucket_name):
            raise ValueError(f"Invalid bucket name: {bucket_name}")
        
        # Initialize S3 operations
        s3_ops = S3Operations()
        settings = get_default_settings()
        
        # Perform cleanup
        deleted_objects = s3_ops.delete_old_objects(
            bucket_name, 
            max_age_days,
            settings['dry_run']
        )
        
        result = {
            'bucketName': bucket_name,
            'deletedCount': len(deleted_objects),
            'deletedObjects': deleted_objects[:10],  # Return first 10 for brevity
            'dryRun': settings['dry_run']
        }
        
        print(f"Cleanup completed for bucket {bucket_name}")
        return result
        
    except Exception as e:
        print(f"Error during S3 cleanup: {str(e)}")
        raise
```

## Solución de problemas de aws:executeScript
<a name="automation-action-executeScript-troubleshooting"></a>

Utilice la siguiente guía para resolver los problemas habituales relacionados con los archivos adjuntos `aws:executeScript`:

**Errores de importación del módulo**  
Si recibe errores de importación al utilizar paquetes de varios módulos haga lo siguiente:
+ Asegúrese de haber incluido un archivo vacío `__init__.py` en cada directorio que contenga los módulos de Python.
+ Compruebe que las instrucciones de importación coincidan con la estructura real de archivos y directorios del paquete zip.
+ Utilice las importaciones relativas (por ejemplo, `from .utils import helper`) o las importaciones absolutas (por ejemplo, `from utils import helper`) de forma coherente.

**Errores de archivo adjunto no encontrado**  
Si la automatización no encuentra el archivo adjunto, haga lo siguiente:
+ Compruebe que el valor del parámetro `Attachment` coincida exactamente con la clave de su sección `files`.
+ Compruebe que la ruta del bucket de S3 y el nombre del archivo sean correctos en la sección `files`.
+ Asegúrese de que su función de automatización tenga el permiso `s3:GetObject` para la ubicación de S3 del archivo adjunto.
+ Compruebe que la suma de verificación en su manual de procedimientos coincida con la suma de verificación real del archivo.

**Errores de función del controlador**  
Si recibe errores relacionados con el controlador, haga lo siguiente:
+ Para Python: utilice el formato `filename.function_name` en el parámetro `Handler` (por ejemplo, `main.process_data`).
+ Asegúrese de que su función controladora acepte exactamente dos parámetros: `events` y `context`.
+ Para PowerShell: no especifique ningún parámetro `Handler`; el script se ejecuta directamente.

**Errores de ejecución de scripts**  
Si el script falla durante la ejecución, haga lo siguiente:
+ Consulte el historial de ejecución de la automatización para ver los mensajes de error detallados y los seguimientos de la pila.
+ Use instrucciones `print()` (Python) o `Write-Information` (PowerShell) para agregar resultados de depuración.
+ Compruebe que se concedan todos los permisos de AWS necesarios a su función de automatización.
+ Pruebe la lógica del script localmente antes de empaquetarlo como un archivo adjunto.

**Gestión de errores y códigos de salida**  
Para gestionar correctamente los errores y devolver los códigos de salida, haga lo siguiente:
+ En Python: use `raise Exception("error message")` para indicar un error en el script.
+ En PowerShell: utilice `throw "error message"` o `Write-Error` para indicar un error.
+ Devuelva datos estructurados de sus funciones para proporcionar información detallada sobre el éxito o el error.
+ Utilice bloques try-catch para gestionar las excepciones de manera elegante y proporcionar mensajes de error significativos.

# `aws:executeStateMachine`: ejecutar una máquina de estado de AWS Step Functions
<a name="automation-action-executeStateMachine"></a>

Ejecuta una máquina de estado de AWS Step Functions.

**nota**  
La acción `aws:executeStateMachine` admite el reintento automático de limitación. Para obtener más información, consulte [Configurar el reintento automático para operaciones limitadas](automation-throttling-retry.md).

**Input**

Esta acción admite la mayoría de los parámetros de la operación de la API de Step Functions [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html).

**Permisos de AWS Identity and Access Management (IAM) necesarios**
+ `states:DescribeExecution`
+ `states:StartExecution`
+ `states:StopExecution`

------
#### [ YAML ]

```
name: executeTheStateMachine
action: aws:executeStateMachine
inputs:
  stateMachineArn: StateMachine_ARN
  input: '{"parameters":"values"}'
  name: name
```

------
#### [ JSON ]

```
{
    "name": "executeTheStateMachine",
    "action": "aws:executeStateMachine",
    "inputs": {
        "stateMachineArn": "StateMachine_ARN",
        "input": "{\"parameters\":\"values\"}",
        "name": "name"
    }
}
```

------

stateMachineArn  
El nombre de recurso de Amazon (ARN) de la máquina de estado de Step Functions.  
Tipo: cadena  
Obligatorio: sí

name  
El nombre de la ejecución.  
Tipo: cadena  
Requerido: no

input  
Una cadena que contiene los datos de entrada JSON de la ejecución.  
Tipo: cadena  
Requerido: no

**Salidas**  
Las siguientes salidas están predefinidas para esta acción.

executionArn  
El ARN de la ejecución.  
Tipo: cadena

input  
La cadena que contiene los datos de entrada JSON de la ejecución. Las restricciones de longitud se aplican al tamaño de la carga y se expresan como bytes en codificación UTF-8.  
Tipo: cadena

name  
El nombre de la ejecución.  
Tipo: cadena

output  
Los datos de salida JSON de la ejecución. Las restricciones de longitud se aplican al tamaño de la carga y se expresan como bytes en codificación UTF-8.  
Tipo: cadena

startDate  
La fecha en que se inicia la ejecución.  
Tipo: cadena

stateMachineArn  
El ARN de la máquina indicada ejecutada.  
Tipo: cadena

status  
El estado actual de la ejecución.  
Tipo: cadena

stopDate  
Si la ejecución ya ha finalizado, la fecha en que se detuvo la ejecución.  
Tipo: cadena

# `aws:invokeWebhook`: invocar una integración de webhook de Automation
<a name="invoke-webhook"></a>

Invoca la integración de webhook de Automation especificada. Para obtener información acerca de la creación de integraciones de Automation, consulte [Crear integraciones webhook para Automation](creating-webhook-integrations.md).

**nota**  
La acción `aws:invokeWebhook` admite el reintento automático de limitación. Para obtener más información, consulte [Configurar el reintento automático para operaciones limitadas](automation-throttling-retry.md).

**nota**  
Para utilizar la acción `aws:invokeWebhook`, su usuario o rol de servicio debe permitir las siguientes acciones:  
ssm:GetParameter
kms:Decrypt
El permiso para la operación `Decrypt` de AWS Key Management Service (AWS KMS) solo es necesario si utiliza una clave administrada por el cliente con el fin de cifrar el parámetro de la integración.

**Input**  
Proporcione la información de la integración de Automation que desea que invoque.

------
#### [ YAML ]

```
action: "aws:invokeWebhook"
inputs: 
 IntegrationName: "exampleIntegration"
 Body: "Request body"
```

------
#### [ JSON ]

```
{
    "action": "aws:invokeWebhook",
    "inputs": {
        "IntegrationName": "exampleIntegration",
        "Body": "Request body"
    }
}
```

------

IntegrationName  
El nombre de la integración de Automation. Por ejemplo, `exampleIntegration`. La integración que especifique debe existir previamente.  
Tipo: cadena  
Obligatorio: sí

Cuerpo  
La carga que desea enviar cuando se invoca la integración de webhook.  
Tipo: cadena  
Requerido: noOutput

Respuesta  
El texto recibido de la respuesta del proveedor de webhook.

ResponseCode  
El código del estado HTTP recibido de la respuesta del proveedor de webhook.

# `aws:invokeLambdaFunction`: invocar una función de AWS Lambda
<a name="automation-action-lamb"></a>

Invoca la función de AWS Lambda especificada.

**nota**  
Cada acción `aws:invokeLambdaFunction` puede ejecutarse hasta un máximo de 300 segundos (5 minutos). Puede limitar el tiempo de espera mediante la especificación del parámetro `timeoutSeconds` para un paso `aws:invokeLambdaFunction`.

**nota**  
La acción `aws:invokeLambdaFunction` admite el reintento automático de limitación. Para obtener más información, consulte [Configurar el reintento automático para operaciones limitadas](automation-throttling-retry.md).

**Input**  
Esta acción admite la mayoría de los parámetros invocados del servicio Lambda. Para obtener más información, consulte [Invoke](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html).

------
#### [ YAML ]

```
name: invokeMyLambdaFunction
action: aws:invokeLambdaFunction
maxAttempts: 3
timeoutSeconds: 120
onFailure: Abort
inputs:
  FunctionName: MyLambdaFunction
```

------
#### [ JSON ]

```
{
    "name": "invokeMyLambdaFunction",
    "action": "aws:invokeLambdaFunction",
    "maxAttempts": 3,
    "timeoutSeconds": 120,
    "onFailure": "Abort",
    "inputs": {
        "FunctionName": "MyLambdaFunction"
    }
}
```

------

FunctionName  
El nombre de la función de Lambda. Esta función debe existir.  
Tipo: cadena  
Obligatorio: sí

Calificador  
La versión de función o nombre de alias.  
Tipo: cadena  
Requerido: no

InvocationType  
El tipo de invocación. El valor predeterminado es `RequestResponse`.  
Tipo: cadena  
Valores válidos: `Event` \$1 `RequestResponse` \$1 `DryRun`  
Obligatorio: no

LogType  
Si el valor predeterminado es `Tail`, el tipo de invocación debe ser `RequestResponse`. Lambda devuelve los últimos 4 KB de datos de registro generados por la función de Lambda, con codificación Base64.  
Tipo: cadena  
Valores válidos: `None` \$1 `Tail`  
Obligatorio: no

ClientContext  
La información específica del cliente.  
Obligatorio: no

InputPayload  
Un objeto JSON o YAML que se pasará al primer parámetro del controlador. Puede utilizar esta entrada para transferir datos a la función. Esta entrada proporciona más flexibilidad y compatibilidad que la entrada de `Payload` heredada. Si define `InputPayload` y `Payload` para la acción, `InputPayload` tiene prioridad y el valor de `Payload` no se utiliza.  
Tipo: StringMap  
Obligatorio: no

Carga  
Una cadena JSON que se pasará al primer parámetro del controlador. Puede utilizar estos datos de entrada para pasarlos a la función. Recomendamos utilizar la entrada de `InputPayload` para garantizar una mayor funcionalidad.  
Tipo: cadena  
Requerido: noOutput

StatusCode  
El código de estado HTTP.

FunctionError  
Si está presente, indica que se ha producido un error durante la ejecución de la función. Se incluyen detalles sobre el error en la carga de la respuesta.

LogResult  
Los registros con codificación Base64 para la invocación de la función de Lambda. Los registros están presentes solo si el tipo de invocación es `RequestResponse` y se han solicitado.

Carga  
La representación JSON del objeto devuelto por la función de Lambda. Payload está presente solo si el tipo de invocación es `RequestResponse`.

Lo que aparece a continuación es una parte del manual de procedimientos `AWS-PatchInstanceWithRollback` que muestra cómo hacer referencia a las salidas de la acción `aws:invokeLambdaFunction`.

------
#### [ YAML ]

```
- name: IdentifyRootVolume
  action: aws:invokeLambdaFunction
  inputs:
    FunctionName: "IdentifyRootVolumeLambda-{{automation:EXECUTION_ID}}"
    Payload: '{"InstanceId": "{{InstanceId}}"}'
- name: PrePatchSnapshot
  action: aws:executeAutomation
  inputs:
    DocumentName: "AWS-CreateSnapshot"
    RuntimeParameters:
      VolumeId: "{{IdentifyRootVolume.Payload}}"
      Description: "ApplyPatchBaseline restoration case contingency"
```

------
#### [ JSON ]

```
{
    "name": "IdentifyRootVolume",
    "action": "aws:invokeLambdaFunction",
    "inputs": {
      "FunctionName": "IdentifyRootVolumeLambda-{{automation:EXECUTION_ID}}",
      "Payload": "{\"InstanceId\": \"{{InstanceId}}\"}"
    }
  },
  {
    "name": "PrePatchSnapshot",
    "action": "aws:executeAutomation",
    "inputs": {
      "DocumentName": "AWS-CreateSnapshot",
      "RuntimeParameters": {
        "VolumeId": "{{IdentifyRootVolume.Payload}}",
        "Description": "ApplyPatchBaseline restoration case contingency"
      }
    }
  }
```

------

# `aws:loop` — Repita los pasos en una automatización
<a name="automation-action-loop"></a>

Esta acción se repite en un subconjunto de pasos de un manual de procedimientos de automatización. Puede elegir un bucle de estilo `do while` o `for each`. Para construir un bucle `do while`, utilice el parámetro de entrada `LoopCondition`. Para construir un bucle `for each`, utilice los parámetros de entrada `Iterators` y `IteratorDataType`. Cuando utilice una acción `aws:loop`, especifique únicamente el parámetro de entrada `Iterators` o `LoopCondition`. El número máximo de veces que se van a ejecutar es de 100.

La propiedad `onCancel` solo se puede utilizar para los pasos definidos dentro de un bucle. La propiedad `onCancel` no es compatible con la acción `aws:loop`. La propiedad `onFailure` se puede usar para una acción `aws:loop`, pero solo se usará si se produce un error inesperado que provoque un error en el paso. Si define propiedades `onFailure` para los pasos de un bucle, la acción `aws:loop` hereda esas propiedades y reacciona en consecuencia cuando se produce un error.

**Ejemplos**  
A continuación se muestran ejemplos de cómo construir los distintos tipos de acciones de bucle.

------
#### [ do while ]

```
name: RepeatMyLambdaFunctionUntilOutputIsReturned
action: aws:loop
inputs:
    Steps:
    - name: invokeMyLambda
        action: aws:invokeLambdaFunction
        inputs:
        FunctionName: LambdaFunctionName
        outputs:
        - Name: ShouldRetry
            Selector: $.Retry
            Type: Boolean
    LoopCondition:
        Variable: "{{ invokeMyLambda.ShouldRetry }}"
        BooleanEquals: true
    MaxIterations: 3
```

------
#### [ for each ]

```
name: stopAllInstancesWithWaitTime
action: aws:loop
inputs:
    Iterators: "{{ DescribeInstancesStep.InstanceIds }}"
    IteratorDataType: "String"
    Steps:
    - name: stopOneInstance
        action: aws:changeInstanceState
        inputs:
        InstanceIds:
            - "{{stopAllInstancesWithWaitTime.CurrentIteratorValue}}"
        CheckStateOnly: false
        DesiredState: stopped
    - name: wait10Seconds
        action: aws:sleep
        inputs:
        Duration: PT10S
```

------

**Input**  
La entrada es la siguiente.

Iteradores  
La lista de elementos sobre los que se deben iterar los pasos. El número máximo de iteradores es 100.  
Tipo: StringList  
Obligatorio: no

IteratorDataType (Tipo de datos de iteradores)  
Un parámetro opcional para especificar el tipo de datos del `Iterators`. Se puede proporcionar un valor para este parámetro junto con el parámetro de entrada `Iterators`. Si no especifica un valor para este parámetro y `Iterators`, luego debe especificar un valor para el parámetro `LoopCondition`.  
Tipo: cadena  
Valores válidos: Boolean \$1 Integer \$1 String \$1 StringMap  
Predeterminado: String  
Obligatorio: no

LoopCondition  
Consta de una `Variable` y una condición de operador a evaluar. Si no especifica un valor para este parámetro, debe especificar un valor para los parámetros `Iterators` y `IteratorDataType`. Puede utilizar evaluaciones de operadores complejas mediante una combinación de operadores `And`, `Not` y `Or`. La condición se evalúa una vez completados los pasos del ciclo. Si la condición es `true` y el valor `MaxIterations` no se ha alcanzado, los pasos del bucle se vuelven a ejecutar. Las condiciones del operador son las siguientes:  

**Operaciones de cadena**
+ StringEquals
+ EqualsIgnoreCase
+ StartsWith
+ EndsWith
+ Contiene

**Numeric operations**
+ NumericEquals
+ NumericGreater
+ NumericLesser
+ NumericGreaterOrEquals
+ NumericLesser
+ NumericLesserOrEquals

**Operación booleana**
+ BooleanEquals
Tipo: StringMap  
Obligatorio: no

MaxIterations (Iteraciones máximas)  
Número máximo de veces que se van a ejecutar los pasos del ciclo. Una vez que se alcanza el valor especificado para esta entrada, el bucle deja de ejecutarse incluso si `LoopCondition` aún es `true` o si quedan objetos en el parámetro `Iterators`.  
Tipo: número entero  
Valores válidos: 1 - 100  
Obligatorio: no

Steps  
La lista de pasos que se van a ejecutar en el bucle. Funcionan como un manual de procedimientos anidado. En estos pasos, puede acceder al valor del iterador actual de un bucle `for each` mediante la sintaxis `{{loopStepName.CurrentIteratorValue}}`. También puede acceder a un valor entero de la iteración actual para ambos tipos de bucles mediante la sintaxis `{{loopStepName.CurrentIteration}}`.  
Tipo: lista de pasos  
Obligatorio: síOutput

Currentiteration (Iteración actual)  
La iteración del bucle actual como número entero. Los valores de iteración comienzan en 1.  
Tipo: número entero

CurrentiteratorValue (Valor del iterador actual)  
El valor del iterador actual como una cadena. Esta salida solo está presente en los bucles `for each`.  
Tipo: cadena

# `aws:pause`: detener una automatización
<a name="automation-action-pause"></a>

Esta acción detiene la automatización. Una vez detenida, el estado de la automatización es *Waiting* (En espera). Para continuar con la automatización, utilice la operación de la API [SendAutomationSignal](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendAutomationSignal.html) con el tipo de señal `Resume`. Se recomienda utilizar las acciones `aws:sleep` o `aws:approve` para tener un control más detallado de los flujos de trabajo.

**nota**  
El tiempo de espera predeterminado para esta acción es de 7 días (604 800 segundos) y el valor máximo es de 30 días (2 592 000 segundos). Puede limitar o ampliar el tiempo de espera mediante la especificación del parámetro `timeoutSeconds` para un paso `aws:pause`.

**Input**  
La entrada es la siguiente.

------
#### [ YAML ]

```
name: pauseThis
action: aws:pause
timeoutSeconds: 1209600
inputs: {}
```

------
#### [ JSON ]

```
{
    "name": "pauseThis",
    "action": "aws:pause",
    "timeoutSeconds": "1209600",
    "inputs": {}
}
```

------Output

Ninguno  


# `aws:runCommand`: ejecutar un comando en una instancia administrada
<a name="automation-action-runcommand"></a>

Ejecuta los comandos especificados.

**nota**  
Automation solo admite *output* de una acción de AWS Systems Manager Run Command. Un manual de procedimientos puede incluir varias acciones de Run Command, pero output solo se admite para una acción a la vez.

**Input**  
Esta acción admite la mayoría de los parámetros de comando. Para obtener más información, consulte [SendCommand](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html).

------
#### [ YAML ]

```
- name: checkMembership
  action: 'aws:runCommand'
  inputs:
    DocumentName: AWS-RunPowerShellScript
    InstanceIds:
      - '{{InstanceIds}}'
    Parameters:
      commands:
        - (Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain
```

------
#### [ JSON ]

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "InstanceIds": [
            "{{InstanceIds}}"
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        }
    }
}
```

------

DocumentName  
Si el documento de tipo Command le pertenece a usted o a AWS, especifique el nombre del documento. Si está utilizando un documento que una Cuenta de AWS diferente compartió con usted, especifique el nombre de recurso de Amazon (ARN) del documento. Para obtener más información acerca del uso de documentos compartidos, consulte [Uso de documentos de SSM compartidos](documents-ssm-sharing.md#using-shared-documents).  
Tipo: cadena  
Obligatorio: sí

InstanceIds  
Los ID de instancia donde desea que se ejecute el comando. Puede especificar un máximo de 50 ID.   
También puede utilizar el pseudoparámetro `{{RESOURCE_ID}}` en lugar de los ID de instancias para ejecutar el comando en todas las instancias del grupo de destino. Para obtener más información sobre pseudoparámetros, consulte . [Utilización de pseudoparámetros en el registro de las tareas del periodo de mantenimiento](maintenance-window-tasks-pseudo-parameters.md).  
Otra alternativa es enviar comandos a una flota de instancias con el parámetro `Targets`. El parámetro `Targets` acepta etiquetas de Amazon Elastic Compute Cloud (Amazon EC2). Para obtener más información acerca de cómo utilizar el parámetro `Targets`, consulte [Ejecución de comandos a escala](send-commands-multiple.md).  
Tipo: StringList  
Obligatorio: no (Si no especifica InstanceIds ni utiliza el pseudoparámetro `{{RESOURCE_ID}}`, debe especificar el parámetro `Targets`).

Targets  
Una matriz de criterios de búsqueda que indica instancias como destino mediante el uso de una combinación de clave-valor que usted especifique. `Targets` es obligatorio si no se proporciona uno o más ID de instancia en la llamada. Para obtener más información acerca de cómo utilizar el parámetro `Targets`, consulte [Ejecución de comandos a escala](send-commands-multiple.md).  
Tipo: MapList (El esquema del mapa en la lista debe coincidir con el objeto). Para obtener información, consulte [Target](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_Target.html) en la *Referencia de la API de AWS Systems Manager*.  
Obligatorio: no (Si no especifica `Targets`, debe especificar InstanceIds o utilizar el pseudoparámetro `{{RESOURCE_ID}}`).  
A continuación se muestra un ejemplo.  

```
- name: checkMembership
  action: aws:runCommand
  inputs:
    DocumentName: AWS-RunPowerShellScript
    Targets:
      - Key: tag:Stage
        Values:
          - Gamma
          - Beta
      - Key: tag-key
        Values:
          - Suite
    Parameters:
      commands:
        - (Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain
```

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "Targets": [                   
            {
                "Key": "tag:Stage",
                "Values": [
                    "Gamma", "Beta"
                ]
            },
            {
                "Key": "tag:Application",
                "Values": [
                    "Suite"
                ]
            }
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        }
    }
}
```

Parameters  
Los parámetros obligatorios y opcionales especificados en el documento.  
Tipo: mapa  
Obligatorio: no

CloudWatchOutputConfig  
Las opciones de configuración para enviar el comando output a Registros de Amazon CloudWatch. Para obtener más información acerca de cómo enviar el comando output a Registros de CloudWatch, consulte [Configuración de Registros de Amazon CloudWatch para Run Command](sysman-rc-setting-up-cwlogs.md).  
Tipo: StringMap (El esquema del mapa debe coincidir con el objeto. Para obtener más información, consulte [CloudWatchOutputConfig](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CloudWatchOutputConfig.html) en la *Referencia de la API de AWS Systems Manager*).  
Obligatorio: no  
A continuación se muestra un ejemplo.  

```
- name: checkMembership
  action: aws:runCommand
  inputs:
    DocumentName: AWS-RunPowerShellScript
    InstanceIds:
      - "{{InstanceIds}}"
    Parameters:
      commands:
        - "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
    CloudWatchOutputConfig:
      CloudWatchLogGroupName: CloudWatchGroupForSSMAutomationService
      CloudWatchOutputEnabled: true
```

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "InstanceIds": [
            "{{InstanceIds}}"
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        },
        "CloudWatchOutputConfig" : { 
                "CloudWatchLogGroupName": "CloudWatchGroupForSSMAutomationService",
                "CloudWatchOutputEnabled": true
        }
    }
}
```

Comment  
Información definida por el usuario sobre el comando.  
Tipo: cadena  
Requerido: no

DocumentHash  
El hash del documento.  
Tipo: cadena  
Requerido: no

DocumentHashType  
El tipo del hash.  
Tipo: cadena  
Valores válidos: `Sha256` \$1 `Sha1`  
Obligatorio: no

NotificationConfig  
Las configuraciones para enviar notificaciones.  
Obligatorio: no

OutputS3BucketName  
El nombre del bucket de S3 para las respuestas del comando output. Su nodo administrado debe tener permisos para el bucket de S3 con el objetivo de registrar correctamente output.  
Tipo: cadena  
Requerido: no

OutputS3KeyPrefix  
El prefijo.  
Tipo: cadena  
Requerido: no

ServiceRoleArn  
El ARN del rol de AWS Identity and Access Management (IAM).  
Tipo: cadena  
Requerido: no

TimeoutSeconds  
La cantidad de segundos que hay que esperar para que un comando entregue el resultado a AWS Systems Manager SSM Agent en una instancia. Si SSM Agent en la instancia no recibe el comando antes de que se alcance el valor especificado, el estado del comando se transforma en `Delivery Timed Out`.  
Tipo: entero  
Obligatorio: no  
Valores válidos: 30-2592000Output

CommandId  
El ID del comando.

Status  
El estado del comando.

ResponseCode  
El código de respuesta del comando. Si el documento que ejecuta tiene más de 1 paso, no se devuelve ningún valor para esta salida.

Output  
La salida del comando. Si dirige el comando a una etiqueta o a varias instancias, no se devuelve n ningún valor de output. Puede usar las operaciones de la API `GetCommandInvocation` y `ListCommandInvocations` para recuperar output para instancias individuales.

# `aws:runInstances`: lanzar una instancia de Amazon EC2
<a name="automation-action-runinstance"></a>

Lanza una instancia nueva de Amazon Elastic Compute Cloud (Amazon EC2).

**nota**  
La acción `aws:runInstances` admite el reintento automático de limitación. Para obtener más información, consulte [Configurar el reintento automático para operaciones limitadas](automation-throttling-retry.md).

**Input**  
La acción admite la mayoría de los parámetros de la API. Para obtener más información, consulte la documentación de la API [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html).

------
#### [ YAML ]

```
name: launchInstance
action: aws:runInstances
maxAttempts: 3
timeoutSeconds: 1200
onFailure: Abort
inputs:
  ImageId: ami-12345678
  InstanceType: t2.micro
  MinInstanceCount: 1
  MaxInstanceCount: 1
  IamInstanceProfileName: myRunCmdRole
  TagSpecifications:
  - ResourceType: instance
    Tags:
    - Key: LaunchedBy
      Value: SSMAutomation
    - Key: Category
      Value: HighAvailabilityFleetHost
```

------
#### [ JSON ]

```
{
   "name":"launchInstance",
   "action":"aws:runInstances",
   "maxAttempts":3,
   "timeoutSeconds":1200,
   "onFailure":"Abort",
   "inputs":{
      "ImageId":"ami-12345678",
      "InstanceType":"t2.micro",
      "MinInstanceCount":1,
      "MaxInstanceCount":1,
      "IamInstanceProfileName":"myRunCmdRole",
      "TagSpecifications":[
         {
            "ResourceType":"instance",
            "Tags":[
               {
                  "Key":"LaunchedBy",
                  "Value":"SSMAutomation"
               },
               {
                  "Key":"Category",
                  "Value":"HighAvailabilityFleetHost"
               }
            ]
         }
      ]
   }
}
```

------

AdditionalInfo  
Reservado.  
Tipo: cadena  
Requerido: no

BlockDeviceMappings  
Los dispositivos de bloques para la instancia.  
Tipo: MapList  
Obligatorio: no

ClientToken  
El identificador para garantizar la instancia idempotente de la solicitud.  
Tipo: cadena  
Requerido: no

DisableApiTermination  
Activa o desactiva la terminación de la API de la instancia.  
Tipo: Booleano  
Obligatorio: no

EbsOptimized  
Activa o desactiva la optimización de Amazon Elastic Block Store (Amazon EBS).  
Tipo: Booleano  
Obligatorio: no

IamInstanceProfileArn  
El nombre de recurso de Amazon (ARN) del perfil de instancia de AWS Identity and Access Management (IAM).  
Tipo: cadena  
Requerido: no

IamInstanceProfileName  
El nombre del perfil de instancia de IAM correspondiente a la instancia.  
Tipo: cadena  
Requerido: no

ImageId  
El ID de la Amazon Machine Image (AMI).  
Tipo: cadena  
Obligatorio: sí

InstanceInitiatedShutdownBehavior  
Indica si la instancia se detiene o termina al cerrarse el sistema.  
Tipo: cadena  
Requerido: no

InstanceType  
El tipo de instancia.  
Si no se proporciona el valor de tipo de instancia, se emplea el tipo de instancia m1.small.
Tipo: cadena  
Requerido: no

KernelId  
El ID del kernel.  
Tipo: cadena  
Requerido: no

KeyName  
El nombre del par de claves.  
Tipo: cadena  
Requerido: no

MaxInstanceCount  
El número máximo de instancias que se van a lanzar.  
Tipo: cadena  
Requerido: no

MetadataOptions  
Opciones de metadatos de la instancia. Para obtener más información, consulte [InstanceMetadataOptionsRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceMetadataOptionsRequest.html).  
Tipo: StringMap  
Obligatorio: no

MinInstanceCount  
El número mínimo de instancias que se van a lanzar.  
Tipo: cadena  
Requerido: no

Supervisión  
Activa o desactiva el monitoreo detallado.  
Tipo: Booleano  
Obligatorio: no

NetworkInterfaces  
Las interfaces de red.  
Tipo: MapList  
Obligatorio: no

Placement  
La ubicación de la instancia.  
Tipo: StringMap  
Obligatorio: no

PrivateIpAddress  
La dirección IPv4 principal.  
Tipo: cadena  
Requerido: no

RamdiskId  
El ID del disco RAM.  
Tipo: cadena  
Requerido: no

SecurityGroupIds  
Los ID de los grupos de seguridad para la instancia.  
Tipo: StringList  
Obligatorio: no

SecurityGroups  
Los nombres de los grupos de seguridad para la instancia.  
Tipo: StringList  
Obligatorio: no

SubnetId  
El ID de subred.  
Tipo: cadena  
Requerido: no

TagSpecifications  
Las etiquetas que aplicar a los recursos durante el lanzamiento. Solo puede etiquetar instancias y volúmenes en el momento del lanzamiento. Las etiquetas especificadas se aplican a todas las instancias o volúmenes que se crean durante el lanzamiento. Para etiquetar una instancia después de que se haya lanzado, utilice la acción [`aws:createTags`: crear etiquetas para recursos de AWS](automation-action-createtag.md).  
Tipo MapList (Para obtener más información, consulte [TagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TagSpecification.html)).  
Obligatorio: no

UserData  
Un script proporcionado como un valor literal de cadena. Si se escribe un valor literal, debe estar codificado en Base64.  
Tipo: cadena  
Requerido: noOutput

InstanceIds  
Los ID de las instancias.

InstanceStates  
El estado actual de la instancia.

# `aws:sleep`: retrasar una automatización
<a name="automation-action-sleep"></a>

Retrasa una automatización durante un periodo determinado. Esta acción utiliza el formato de fecha y hora de la Organización Internacional de Normalización (ISO, por sus siglas en inglés) 8601. Para obtener más información sobre este formato de fecha y hora, consulte [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html).

**Input**  
Puede retrasar una automatización durante un periodo determinado. 

------
#### [ YAML ]

```
name: sleep
action: aws:sleep
inputs:
  Duration: PT10M
```

------
#### [ JSON ]

```
{
   "name":"sleep",
   "action":"aws:sleep",
   "inputs":{
      "Duration":"PT10M"
   }
}
```

------

También puede retrasar la automatización hasta una fecha y una hora específicas. Si la fecha y hora especificadas ha transcurrido, la acción avanza de forma inmediata. 

------
#### [ YAML ]

```
name: sleep
action: aws:sleep
inputs:
  Timestamp: '2020-01-01T01:00:00Z'
```

------
#### [ JSON ]

```
{
    "name": "sleep",
    "action": "aws:sleep",
    "inputs": {
        "Timestamp": "2020-01-01T01:00:00Z"
    }
}
```

------

**nota**  
La automatización admite un tiempo de espera máximo de 604 799 segundos (7 días).

Duración  
Una duración ISO 8601. No puede especificar una duración negativa.   
Tipo: cadena  
Requerido: no

Marca de tiempo  
Una marca de tiempo ISO 8601. Si no especifica un valor para este parámetro, debe especificar un valor para el parámetro `Duration`.   
Tipo: cadena  
Requerido: noOutput

Ninguno  


# `aws:updateVariable` — Actualiza el valor de una variable del manual de procedimientos
<a name="automation-action-update-variable"></a>

Esta acción actualiza el valor de una variable del manual de procedimientos. El tipo de datos del valor debe coincidir con el tipo de datos de la variable que desea actualizar. Las conversiones de tipos de datos no son compatibles. La propiedad `onCancel` no es compatible con la acción `aws:updateVariable`.

**Input**  
La entrada es la siguiente.

------
#### [ YAML ]

```
name: updateStringList
action: aws:updateVariable
inputs:
    Name: variable:variable name
    Value:
    - "1"
    - "2"
```

------
#### [ JSON ]

```
{
    "name": "updateStringList",
    "action": "aws:updateVariable",
    "inputs": {
        "Name": "variable:variable name",
        "Value": ["1","2"]
    }
}
```

------

Nombre  
El nombre de la variable cuyo valor desea actualizar. Debe usar el formato `variable:variable name`  
Tipo: cadena  
Obligatorio: sí

Valor  
El nuevo valor que se va a asignar a la variable. El valor debe coincidir con el tipo de datos de la variable. Las conversiones de tipos de datos no son compatibles.  
Tipo: Boolean \$1 Integer \$1 MapList \$1 String \$1 StringList \$1 StringMap  
Obligatorio: sí  
Restricciones:  
+ MapList (Lista de mapas) puede contener un número máximo de 200 elementos.
+ La clave puede tener una longitud mínima de 1 y una longitud máxima de 50.
+ StringList puede tener un número mínimo de 0 elementos y un número máximo de 50 elementos.
+ La cadena puede tener una longitud mínima de 1 y una longitud máxima de 512.Output

Ninguno  


# `aws:waitForAwsResourceProperty`: esperar una propiedad de recurso de AWS
<a name="automation-action-waitForAwsResourceProperty"></a>

La acción `aws:waitForAwsResourceProperty` permite a su automatización esperar hasta alcanzar un estado de recurso o de evento específico antes de continuar con la automatización. Para más ejemplos sobre cómo usar esta acción, consulte [Ejemplos adicionales de manuales de procedimientos](automation-document-examples.md).

**nota**  
El valor del tiempo de espera predeterminado para esta acción es de 3600 segundos (una hora). Puede limitar o ampliar el tiempo de espera mediante la especificación del parámetro `timeoutSeconds` para un paso `aws:waitForAwsResourceProperty`. Para obtener más información y ejemplos sobre cómo usar esta acción, consulte [Administración de los tiempos de espera en los manuales de procedimientos](automation-handling-timeouts.md).

**nota**  
La acción `aws:waitForAwsResourceProperty` admite el reintento automático de limitación. Para obtener más información, consulte [Configurar el reintento automático para operaciones limitadas](automation-throttling-retry.md).

**Input**  
Las entradas se definen con la operación de la API que elija.

------
#### [ YAML ]

```
action: aws:waitForAwsResourceProperty
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
  PropertySelector: Response object
  DesiredValues:
  - Desired property value
```

------
#### [ JSON ]

```
{
  "action": "aws:waitForAwsResourceProperty",
  "inputs": {
    "Service":"The official namespace of the service",
    "Api":"The API operation or method name",
    "API operation inputs or parameters":"A value",
    "PropertySelector": "Response object",
    "DesiredValues": [
      "Desired property value"
    ]
  }
}
```

------

Servicio  
El espacio de nombres del Servicio de AWS que contiene la operación de la API que desea ejecutar. Por ejemplo, el espacio de nombres para AWS Systems Manager es `ssm`. El espacio de nombres para Amazon Elastic Compute Cloud (Amazon EC2) es `ec2`. Puede ver una lista de espacios de nombres de Servicio de AWS admitidos en la sección [Available Services](https://docs.aws.amazon.com/cli/latest/reference/#available-services) (Servicios disponibles) de la *Referencia de los comandos de la AWS CLI*.  
Tipo: cadena  
Obligatorio: sí

API  
El nombre de la operación de la API que desea ejecutar. Puede ver las operaciones de la API (también llamadas métodos) si elige un servicio en el panel de navegación ubicado a la izquierda, en la siguiente página: [Services Reference](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Elija un método en la sección **Cliente** para el servicio que desea invocar. Por ejemplo, todas las operaciones de la API (los métodos) para Amazon Relational Database Service (Amazon RDS) se indican en la siguiente página: [métodos de Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Tipo: cadena  
Obligatorio: sí

Entradas de la operación de la API  
Una o más entradas de la operación de la API. Puede ver las entradas disponibles (también llamadas parámetros) eligiendo un servicio en el panel de navegación izquierdo en la siguiente página de [referencia de servicios](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Elija un método en la sección **Cliente** para el servicio que desea invocar. Por ejemplo, todos los métodos para Amazon RDS se indican en la siguiente página: [métodos de Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). Elija el método [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) y desplácese hacia abajo para ver los parámetros disponibles, como, por ejemplo, **DBInstanceIdentifier**, **Name** y **Values**.  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Tipo: se determina a partir de la operación de la API elegida  
Obligatorio: sí

PropertySelector  
El elemento JSONPath a un atributo específico en el objeto de respuesta. Puede ver los objetos de respuesta eligiendo un servicio en el panel de navegación izquierdo en la siguiente página de [referencia de servicios](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Elija un método en la sección **Cliente** para el servicio que desea invocar. Por ejemplo, todos los métodos para Amazon RDS se indican en la siguiente página: [métodos de Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). Elija el método [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) y desplácese hasta la sección **Response Structure (Estructura de respuesta)**. **DBInstances** aparece como un objeto de respuesta.  
Tipo: cadena  
Obligatorio: sí

DesiredValues  
El estado previsto o el estado en el que continuará la automatización.  
Tipo: MapList, StringList  
Obligatorio: sí

# Variables del sistema de Automation
<a name="automation-variables"></a>

Los manuales de procedimientos de AWS Systems Manager Automation usan las siguientes variables. En el código fuente JSON del manual de procedimientos `AWS-UpdateWindowsAmi`, puede ver un ejemplo de cómo se usan estas variables. 

**Para ver el código fuente JSON del manual de procedimientos `AWS-UpdateWindowsAmi`**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. En el panel de navegación, elija **Documentos**.

1. En la lista de documentos, utilice la barra de búsqueda o los números que se encuentran a la derecha de la barra de búsqueda para seleccionar el manual de procedimientos `AWS-UpdateWindowsAmi`.

1. Elija la pestaña **Content**. 

**Variables del sistema**  
Los manuales de procedimientos de Automation admiten las siguientes variables del sistema.


****  

| Variable | Detalles | 
| --- | --- | 
|  `global:ACCOUNT_ID`  |  El ID de la Cuenta de AWS del usuario o el rol donde se ejecuta Automatización.  | 
|  `global:DATE`  |  La fecha (en el tiempo de ejecución) con el formato aaaa-MM-dd.  | 
|  `global:DATE_TIME`  |  La fecha y la hora (en el tiempo de ejecución) con el formato aaaa-MM-dd\$1HH.mm.ss.  | 
|  `global:AWS_PARTITION`  |  Partición en la que se encuentra el recurso. Para las Regiones de AWS estándar, la partición es `aws`. Para los recursos en otras particiones, la partición es `aws-partitionname`. Por ejemplo, la partición de los recursos de la región AWS GovCloud (EE. UU. Oeste) es `aws-us-gov`.  | 
|  `global:REGION`  |  La región en la que se ejecuta el manual de procedimientos. Por ejemplo, us-east-2.  | 

**Variables de Automation**  
Los manuales de procedimientos de Automation admiten las siguientes variables de la automatización.


****  

| Variable | Detalles | 
| --- | --- | 
|  `automation:EXECUTION_ID`  |  El identificador único asignado a la automatización actual. Por ejemplo, `1a2b3c-1a2b3c-1a2b3c-1a2b3c1a2b3c1a2b3c`.  | 

**Topics**
+ [Terminología](#automation-terms)
+ [Escenarios admitidos](#automation-variables-support)
+ [Escenarios no admitidos](#automation-variables-unsupported)

## Terminología
<a name="automation-terms"></a>

Los siguientes términos describen cómo se resuelven las variables y los parámetros.


****  

| Plazo | Definición | Ejemplo | 
| --- | --- | --- | 
|  ARN constante  |  Un nombre de recurso de Amazon (ARN) válido sin variables.  |  `arn:aws:iam::123456789012:role/roleName`  | 
|  Parámetro del manual de procedimientos  |  Un parámetro definido en el nivel del manual de procedimientos (por ejemplo, `instanceId`). El parámetro se utiliza en un reemplazo de cadena básica. Su valor se proporciona en el tiempo de ejecución de inicio.  |  <pre>{ <br />   "description": "Create Image Demo",<br />   "version": "0.3",<br />   "assumeRole": "Your_Automation_Assume_Role_ARN",<br />   "parameters":{ <br />      "instanceId": { <br />         "type": "String",<br />         "description": "Instance to create image from"<br />   }<br />}</pre>  | 
|  Variable del sistema  |  Una variable general que se sustituye en el manual de procedimientos cuando se evalúa cualquiera de sus partes.  |  <pre>"activities": [ <br />   { <br />      "id": "copyImage",<br />      "activityType": "AWS-CopyImage",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": { <br />         "ImageName": "{{imageName}}",<br />         "SourceImageId": "{{sourceImageId}}",<br />         "SourceRegion": "{{sourceRegion}}",<br />         "Encrypted": true,<br />         "ImageDescription": "Test CopyImage Description created on {{global:DATE}}"<br />      }<br />   }<br />]</pre>  | 
|  Variable de Automation  |  Una variable relacionada con la automatización que se sustituye en el manual de procedimientos cuando se evalúa cualquier parte del manual.  |  <pre>{ <br />   "name": "runFixedCmds",<br />   "action": "aws:runCommand",<br />   "maxAttempts": 1,<br />   "onFailure": "Continue",<br />   "inputs": { <br />      "DocumentName": "AWS-RunPowerShellScript",<br />      "InstanceIds": [ <br />         "{{LaunchInstance.InstanceIds}}"<br />      ],<br />      "Parameters": { <br />         "commands": [ <br />            "dir",<br />            "date",<br />            "“{{outputFormat}}” -f “left”,”right”,”{{global:DATE}}”,”{{automation:EXECUTION_ID}}”<br />         ]<br />      }<br />   }<br />}</pre>  | 
|  Parámetro de Systems Manager  |  Un variable definida en AWS Systems Manager Parameter Store. No se puede referenciar directamente en la entrada de paso. Es posible que se requieran permisos para acceder al parámetro.  |  <pre><br />description: Launch new Windows test instance<br />schemaVersion: '0.3'<br />assumeRole: '{{AutomationAssumeRole}}'<br />parameters:<br />  AutomationAssumeRole:<br />    type: String<br />    default: ''<br />    description: >-<br />      (Required) The ARN of the role that allows Automation to perform the<br />      actions on your behalf. If no role is specified, Systems Manager<br />      Automation uses your IAM permissions to run this runbook.<br />  LatestAmi:<br />    type: String<br />    default: >-<br />      {{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}<br />    description: The latest Windows Server 2016 AMI queried from the public parameter.<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{LatestAmi}}'<br />...</pre>  | 

## Escenarios admitidos
<a name="automation-variables-support"></a>


****  

| Escenario | Comentarios | Ejemplo | 
| --- | --- | --- | 
|  ARN constante `assumeRole` en la creación.  |  Se lleva a cabo una comprobación de autenticación para verificar que el usuario que realiza la llamada tiene permiso para pasar el `assumeRole` indicado.  |  <pre>{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "arn:aws:iam::123456789012:role/roleName",<br />  "parameters": { <br />  ...</pre>  | 
|  Parámetro de manual de procedimientos suministrado para `AssumeRole` cuando se inicia la automatización.  |  Se debe definir en la lista de parámetros del manual de procedimientos.  |  <pre>{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "{{dynamicARN}}",<br />  "parameters": {<br /> ...</pre>  | 
|  Valor proporcionado para el parámetro del manual de procedimientos en el inicio.  |  El cliente proporciona el valor que se usará para un parámetro. Las entradas suministradas en el inicio deben estar definidas en la lista de parámetros del manual de procedimientos.  |  <pre>...<br />"parameters": {<br />    "amiId": {<br />      "type": "String",<br />      "default": "ami-12345678",<br />      "description": "list of commands to run as part of first step"<br />    },<br />...</pre> Las entradas en la ejecución de automatización de inicio incluyen: `{"amiId" : ["ami-12345678"] }`  | 
|  Parámetro de Systems Manager que se referencia en el contenido del manual de procedimientos.  |  La variable existe dentro de la cuenta del cliente o es un parámetro de acceso público, y el `AssumeRole` para el manual de procedimientos tiene acceso a la variable. Se lleva a cabo una comprobación en el momento de la creación para confirmar que `AssumeRole` tiene acceso. No se puede referenciar de manera directa el parámetro en la entrada de paso.  |  <pre><br />...<br />parameters:<br />    LatestAmi:<br />    type: String<br />    default: >-<br />      {{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}<br />    description: The latest Windows Server 2016 AMI queried from the public parameter.<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{LatestAmi}}'<br />...</pre>  | 
|  Variable del sistema a la que se hace referencia en la definición del paso  |  Una variable de sistema se sustituye en el manual de procedimientos cuando se inicia la automatización. El valor inyectado en el manual de procedimientos es relativo al momento en el que se produce la sustitución. Por ejemplo, el valor de una variable de tiempo inyectada en el paso 1 es diferente del valor inyectado en el paso 3 debido al tiempo que se tarda en ejecutar los pasos intermedios. No es necesario que las variables del sistema se establezcan en la lista de parámetros del manual de procedimientos.  |  <pre>...<br />  "mainSteps": [<br />    {<br />      "name": "RunSomeCommands",<br />      "action": "aws:runCommand",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "DocumentName": "AWS:RunPowerShell",<br />        "InstanceIds": ["{{LaunchInstance.InstanceIds}}"],<br />        "Parameters": {<br />            "commands" : [<br />                "echo {The time is now {{global:DATE_TIME}}}"<br />            ]<br />        }<br />    }<br />}, ... </pre>  | 
|  Variable de Automation a la que se hace referencia en la definición del paso.  |  No es necesario que las variables de Automation se establezcan en la lista de parámetros del manual de procedimientos. La única variable de Automation admitida es **automation:EXECUTION\$1ID**.  |  <pre>...<br />"mainSteps": [<br />    {<br />      "name": "invokeLambdaFunction",<br />      "action": "aws:invokeLambdaFunction",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "FunctionName": "Hello-World-LambdaFunction",<br /><br />"Payload" : "{ "executionId" : "{{automation:EXECUTION_ID}}" }"<br />      }<br />    }<br />... </pre>  | 
|  Hacer referencia a la salida del paso anterior en la definición del paso siguiente.  |  Es el redireccionamiento de parámetros. Se hace referencia a la salida de un paso anterior con la sintaxis `{{stepName.OutputName}}`. El cliente no puede usar esta sintaxis para los parámetros del manual de procedimientos. Esto se resuelve cuando se ejecuta el paso de la referencia. El parámetro no se incluye en la lista de parámetros del manual de procedimientos.  |  <pre>...<br />"mainSteps": [<br />    {<br />      "name": "LaunchInstance",<br />      "action": "aws:runInstances",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "ImageId": "{{amiId}}",<br />        "MinInstanceCount": 1,<br />        "MaxInstanceCount": 2<br />      }<br />    },<br />    {<br />      "name":"changeState",<br />      "action": "aws:changeInstanceState",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "InstanceIds": ["{{LaunchInstance.InstanceIds}}"],<br />        "DesiredState": "terminated"<br />      }<br />    }<br /><br />... </pre>  | 

## Escenarios no admitidos
<a name="automation-variables-unsupported"></a>


****  

| Escenario | Comentario | Ejemplo | 
| --- | --- | --- | 
|  Parámetro de Systems Manager proporcionado para `assumeRole` en la creación  |  No admitido.  |  <pre>...<br /><br />{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "{{ssm:administratorRoleARN}}",<br />  "parameters": {<br /><br />... </pre>  | 
|  Parámetro de Systems Manager que se referencia de manera directa en la entrada de paso  |  Devuelve la excepción `InvalidDocumentContent` en el momento de la creación.  |  <pre><br />...<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}'<br />...</pre>  | 
|  Definición de paso variable  |  La definición de un paso en el manual de procedimientos se construye a través de variables.  |  <pre>...<br /><br />"mainSteps": [<br />    {<br />      "name": "LaunchInstance",<br />      "action": "aws:runInstances",<br />      "{{attemptModel}}": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "ImageId": "ami-12345678",<br />        "MinInstanceCount": 1,<br />        "MaxInstanceCount": 2<br />      }<br /><br />...<br /><br />User supplies input : { "attemptModel" : "minAttempts" } </pre>  | 
|  Referencia cruzada de los parámetros del manual de procedimientos  |  El usuario proporciona un parámetro de entrada en el inicio, que es una referencia a otro parámetro del manual de procedimientos.  |  <pre>...<br />"parameters": {<br />    "amiId": {<br />      "type": "String",<br />      "default": "ami-7f2e6015",<br />      "description": "list of commands to run as part of first step"<br />    },<br />    "alternateAmiId": {<br />      "type": "String",<br />      "description": "The alternate AMI to try if this first fails".<br /><br />"default" : "{{amiId}}"<br />    },<br /><br />... </pre>  | 
|  Expansión multinivel  |  El manual de procedimientos define una variable que toma el nombre de una variable. Se encuentra dentro de los delimitadores de variable (es decir, *\$1\$1 \$1\$1*) y se expande al valor de dicho parámetro/variable.  |  <pre>...<br />  "parameters": {<br />    "firstParameter": {<br />      "type": "String",<br />      "default": "param2",<br />      "description": "The parameter to reference"<br />    },<br />    "secondParameter": {<br />      "type": "String",<br />      "default" : "echo {Hello world}",<br />      "description": "What to run"<br />    }<br />  },<br />  "mainSteps": [{<br />      "name": "runFixedCmds",<br />      "action": "aws:runCommand",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "DocumentName": "AWS-RunPowerShellScript",<br /><br />"InstanceIds" : "{{LaunchInstance.InstanceIds}}",<br />        "Parameters": {<br />          "commands": [ "{{ {{firstParameter}} }}"]<br /><br />}<br /><br />...<br /><br />Note: The customer intention here would be to run a command of "echo {Hello world}" </pre>  | 
|  Referencia a la salida de un paso de manual de procedimientos que es un tipo de variable diferente  |  El usuario referencia la salida de un paso de manual de procedimientos anterior en el paso siguiente. La salida es un tipo de variable que no cumple los requisitos de la acción en el paso siguiente.  |  <pre>...<br />mainSteps:<br />- name: getImageId<br />  action: aws:executeAwsApi<br />  inputs:<br />    Service: ec2<br />    Api: DescribeImages<br />    Filters:  <br />    - Name: "name"<br />      Values: <br />      - "{{ImageName}}"<br />  outputs:<br />  - Name: ImageIdList<br />    Selector: "$.Images"<br />    Type: "StringList"<br />- name: copyMyImages<br />  action: aws:copyImage<br />  maxAttempts: 3<br />  onFailure: Abort<br />  inputs:<br />    SourceImageId: {{getImageId.ImageIdList}}<br />    SourceRegion: ap-northeast-2<br />    ImageName: Encrypted Copies of LAMP base AMI in ap-northeast-2<br />    Encrypted: true <br />... <br />Note: You must provide the type required by the Automation action. <br />In this case, aws:copyImage requires a "String" type variable but the preceding step outputs a "StringList" type variable.<br />                                        </pre>  | 