

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

# Referencia de la estructura de acciones
<a name="action-reference"></a>

En esta sección se hace referencia únicamente a la configuración de acciones. Para obtener información general conceptual sobre la estructura de la canalización, consulte [CodePipeline referencia de estructura de tubería](reference-pipeline-structure.md).

Cada proveedor de acciones CodePipeline utiliza un conjunto de campos de configuración obligatorios y opcionales en la estructura de la canalización. En esta sección se proporciona la siguiente información de referencia según el proveedor de acciones:
+ Valores válidos para los campos `ActionType` incluidos en el bloque de acción de estructura de canalización, como, por ejemplo, `Owner` y `Provider`.
+ Descripciones y otra información de referencia sobre los parámetros `Configuration` (obligatorios y opcionales) incluidos en la sección de acción de estructura de canalización.
+ Campos de acción JSON y YAML de ejemplo válidos.

Esta sección se actualiza periódicamente con más proveedores de acciones. La información de referencia está disponible actualmente para los siguientes proveedores de acciones:

**Topics**
+ [Referencia de la acción de Amazon EC2](action-reference-EC2Deploy.md)
+ [Referencia de acciones de origen de Amazon ECR](action-reference-ECR.md)
+ [Referencia de la acción de compilación `ECRBuildAndPublish`](action-reference-ECRBuildAndPublish.md)
+ [Referencia de acciones de implementación de Amazon ECS y CodeDeploy azul-verde](action-reference-ECSbluegreen.md)
+ [Referencia de acción de implementación de Amazon Elastic Container Service](action-reference-ECS.md)
+ [Referencia de la acción de implementación de `EKS` de Amazon Elastic Kubernetes Service](action-reference-EKS.md)
+ [Referencia de la acción de implementación de AWS Lambda](action-reference-LambdaDeploy.md)
+ [Referencia de acción de implementación de Amazon S3](action-reference-S3Deploy.md)
+ [Referencia sobre la acción de origen de Amazon S3](action-reference-S3.md)
+ [Referencia de la acción de implementación de AWS AppConfig](action-reference-AppConfig.md)
+ [Referencia de la acción de implementación de CloudFormation](action-reference-CloudFormation.md)
+ [CloudFormation StackSets](action-reference-StackSets.md)
+ [AWS CodeBuild referencia de acción de construcción y prueba](action-reference-CodeBuild.md)
+ [AWS CodePipeline invocar la referencia de acción](action-reference-PipelineInvoke.md)
+ [AWS CodeCommit referencia de acción de origen](action-reference-CodeCommit.md)
+ [Referencia de la acción de implementación de AWS CodeDeploy](action-reference-CodeDeploy.md)
+ [CodeStarSourceConnection para Bitbucket Cloud, GitHub Enterprise Server GitHub, GitLab .com y acciones autogestionadas GitLab](action-reference-CodestarConnectionSource.md)
+ [Referencia de la acción de Comandos](action-reference-Commands.md)
+ [AWS Device Farm referencia de acción de prueba](action-reference-DeviceFarm.md)
+ [Referencia de la acción de implementación de Elastic Beanstalk](action-reference-Beanstalk.md)
+ [Referencia de la acción de invocación de `InspectorScan` de Amazon Inspector](action-reference-InspectorScan.md)
+ [AWS Lambda invocar la referencia de acción](action-reference-Lambda.md)
+ [Referencia de la acción de implementación de AWS OpsWorks](action-reference-OpsWorks.md)
+ [Referencia de la acción de implementación de AWS Service Catalog](action-reference-ServiceCatalog.md)
+ [AWS Step Functions](action-reference-StepFunctions.md)

# Referencia de la acción de Amazon EC2
<a name="action-reference-EC2Deploy"></a>

Una acción `EC2` de Amazon EC2 se utiliza para implementar el código de aplicación en su flota de implementación. Su flota de implementación puede estar formada por instancias de Linux de Amazon EC2 o nodos de Linux administrados en SSM. Las instancias deben tener instalado SSM Agent.

**nota**  
Esta acción admite solo tipos de instancias de Linux. El tamaño de flota máximo admitido son 500 instancias.

La acción seleccionará un número de instancias en función de un número máximo especificado. Se elegirán primero las instancias anteriores que hayan fallado. La acción omitirá la implementación en determinadas instancias en caso de que la instancia ya haya recibido la implementación del mismo artefacto de entrada, como en el caso de que la acción hubiese fallado anteriormente.

**nota**  
Esta acción solo se admite para canalizaciones de tipo V2.

**Topics**
+ [

## Tipo de acción
](#action-reference-EC2Deploy-type)
+ [

## Parámetros de configuración
](#action-reference-EC2Deploy-parameters)
+ [

## Artefactos de entrada
](#action-reference-EC2Deploy-input)
+ [

## Artefactos de salida
](#action-reference-EC2Deploy-output)
+ [

## Permisos de la política de rol de servicio para la acción de implementación de EC2
](#action-reference-EC2Deploy-permissions-action)
+ [

## Referencia del archivo de especificaciones de implementación
](#action-reference-EC2Deploy-spec-reference)
+ [

## Declaración de acciones
](#action-reference-EC2Deploy-example)
+ [

## Ejemplo de declaración de acción con especificaciones de implementación
](#action-reference-EC2Deploy-example-spec)
+ [

## Véase también
](#action-reference-EC2Deploy-links)

## Tipo de acción
<a name="action-reference-EC2Deploy-type"></a>
+ Categoría: `Deploy`
+ Propietario: `AWS`
+ Proveedor: `EC2`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-EC2Deploy-parameters"></a>

**InstanceTagKey**  
Obligatorio: sí  
La clave de etiqueta de las instancias que creó en Amazon EC2, como `Name`.

**InstanceTagValue**  
Obligatorio: no  
El valor de etiqueta de las instancias que creó en Amazon EC2, como `my-instances`.  
Si no se especifica este valor, se **InstanceTagKey**compararán todas las instancias con.

**InstanceType**  
Obligatorio: sí  
El tipo de instancias o nodos de SSM creados en Amazon EC2. Los valores válidos son `EC2` y `SSM_MANAGED_NODE`.  
Debe haber creado, etiquetado e instalado SSM Agent en todas las instancias.  
Al crear la instancia, se crea un rol de instancia de EC2 o se utiliza uno existente. Para evitar `Access Denied` errores, debes añadir permisos de bucket de S3 a la función de instancia para conceder a la instancia permisos de acceso al bucket de CodePipeline artefactos. Cree un rol predeterminado o actualice el rol actual con el permiso `s3:GetObject` limitado al bucket de artefactos correspondiente a la región de su canalización.

**TargetDirectory**  
Obligatorio: sí (en caso de que se especifique script)  
El directorio que se debe usar en la instancia de Amazon EC2 para ejecutar scripts.

**DeploySpec**  
Obligatorio: sí (en caso de que se definan especificaciones de implementación)  
El archivo que se utilizará para configurar los eventos de instalación y ciclo de vida de la implementación. Para obtener información y las descripciones de los campos de especificaciones de implementación, consulte [Referencia del archivo de especificaciones de implementación](#action-reference-EC2Deploy-spec-reference). Para ver la configuración de una acción con el archivo de especificaciones de implementación indicado, consulte el ejemplo de [Ejemplo de declaración de acción con especificaciones de implementación](#action-reference-EC2Deploy-example-spec).

**MaxBatch**  
Obligatorio: no  
El número máximo de instancias que se permite implementar en paralelo.

**MaxError**  
Obligatorio: no  
El número máximo de errores de instancia permitidos durante la implementación.

**TargetGroupNameList**  
Obligatorio: no  
La lista de nombres de grupos de destino para la implementación. Los grupos de destino deben estar ya creados.  
Los grupos de destino proporcionan un conjunto de instancias para procesar solicitudes específicas. Si se especifica el grupo de destino, las instancias se eliminarán del grupo de destino antes de la implementación y se volverán a agregar al grupo de destino después de la implementación.

**PreScript**  
Obligatorio: no  
El script que se ejecutará antes de la fase de implementación de la acción.

**PostScript**  
Obligatorio: sí  
El script que se ejecutará después de la fase de implementación de la acción.

La siguiente imagen muestra un ejemplo de la página **Editar** de la acción en la que se elige **Usar la configuración de la acción**.

![\[La página Editar acciones para una nueva canalización, donde la acción EC2 Implementar especifica el uso de la configuración de la acción\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/ec2deploy-action.png)


La siguiente imagen muestra un ejemplo de la página de **edición** de la acción en la que se selecciona **Usar un DeploySpec archivo**.

![\[Página de edición de acciones para una nueva canalización con la opción EC2 Implementar acción para usar un archivo de especificaciones\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/ec2deploy-action-spec.png)


## Artefactos de entrada
<a name="action-reference-EC2Deploy-input"></a>
+ **Número de artefactos:** `1`
+ **Descripción:** los archivos proporcionados (en caso de haberlos) para respaldar las acciones del script durante la implementación.

## Artefactos de salida
<a name="action-reference-EC2Deploy-output"></a>
+ **Número de artefactos:** `0` 
+ **Descripción:** los artefactos de salida no se aplican a este tipo de acción.

## Permisos de la política de rol de servicio para la acción de implementación de EC2
<a name="action-reference-EC2Deploy-permissions-action"></a>

Cuando CodePipeline se ejecuta la acción, el rol de CodePipeline servicio requiere los siguientes permisos, con el alcance adecuado para acceder con los mínimos privilegios.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "StatementWithAllResource",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "elasticloadbalancing:DescribeTargetGroupAttributes",
                "elasticloadbalancing:DescribeTargetGroups",
                "elasticloadbalancing:DescribeTargetHealth",
                "ssm:CancelCommand",
                "ssm:DescribeInstanceInformation",
                "ssm:ListCommandInvocations"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "StatementForLogs",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:/aws/codepipeline/{{pipelineName}}:*"
            ]
        },
        {
            "Sid": "StatementForElasticloadbalancing",
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:DeregisterTargets",
                "elasticloadbalancing:RegisterTargets"
            ],
            "Resource": [
                "arn:aws:elasticloadbalancing:us-east-1:111122223333:targetgroup/[[targetGroupName]]/*"
            ]
        },
        {
            "Sid": "StatementForSsmOnTaggedInstances",
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/{{tagKey}}": "{{tagValue}}"
                }
            }
        },
        {
            "Sid": "StatementForSsmApprovedDocuments",
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1::document/AWS-RunPowerShellScript",
                "arn:aws:ssm:us-east-1::document/AWS-RunShellScript"
            ]
        }
    ]
}
```

------

### Registra los grupos de tu canalización en CloudWatch registros
<a name="action-reference-EC2Deploy-logs"></a>

Cuando CodePipeline se ejecuta la acción, CodePipeline crea un grupo de registros con el nombre de la canalización, tal como se indica a continuación. Esto permite reducir los permisos para registrar los recursos mediante el nombre de la canalización.

```
/aws/codepipeline/MyPipelineName
```

Los siguientes permisos de registro se incluyen en las actualizaciones anteriores para el rol de servicio.
+ registros: CreateLogGroup
+ registros: CreateLogStream
+ registros: PutLogEvents

Para ver los registros en la consola mediante la página del cuadro de diálogo de detalles de la acción, se debe agregar el permiso para ver los registros al rol de la consola. Para obtener más información, consulte el ejemplo de política de permisos para consolas en [Permisos necesarios para ver los registros de procesamiento en la consola](security-iam-permissions-console-logs.md).

### Permisos de política de roles de servicio para CloudWatch registros
<a name="w2aac56c13c21c11"></a>

Cuando CodePipeline se ejecuta la acción, CodePipeline crea un grupo de registros con el nombre de la canalización, tal como se indica a continuación. Esto permite reducir los permisos para registrar los recursos mediante el nombre de la canalización.

```
/aws/codepipeline/MyPipelineName
```

Para ver los registros en la consola mediante la página del cuadro de diálogo de detalles de la acción, se debe agregar el permiso para ver los registros al rol de la consola. Para obtener más información, consulte el ejemplo de política de permisos para consolas en [Permisos necesarios para ver los registros de procesamiento en la consola](security-iam-permissions-console-logs.md).

## Referencia del archivo de especificaciones de implementación
<a name="action-reference-EC2Deploy-spec-reference"></a>

Cuando CodePipeline se ejecute la acción, puede especificar un archivo de especificaciones para configurar la implementación en sus instancias. El archivo de especificaciones de implementación especifica qué se debe instalar y qué enlaces de eventos del ciclo de vida se deben ejecutar como respuesta a los eventos del ciclo de vida de implementación. El archivo de especificaciones de implementación siempre tiene formato YAML. El archivo de especificaciones de implementación se utiliza para:
+ Asignar los archivos de origen de la revisión de la aplicación a sus destinos en la instancia.
+ Especificar permisos personalizados para los archivos implementados.
+ Especificar los scripts que se van a ejecutar en cada instancia en las distintas fases del proceso de implementación.

El archivo de especificaciones de despliegue admite parámetros de configuración de despliegue específicos compatibles CodeDeploy con el AppSpec archivo. Puede usar el AppSpec archivo existente directamente y se ignorarán los parámetros no admitidos. Para obtener más información sobre el AppSpec archivo CodeDeploy, consulte la referencia al archivo de especificaciones de la aplicación en la *Guía del [CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file.html)usuario*.

Los parámetros de implementación del archivo se especifican como se indica a continuación. 
+ `files`: el archivo de especificaciones de implementación designa los valores de `source:` y `destination:` para los archivos de implementación. 
+ `scripts`: los eventos incluidos en los scripts para la implementación. Se admiten dos eventos: `BeforeDeploy` y `AfterDeploy`.
+ `hooks`: los enlaces de ciclo de vida del evento. Se admiten los siguientes enlaces: `ApplicationStop`, `BeforeInstall`, `AfterInstall`, `ApplicationStart` y `ValidateService`.
**nota**  
El parámetro hooks es AppSpec compatible con la versión 0.0 (AppSpec formato) CodeDeploy y solo está disponible en ella. Para este formato, CodePipeline realizará un mapeo de los eventos al máximo.

El archivo de especificaciones debe emplear los espacios como requiere YAML. Se producirá un error si las posiciones y el número de los espacios del archivo de especificaciones de implementación no son correctos. Para obtener más información acerca del espaciado, consulte la especificación de [YAML](http://www.yaml.org/).

A continuación, se muestra un ejemplo de archivo de especificaciones de implementación. 

```
version: 0.1
files:
  - source: /index.html
    destination: /var/www/html/
scripts:
  BeforeDeploy:
    - location: scripts/install_dependencies
      timeout: 300
      runas: myuser
  AfterDeploy:
    - location: scripts/start_server
      timeout: 300
      runas: myuser
```

Para ver la configuración de una acción con el archivo de especificaciones de implementación indicado, consulte el ejemplo de [Ejemplo de declaración de acción con especificaciones de implementación](#action-reference-EC2Deploy-example-spec).

## Declaración de acciones
<a name="action-reference-EC2Deploy-example"></a>

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

```
name: DeployEC2
actions:
- name: EC2
  actionTypeId:
    category: Deploy
    owner: AWS
    provider: EC2
    version: '1'
  runOrder: 1
  configuration:
    InstanceTagKey: Name
    InstanceTagValue: my-instances
    InstanceType: EC2
    PostScript: "test/script.sh",
    TargetDirectory: "/home/ec2-user/deploy"
  outputArtifacts: []
  inputArtifacts:
  - name: SourceArtifact
  region: us-east-1
```

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

```
{
    "name": "DeployEC2",
    "actions": [
        {
            "name": "EC2Deploy",
            "actionTypeId": {
                "category": "Deploy",
                "owner": "AWS",
                "provider": "EC2",
                "version": "1"
            },
            "runOrder": 1,
            "configuration": {
                "InstanceTagKey": "Name",
                "InstanceTagValue": "my-instances",
                "InstanceType": "EC2",
                "PostScript": "test/script.sh",
                "TargetDirectory": "/home/ec2-user/deploy"
            },
            "outputArtifacts": [],
            "inputArtifacts": [
                {
                    "name": "SourceArtifact"
                }
            ],
            "region": "us-east-1"
        }
    ]
},
```

------

## Ejemplo de declaración de acción con especificaciones de implementación
<a name="action-reference-EC2Deploy-example-spec"></a>

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

```
name: DeployEC2
actions:
- name: EC2
  actionTypeId:
    category: Deploy
    owner: AWS
    provider: EC2
    version: '1'
  runOrder: 1
  configuration:
    DeploySpec: "deployspec.yaml"
    InstanceTagKey: Name
    InstanceTagValue: my-instances
    InstanceType: EC2
  outputArtifacts: []
  inputArtifacts:
  - name: SourceArtifact
  region: us-east-1
```

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

```
{
    "name": "DeployEC2",
    "actions": [
        {
            "name": "EC2Deploy",
            "actionTypeId": {
                "category": "Deploy",
                "owner": "AWS",
                "provider": "EC2",
                "version": "1"
            },
            "runOrder": 1,
            "configuration": {
                "DeploySpec": "deployspec.yaml",
                "InstanceTagKey": "Name",
                "InstanceTagValue": "my-instances",
                "InstanceType": "EC2"
            },
            "outputArtifacts": [],
            "inputArtifacts": [
                {
                    "name": "SourceArtifact"
                }
            ],
            "region": "us-east-1"
        }
    ]
},
```

------

## Véase también
<a name="action-reference-EC2Deploy-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+  [Tutorial: Implemente en instancias de Amazon EC2 con CodePipeline](tutorials-ec2-deploy.md). Este tutorial sirve de guía para crear instancias de EC2, donde se implementará un archivo de script, así como para crear la canalización mediante la acción de EC2.
+ [Error en la acción de implementación de EC2 con el mensaje `No such file`](troubleshooting.md#troubleshooting-ec2-deploy). En este tema, se ofrecen soluciones para los problemas relacionados con errores de archivos no encontrados con la acción de EC2.

# Referencia de acciones de origen de Amazon ECR
<a name="action-reference-ECR"></a>

Activa la canalización cuando se envía una nueva imagen al repositorio de Amazon ECR. Esta acción proporciona un archivo de definiciones de imagen que hace referencia al URI de la imagen que se ha enviado a Amazon ECR. Esta acción de origen se utiliza a menudo junto con otra acción de origen, como CodeCommit, para permitir una ubicación de origen para todos los demás artefactos de origen. Para obtener más información, consulte [Tutorial: Creación de una canalización con una fuente y ECS-to-CodeDeploy una implementación de Amazon ECR](tutorials-ecs-ecr-codedeploy.md).

Cuando utilizas la consola para crear o editar tu canalización, CodePipeline crea una EventBridge regla que inicia tu canalización cuando se produce un cambio en el repositorio.

**nota**  
Para Amazon ECR, Amazon S3 o CodeCommit Sources, también puedes crear una anulación de fuente mediante la entrada input transform para usar la entrada `revisionValue` in EventBridge para tu evento de canalización, donde `revisionValue` se deriva de la variable de evento de origen para tu clave de objeto, confirmación o ID de imagen. Para obtener más información, consulte el paso opcional para la entrada de transformación de entrada, que se incluye en los procedimientos de [Acciones y recursos fuente de Amazon ECR EventBridge](create-cwe-ecr-source.md), [Conexión a acciones de origen de Amazon S3 con un origen habilitado para eventos](create-S3-source-events.md) o [CodeCommit acciones de origen y EventBridge](triggering.md).

Ya debe haber creado un repositorio de Amazon ECR y enviado una imagen antes de conectar la canalización a través de una acción de Amazon ECR.

**Topics**
+ [

## Tipo de acción
](#action-reference-ECR-type)
+ [

## Parámetros de configuración
](#action-reference-ECR-config)
+ [

## Artefactos de entrada
](#action-reference-ECR-input)
+ [

## Artefactos de salida
](#action-reference-ECR-output)
+ [

## Variables de salida
](#action-reference-ECR-variables)
+ [

## Permisos del rol de servicio: acción de Amazon ECR
](#edit-role-ecr)
+ [

## Declaración de acción (ejemplo de Amazon ECR)
](#action-reference-ECR-example)
+ [

## Véase también
](#action-reference-ECR-links)

## Tipo de acción
<a name="action-reference-ECR-type"></a>
+ Categoría: `Source`
+ Propietario: `AWS`
+ Proveedor: `ECR`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-ECR-config"></a>

**RepositoryName**  
Obligatorio: sí  
El nombre del repositorio de Amazon ECR al que se envió la imagen.

**ImageTag**  
Obligatorio: no  
La etiqueta utilizada para la imagen.  
Si no se especifica un valor para `ImageTag`, el valor predeterminado es `latest`.

## Artefactos de entrada
<a name="action-reference-ECR-input"></a>
+ **Número de artefactos:** `0`
+ **Descripción:** los artefactos de entrada no se aplican a este tipo de acción.

## Artefactos de salida
<a name="action-reference-ECR-output"></a>
+ **Número de artefactos:** `1` 
+ **Descripción:** esta acción produce un artefacto que contiene un archivo `imageDetail.json` que contiene el URI de la imagen que desencadenó la ejecución de la canalización. Para obtener más información sobre el archivo `imageDetail.json`, consulte [Archivo ImageDetail.json para las acciones de implementación de Amazon ECS blue/green](file-reference.md#file-reference-ecs-bluegreen).

## Variables de salida
<a name="action-reference-ECR-variables"></a>

Cuando se configura, esta acción produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Esta acción produce variables que se pueden ver como variables de salida, incluso si la acción no tiene un espacio de nombres. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores.

Para obtener más información, consulte [Referencia de variables](reference-variables.md).

**RegistryId**  
El ID de AWS cuenta asociado al registro que contiene el repositorio.

**RepositoryName**  
El nombre del repositorio de Amazon ECR al que se envió la imagen.

**ImageTag**  
La etiqueta utilizada para la imagen.  
La variable de salida `ImageTag` no se genera cuando se anula la revisión de origen

**ImageDigest**  
El resumen `sha256` del manifiesto de la imagen.

**ImageURI**  
El URI de la imagen.

## Permisos del rol de servicio: acción de Amazon ECR
<a name="edit-role-ecr"></a>

Para admitir Amazon ECR, añada lo siguiente a su instrucción de política:

```
{
    "Effect": "Allow",
    "Action": [
        "ecr:DescribeImages"
    ],
    "Resource": "resource_ARN"
},
```

Para obtener más información sobre esta acción, consulte [Referencia de acciones de origen de Amazon ECR](#action-reference-ECR).

## Declaración de acción (ejemplo de Amazon ECR)
<a name="action-reference-ECR-example"></a>

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

```
Name: Source
Actions:
  - InputArtifacts: []
    ActionTypeId:
      Version: '1'
      Owner: AWS
      Category: Source
      Provider: ECR
    OutputArtifacts:
      - Name: SourceArtifact
    RunOrder: 1
    Configuration:
      ImageTag: latest
      RepositoryName: my-image-repo

    Name: ImageSource
```

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

```
{
    "Name": "Source",
    "Actions": [
        {
            "InputArtifacts": [],
            "ActionTypeId": {
                "Version": "1",
                "Owner": "AWS",
                "Category": "Source",
                "Provider": "ECR"
            },
            "OutputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "RunOrder": 1,
            "Configuration": {
                "ImageTag": "latest",
                "RepositoryName": "my-image-repo"
            },
            "Name": "ImageSource"
        }
    ]
},
```

------

## Véase también
<a name="action-reference-ECR-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [Tutorial: Creación de una canalización con una fuente y ECS-to-CodeDeploy una implementación de Amazon ECR](tutorials-ecs-ecr-codedeploy.md)— Este tutorial proporciona un ejemplo de archivo de especificaciones de la CodeDeploy aplicación y un grupo de implementación para crear una canalización con una CodeCommit fuente de Amazon ECR que se implemente en instancias de Amazon ECS.

# Referencia de la acción de compilación `ECRBuildAndPublish`
<a name="action-reference-ECRBuildAndPublish"></a>

Esta acción de compilación permite automatizar la compilación e inserción de una nueva imagen cuando se produce un cambio en el origen. Esta acción realiza la compilación a partir de una ubicación especificada en el archivo Docker e inserta la imagen. Esta acción de compilación no es la misma que la acción de origen de Amazon ECR CodePipeline, que activa la canalización cuando se produce un cambio en el repositorio de código fuente de Amazon ECR. Para obtener información acerca de esa acción, consulte [Referencia de acciones de origen de Amazon ECR](action-reference-ECR.md).

No se trata de una acción de origen que vaya a desencadenar la canalización. Esta acción compila una imagen y la inserta en el repositorio de imágenes de Amazon ECR.

Debe haber creado ya un repositorio de Amazon ECR y haber añadido un Dockerfile a su repositorio de código fuente, por ejemplo GitHub, antes de añadir la acción a su canalización.

**importante**  
Esta acción utiliza la CodeBuild computación CodePipeline gestionada para ejecutar comandos en un entorno de compilación. Si ejecuta la acción de Comandos, se le cobrarán cargos por separado en AWS CodeBuild.

**nota**  
Esta acción solo está disponible para canalizaciones de tipo V2.

**Topics**
+ [

## Tipo de acción
](#action-reference-ECRBuildAndPublish-type)
+ [

## Parámetros de configuración
](#action-reference-ECRBuildAndPublish-config)
+ [

## Artefactos de entrada
](#action-reference-ECRBuildAndPublish-input)
+ [

## Artefactos de salida
](#action-reference-ECRBuildAndPublish-output)
+ [

## Variables de salida
](#action-reference-ECRBuildAndPublish-output-variables)
+ [

## Permisos del rol de servicio: acción `ECRBuildAndPublish`
](#edit-role-ECRBuildAndPublish)
+ [

## Declaración de acciones
](#action-reference-ECRBuildAndPublish-example)
+ [

## Véase también
](#action-reference-ECRBuildAndPublish-links)

## Tipo de acción
<a name="action-reference-ECRBuildAndPublish-type"></a>
+ Categoría: `Build`
+ Propietario: `AWS`
+ Proveedor: `ECRBuildAndPublish`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-ECRBuildAndPublish-config"></a>

**ECRRepositoryNombre**  
Obligatorio: sí  
Nombre del repositorio de Amazon ECR donde se inserta la imagen.

**DockerFilePath**  
Obligatorio: no  
Ubicación del archivo Docker utilizado para compilar la imagen. Opcionalmente, puede proporcionar una ubicación alternativa para el archivo docker si no está en el nivel raíz.  
Si no se especifica ningún valor para `DockerFilePath`, el valor predeterminado es el nivel raíz del repositorio de origen.

**ImageTags**  
Obligatorio: no  
Etiquetas utilizadas para la imagen. Puede introducir varias etiquetas como una lista de cadenas delimitadas por comas.  
Si no se especifica un valor para `ImageTags`, el valor predeterminado es `latest`.

**RegistryType**  
Obligatorio: no  
Especifica si el repositorio es público o privado. Los valores válidos son `private | public`.  
Si no se especifica un valor para `RegistryType`, el valor predeterminado es `private`.

## Artefactos de entrada
<a name="action-reference-ECRBuildAndPublish-input"></a>
+ **Número de artefactos:** `1`
+ **Descripción:** el artefacto generado por la acción de origen que contiene el Dockerfile necesario para compilar la imagen.

## Artefactos de salida
<a name="action-reference-ECRBuildAndPublish-output"></a>
+ **Número de artefactos:** `0` 

## Variables de salida
<a name="action-reference-ECRBuildAndPublish-output-variables"></a>

Cuando se configura, esta acción produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Esta acción produce variables que se pueden ver como variables de salida, incluso si la acción no tiene un espacio de nombres. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores. 

Para obtener más información, consulte [Referencia de variables](reference-variables.md).

**ECRImageDigestId **  
El resumen `sha256` del manifiesto de la imagen.

**ECRRepositoryNombre **  
El nombre del repositorio de Amazon ECR al que se envió la imagen.

## Permisos del rol de servicio: acción `ECRBuildAndPublish`
<a name="edit-role-ECRBuildAndPublish"></a>

Para la compatibilidad con la acción `ECRBuildAndPublish`, agregue lo siguiente a su declaración de política:

```
{
    "Statement": [
         {
            "Sid": "ECRRepositoryAllResourcePolicy",
            "Effect": "Allow",
            "Action": [
                "ecr:DescribeRepositories",
                "ecr:GetAuthorizationToken",
                "ecr-public:DescribeRepositories",
                "ecr-public:GetAuthorizationToken"
            ],
        "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken",
                "ecr:InitiateLayerUpload",
                "ecr:UploadLayerPart",
                "ecr:CompleteLayerUpload",
                "ecr:PutImage",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchCheckLayerAvailability"
            ],
            "Resource": "PrivateECR_Resource_ARN"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr-public:GetAuthorizationToken",
                "ecr-public:DescribeRepositories",
                "ecr-public:InitiateLayerUpload",
                "ecr-public:UploadLayerPart",
                "ecr-public:CompleteLayerUpload",
                "ecr-public:PutImage",
                "ecr-public:BatchCheckLayerAvailability",
                "sts:GetServiceBearerToken"
            ],
            "Resource": "PublicECR_Resource_ARN"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sts:GetServiceBearerToken"
            ],
            "Resource": "*"
        }
    ]
}
```

Además, si aún no los has agregado para la `Commands` acción, agrega los siguientes permisos a tu rol de servicio para ver CloudWatch los registros.

```
{
    "Effect": "Allow",
    "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream", 
        "logs:PutLogEvents"
    ],
    "Resource": "resource_ARN"
},
```

**nota**  
Reduzca los permisos al nivel de recursos de la canalización a través de los permisos basados en recursos de la declaración de la política del rol de servicio.

Para obtener más información sobre esta acción, consulte [Referencia de la acción de compilación `ECRBuildAndPublish`](#action-reference-ECRBuildAndPublish).

## Declaración de acciones
<a name="action-reference-ECRBuildAndPublish-example"></a>

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

```
name: ECRBuild
actionTypeId:
  category: Build
  owner: AWS
  provider: ECRBuildAndPublish
  version: '1'
runOrder: 1
configuration:
  ECRRepositoryName: actions/my-imagerepo
outputArtifacts: []
inputArtifacts:
- name: SourceArtifact
region: us-east-1
namespace: BuildVariables
```

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

```
{
    "name": "ECRBuild",
    "actionTypeId": {
        "category": "Build",
        "owner": "AWS",
        "provider": "ECRBuildAndPublish",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {
        "ECRRepositoryName": "actions/my-imagerepo"
    },
    "outputArtifacts": [],
    "inputArtifacts": [
        {
            "name": "SourceArtifact"
        }
    ],
    "region": "us-east-1",
    "namespace": "BuildVariables"
},
```

------

## Véase también
<a name="action-reference-ECRBuildAndPublish-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [Tutorial: Cree e inserte una imagen de Docker en Amazon ECR con CodePipeline (tipo V2)](tutorials-ecr-build-publish.md). Este tutorial proporciona un ejemplo de Dockerfile e instrucciones para crear una canalización que inserta la imagen en ECR con un cambio en el repositorio de origen y, a continuación, la implementa en Amazon ECS.

# Referencia de acciones de despliegue de Amazon Elastic Container Service y CodeDeploy azul-verde
<a name="action-reference-ECSbluegreen"></a>

Puede configurar una canalización en la AWS CodePipeline que se desplieguen aplicaciones de contenedor mediante una blue/green implementación. En una blue/green implementación, puede lanzar una nueva versión de la aplicación junto con la versión anterior y probar la nueva versión antes de redirigir el tráfico a ella. También puede monitorizar el proceso de implementación y revertirlo rápidamente si hay algún problema.

La canalización completa detecta los cambios en las imágenes o en el archivo de definición de tareas y los utiliza CodeDeploy para enrutar e implementar el tráfico a un clúster y un balanceador de cargas de Amazon ECS. CodeDeploy crea un nuevo agente de escucha en el balanceador de cargas que puede dirigir la nueva tarea a través de un puerto especial. También puede configurar la canalización para que utilice una ubicación de origen, como un CodeCommit repositorio, en la que se almacene la definición de tareas de Amazon ECS.

Antes de crear la canalización, debe haber creado los recursos de Amazon ECS, los CodeDeploy recursos, el balanceador de carga y el grupo objetivo. Debe haber etiquetado y almacenado la imagen en su repositorio de imágenes y haber cargado la definición de la tarea y el AppSpec archivo en su repositorio de archivos.

**nota**  
En este tema se describe la acción de despliegue de Amazon ECS a CodeDeploy azul/verde para. CodePipeline Para obtener información de referencia sobre las acciones de implementación estándar de Amazon ECS en CodePipeline, consulte[Referencia de acción de implementación de Amazon Elastic Container Service](action-reference-ECS.md).

**Topics**
+ [

## Tipo de acción
](#action-reference-ECSbluegreen-type)
+ [

## Parámetros de configuración
](#action-reference-ECSbluegreen-config)
+ [

## Artefactos de entrada
](#action-reference-ECSbluegreen-input)
+ [

## Artefactos de salida
](#action-reference-ECSbluegreen-output)
+ [

## Permisos del rol de servicio: acción de `CodeDeployToECS`
](#edit-role-codedeploy-ecs)
+ [

## Declaración de acciones
](#action-reference-ECSbluegreen-example)
+ [

## Véase también
](#action-reference-ECSbluegreen-links)

## Tipo de acción
<a name="action-reference-ECSbluegreen-type"></a>
+ Categoría: `Deploy`
+ Propietario: `AWS`
+ Proveedor: `CodeDeployToECS`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-ECSbluegreen-config"></a>

**ApplicationName**  
Obligatorio: sí  
El nombre de la aplicación en CodeDeploy. Antes de crear la canalización, debe haber creado ya la aplicación en CodeDeploy.

**DeploymentGroupName**  
Obligatorio: sí  
El grupo de implementación especificado para los conjuntos de tareas de Amazon ECS que creó para CodeDeploy la aplicación. Antes de crear la canalización, debe haber creado ya el grupo de despliegues en él CodeDeploy.

**TaskDefinitionTemplateArtifact**  
Obligatorio: sí  
El nombre del artefacto de entrada que proporciona el archivo de definición de tareas a la acción de implementación. Este es generalmente el nombre del artefacto de salida de la acción de origen. Cuando utiliza la consola, el nombre por defecto del artefacto de salida de la acción de origen es `SourceArtifact`.

**AppSpecTemplateArtifact**  
Obligatorio: sí  
El nombre del artefacto de entrada que proporciona el AppSpec archivo a la acción de despliegue. Este valor se actualiza cuando se ejecuta la canalización. Este es generalmente el nombre del artefacto de salida de la acción de origen. Cuando utiliza la consola, el nombre por defecto del artefacto de salida de la acción de origen es `SourceArtifact`. `TaskDefinition`[En el caso de AppSpec un archivo, puede conservar el texto del `<TASK_DEFINITION>` marcador de posición, tal y como se muestra aquí.](tutorials-ecs-ecr-codedeploy.md#tutorials-ecs-ecr-codedeploy-taskdefinition)

**AppSpecTemplatePath**  
Obligatorio: no  
El nombre del archivo almacenado en la ubicación del AppSpec archivo de origen de la canalización, como el CodeCommit repositorio de la canalización. El nombre del archivo predeterminado es `appspec.yaml`. Si el AppSpec archivo tiene el mismo nombre y está almacenado en el nivel raíz del repositorio de archivos, no es necesario que proporciones el nombre del archivo. Si la ruta no es la predeterminada, introdúzcala con el nombre del archivo.

**TaskDefinitionTemplatePath**  
Obligatorio: no  
El nombre de archivo de la definición de tarea almacenada en la ubicación de origen del archivo de canalización, como el CodeCommit repositorio de la canalización. El nombre del archivo predeterminado es `taskdef.json`. Si el archivo de definición de tarea tiene el mismo nombre y está almacenado en el nivel raíz del repositorio de archivos, no es necesario que proporcione el nombre del archivo. Si la ruta no es la predeterminada, introdúzcala con el nombre del archivo.

**Imagen <Number>ArtifactName**  
Obligatorio: no  
El nombre del artefacto de entrada que proporciona la imagen a la acción de implementación. Por lo general, se trata del artefacto de salida del repositorio de imágenes, como el resultado de la acción de origen de Amazon ECR.  
Los valores disponibles para `<Number>` son del 1 al 4.

**Imagen <Number>ContainerName**  
Obligatorio: no  
El nombre de la imagen disponible en el repositorio de imágenes, como el repositorio de origen de Amazon ECR.  
Los valores disponibles para `<Number>` son del 1 al 4.

## Artefactos de entrada
<a name="action-reference-ECSbluegreen-input"></a>
+ **Número de artefactos:** `1 to 5`
+ **Descripción:** La `CodeDeployToECS` acción busca primero el archivo de definición de tareas y el AppSpec archivo en el repositorio de archivos de origen, luego busca la imagen en el repositorio de imágenes, luego genera dinámicamente una nueva revisión de la definición de la tarea y, finalmente, ejecuta los AppSpec comandos para implementar el conjunto de tareas y el contenedor en el clúster.

  La acción `CodeDeployToECS` busca un archivo `imageDetail.json` que asigne el URI de la imagen a la imagen. Cuando se confirma un cambio en el repositorio de imágenes de Amazon ECR, la acción de origen de ECR de la canalización crea un archivo `imageDetail.json` para dicha confirmación. También puede añadir manualmente un archivo `imageDetail.json` para una canalización en la que la acción no esté automatizada. Para obtener más información sobre el archivo `imageDetail.json`, consulte [Archivo ImageDetail.json para las acciones de implementación de Amazon ECS blue/green](file-reference.md#file-reference-ecs-bluegreen).

  La acción `CodeDeployToECS` genera de forma dinámica una nueva revisión de la definición de la tarea. En esta fase, esta acción reemplaza los marcadores de posición del archivo de definición de tareas por el URI de imagen obtenido de los archivos ImageDetail.json. Por ejemplo, si estableces *IMAGE1\$1NAME* como ContainerName parámetro Image1, debes especificar el marcador de posición *< IMAGE1 \$1NAME>* como el valor del campo de imagen en el archivo de definición de tareas. En este caso, la acción de CodeDeployTo ECS reemplaza el marcador de posición *< IMAGE1 \$1NAME> por el URI de la imagen real recuperado de ImageDetail.json* en el artefacto que especifiques como Image1. ArtifactName

  Para las actualizaciones de las definiciones de tareas, el archivo contiene la propiedad. CodeDeploy `AppSpec.yaml` `TaskDefinition` 

  ```
  TaskDefinition: <TASK_DEFINITION>
  ```

  La acción `CodeDeployToECS` actualizará esta propiedad mediante la acción una vez creada la nueva definición de tarea.

  Para el valor del campo `TaskDefinition`, el texto del marcador de posición debe ser <TASK\$1DEFINITION>. La acción `CodeDeployToECS` reemplaza este marcador de posición por el ARN real de la definición de tarea generada dinámicamente.

## Artefactos de salida
<a name="action-reference-ECSbluegreen-output"></a>
+ **Número de artefactos:** `0` 
+ **Descripción:** los artefactos de salida no se aplican a este tipo de acción.

## Permisos del rol de servicio: acción de `CodeDeployToECS`
<a name="edit-role-codedeploy-ecs"></a>

Para la `CodeDeployToECS` acción (acción blue/green deployments), the following are the minimum permissions needed to create pipelines with a CodeDeploy to Amazon ECS blue/green de despliegue).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCodeDeployDeploymentActions",
            "Action": [
                "codedeploy:CreateDeployment",
                "codedeploy:GetDeployment"
            ],
            "Resource": [
                "arn:aws:codedeploy:*:111122223333:deploymentgroup:[[ApplicationName]]/*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "AllowCodeDeployApplicationActions",
            "Action": [
                "codedeploy:GetApplication",
                "codedeploy:GetApplicationRevision",
                "codedeploy:RegisterApplicationRevision"
            ],
            "Resource": [
                "arn:aws:codedeploy:*:111122223333:application:[[ApplicationName]]",
                "arn:aws:codedeploy:*:111122223333:application:[[ApplicationName]]/*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "AllowCodeDeployDeploymentConfigAccess",
            "Action": [
                "codedeploy:GetDeploymentConfig"
            ],
            "Resource": [
                "arn:aws:codedeploy:*:111122223333:deploymentconfig:*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "AllowECSRegisterTaskDefinition",
            "Action": [
                "ecs:RegisterTaskDefinition"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "AllowPassRoleToECS",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::111122223333:role/[[PassRoles]]"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "ecs.amazonaws.com",
                        "ecs-tasks.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

Puede optar por utilizar la autorización de etiquetado en Amazon ECS. Al suscribirse, debe otorgar los siguientes permisos: `ecs:TagResource`. Para obtener más información sobre cómo suscribirse y determinar si el permiso es obligatorio y si se aplica la autorización de etiquetas, consulte el [Plazos de la autorización de etiquetado](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#tag-resources-timeline) en la Guía para desarrolladores de Amazon Elastic Container Service.

También debe añadir los permisos `iam:PassRole` para utilizar los rones de IAM en las tareas. Para obtener más información, consulte [Rol de ejecución de tareas de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) y [Roles de IAM para tareas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html).

También puede añadir `ecs-tasks.amazonaws.com` a la lista de servicios con la condición `iam:PassedToService`, como se muestra en el ejemplo anterior.

## Declaración de acciones
<a name="action-reference-ECSbluegreen-example"></a>

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

```
Name: Deploy
Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: CodeDeployToECS
      Version: '1'
    RunOrder: 1
    Configuration:
      AppSpecTemplateArtifact: SourceArtifact
      ApplicationName: ecs-cd-application
      DeploymentGroupName: ecs-deployment-group
      Image1ArtifactName: MyImage
      Image1ContainerName: IMAGE1_NAME
      TaskDefinitionTemplatePath: taskdef.json
      AppSpecTemplatePath: appspec.yaml
      TaskDefinitionTemplateArtifact: SourceArtifact
    OutputArtifacts: []
    InputArtifacts:
      - Name: SourceArtifact
      - Name: MyImage
    Region: us-west-2
    Namespace: DeployVariables
```

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

```
{
    "Name": "Deploy",
    "Actions": [
        {
            "Name": "Deploy",
            "ActionTypeId": {
                "Category": "Deploy",
                "Owner": "AWS",
                "Provider": "CodeDeployToECS",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "AppSpecTemplateArtifact": "SourceArtifact",
                "ApplicationName": "ecs-cd-application",
                "DeploymentGroupName": "ecs-deployment-group",
                "Image1ArtifactName": "MyImage",
                "Image1ContainerName": "IMAGE1_NAME",
                "TaskDefinitionTemplatePath": "taskdef.json",
                "AppSpecTemplatePath": "appspec.yaml",
                "TaskDefinitionTemplateArtifact": "SourceArtifact"
            },
            "OutputArtifacts": [],
            "InputArtifacts": [
                {
                    "Name": "SourceArtifact"
                },
                {
                    "Name": "MyImage"
                }
            ],
            "Region": "us-west-2",
            "Namespace": "DeployVariables"
        }
    ]
}
```

------

## Véase también
<a name="action-reference-ECSbluegreen-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [Tutorial: Creación de una canalización con una fuente y ECS-to-CodeDeploy una implementación de Amazon ECR](tutorials-ecs-ecr-codedeploy.md)— Este tutorial le guía a través de la creación de CodeDeploy los recursos de Amazon ECS que necesita para una blue/green implementación. El tutorial muestra cómo insertar una imagen de Docker en Amazon ECR y cómo crear una definición de tarea de Amazon ECS que incluya el nombre de la imagen de Docker, el nombre del contenedor, el nombre del servicio de Amazon ECS y la configuración del equilibrador de carga. A continuación, el tutorial explica cómo crear el AppSpec archivo y la canalización para la implementación.
**nota**  
En este tema y en el tutorial se describe la acción CodeDeploy/ECS azul/verde de. CodePipeline Para obtener información sobre las acciones estándar de ECS CodePipeline, consulte el [tutorial: Implementación continua](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cd-pipeline.html) con. CodePipeline
+ *AWS CodeDeploy Guía del usuario*: para obtener información sobre cómo utilizar el balanceador de carga, el agente de escucha de producción, los grupos objetivo y la aplicación de Amazon ECS en una blue/green implementación, consulte el [Tutorial: Implementación de un servicio de Amazon ECS](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorial-ecs-deployment.html). Esta información de referencia de la *Guía del AWS CodeDeploy usuario* proporciona una descripción general de las implementaciones azul/verde con Amazon ECS y. AWS CodeDeploy
+ *Guía para desarrolladores de Amazon Elastic Container Service*: para obtener información sobre cómo trabajar con imágenes y contenedores de Docker, servicios y clústeres de ECS y conjuntos de tareas de ECS, consulte [¿Qué es Amazon ECS?](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/)

# Referencia de acción de implementación de Amazon Elastic Container Service
<a name="action-reference-ECS"></a>

Puede utilizar una acción de Amazon ECS para implementar un conjunto de tareas y un servicio de Amazon ECS. Un servicio de Amazon ECS es una aplicación de contenedor que se implementa en un clúster de Amazon ECS. Un clúster de Amazon ECS es una colección de instancias que alojan su aplicación de contenedores en la nube. La implementación requiere una definición de tareas que cree en Amazon ECS y un archivo de definiciones de imágenes que se CodePipeline utilice para implementar la imagen.

**importante**  
La acción de despliegue estándar de Amazon ECS CodePipeline crea su propia revisión de la definición de la tarea en función de la revisión utilizada por el servicio Amazon ECS. Si crea nuevas revisiones para la definición de la tarea sin actualizar el servicio Amazon ECS, la acción de implementación ignorará esas revisiones.

Antes de crear la canalización, debe haber creado los recursos de Amazon ECS, haber etiquetado y almacenado la imagen en su repositorio de imágenes y haber cargado el BuildSpec archivo en su repositorio de archivos.

**nota**  
En este tema de referencia se describe la acción de implementación estándar de Amazon ECS para CodePipeline. Para obtener información de referencia sobre las acciones de implementación de Amazon ECS a CodeDeploy azul/verde en CodePipeline, consulte. [Referencia de acciones de despliegue de Amazon Elastic Container Service y CodeDeploy azul-verde](action-reference-ECSbluegreen.md)

**Topics**
+ [

## Tipo de acción
](#action-reference-ECS-type)
+ [

## Parámetros de configuración
](#action-reference-ECS-config)
+ [

## Artefactos de entrada
](#action-reference-ECS-input)
+ [

## Artefactos de salida
](#action-reference-ECS-output)
+ [

## Permisos del rol de servicio: acción estándar de Amazon ECS
](#edit-role-ecs)
+ [

## Declaración de acciones
](#action-reference-ECS-example)
+ [

## Véase también
](#action-reference-ECS-links)

## Tipo de acción
<a name="action-reference-ECS-type"></a>
+ Categoría: `Deploy`
+ Propietario: `AWS`
+ Proveedor: `ECS`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-ECS-config"></a>

**ClusterName**  
Obligatorio: sí  
El clúster de Amazon ECS en Amazon ECS.

**ServiceName**  
Obligatorio: sí  
El servicio de Amazon ECS que creó en Amazon ECS.

**FileName**  
Obligatorio: no  
El nombre de su archivo de definiciones de imagen, el archivo JSON que describe el nombre del contenedor de su servicio y la imagen y la etiqueta. Este archivo se utiliza para las implementaciones estándar de ECS. Para obtener más información, consulte [Artefactos de entrada](#action-reference-ECS-input) y [Archivo imagedefinitions.json para las acciones de implementación estándar de](file-reference.md#pipelines-create-image-definitions).

**DeploymentTimeout**  
Obligatorio: no  
El tiempo de espera de la acción de implementación de Amazon ECS en minutos. El tiempo de espera se puede configurar hasta el tiempo de espera predeterminado máximo para esta acción. Por ejemplo:   

```
"DeploymentTimeout": "15"
```

## Artefactos de entrada
<a name="action-reference-ECS-input"></a>
+ **Número de artefactos:** `1`
+ **Descripción:** la acción busca un archivo `imagedefinitions.json` en el repositorio de archivos de origen para la canalización. Un documento de definiciones de imágenes es un archivo JSON que describe el nombre del contenedor de Amazon ECS, así como la imagen y la etiqueta. CodePipeline utiliza el archivo para recuperar la imagen de su repositorio de imágenes, como Amazon ECR. Puede añadir manualmente un archivo `imagedefinitions.json` para una canalización en la que la acción no esté automatizada. Para obtener más información sobre el archivo `imagedefinitions.json`, consulte [Archivo imagedefinitions.json para las acciones de implementación estándar de](file-reference.md#pipelines-create-image-definitions).

  La acción requiere una imagen existente que ya se haya subido a su repositorio de imágenes. Como la asignación de imágenes la proporciona el archivo `imagedefinitions.json`, la acción no requiere que el origen de Amazon ECR se incluya como acción de origen en el proceso.

## Artefactos de salida
<a name="action-reference-ECS-output"></a>
+ **Número de artefactos:** `0` 
+ **Descripción:** los artefactos de salida no se aplican a este tipo de acción.

## Permisos del rol de servicio: acción estándar de Amazon ECS
<a name="edit-role-ecs"></a>

A continuación se indican los permisos mínimos necesarios en Amazon ECS para crear canalizaciones con una acción de implementación de Amazon ECS.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "TaskDefinitionPermissions",
            "Effect": "Allow",
            "Action": [
                "ecs:DescribeTaskDefinition",
                "ecs:RegisterTaskDefinition"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "ECSServicePermissions",
            "Effect": "Allow",
            "Action": [
                "ecs:DescribeServices",
                "ecs:UpdateService"
            ],
            "Resource": [
                "arn:aws:ecs:*:111122223333:service/[[clusters]]/*"
            ]
        },
        {
            "Sid": "ECSTagResource",
            "Effect": "Allow",
            "Action": [
                "ecs:TagResource"
            ],
            "Resource": [
                "arn:aws:ecs:*:111122223333:task-definition/[[taskDefinitions]]:*"
            ],
            "Condition": {
                "StringEquals": {
                    "ecs:CreateAction": [
                        "RegisterTaskDefinition"
                    ]
                }
            }
        },
        {
            "Sid": "IamPassRolePermissions",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::111122223333:role/[[passRoles]]"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "ecs.amazonaws.com",
                        "ecs-tasks.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

Puede optar por utilizar la autorización de etiquetado en Amazon ECS. Al suscribirse, debe otorgar los siguientes permisos: `ecs:TagResource`. Para obtener más información sobre cómo suscribirse y determinar si el permiso es obligatorio y si se aplica la autorización de etiquetas, consulte el [Plazos de la autorización de etiquetado](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#tag-resources-timeline) en la Guía para desarrolladores de Amazon Elastic Container Service.

También debe añadir los permisos `iam:PassRole` para utilizar los roles de IAM en las tareas. Para obtener más información, consulte [Rol de ejecución de tareas de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) y [Roles de IAM para tareas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html). Utilice la siguiente política:

## Declaración de acciones
<a name="action-reference-ECS-example"></a>

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

```
Name: DeployECS
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: ECS
  Version: '1'
RunOrder: 2
Configuration:
  ClusterName: my-ecs-cluster
  ServiceName: sample-app-service
  FileName: imagedefinitions.json
  DeploymentTimeout: '15'
OutputArtifacts: []
InputArtifacts:
  - Name: my-image
```

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

```
{
    "Name": "DeployECS",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "ECS",
        "Version": "1"
    },
    "RunOrder": 2,
    "Configuration": {
        "ClusterName": "my-ecs-cluster",
        "ServiceName": "sample-app-service",
        "FileName": "imagedefinitions.json",
        "DeploymentTimeout": "15"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "my-image"
        }
    ]
},
```

------

## Véase también
<a name="action-reference-ECS-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ Consulte [Tutorial: Cree e inserte una imagen de Docker en Amazon ECR con CodePipeline (tipo V2)](tutorials-ecr-build-publish.md) el tutorial que muestra cómo utilizar la acción ECRBuildand Publicar para insertar una imagen y, a continuación, utilizar la acción estándar de ECS para implementarla en Amazon ECS.
+ [Tutorial: Implementación continua con CodePipeline](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cd-pipeline.html): en este tutorial se muestra cómo crear un Dockerfile que se almacena en un repositorio de archivos fuente, por ejemplo. CodeCommit A continuación, el tutorial muestra cómo incorporar un CodeBuild BuildSpec archivo que compila y envía la imagen de Docker a Amazon ECR y crea el archivo imagedefinitions.json. Por último, se crea una definición de tareas y servicios de Amazon ECS y, a continuación, se crea la canalización con una acción de implementación de Amazon ECS.
**nota**  
Este tema y este tutorial describen la acción de implementación estándar de Amazon ECS para CodePipeline. Para obtener información sobre las acciones de despliegue de Amazon ECS a CodeDeploy azul/verde en CodePipeline, consulte. [Tutorial: Creación de una canalización con una fuente y ECS-to-CodeDeploy una implementación de Amazon ECR](tutorials-ecs-ecr-codedeploy.md)
+ *Guía para desarrolladores de Amazon Elastic Container Service*: para obtener información sobre cómo trabajar con imágenes y contenedores de Docker, los servicios y clústeres de Amazon ECS y los conjuntos de tareas de Amazon ECS, consulte [¿Qué es Amazon ECS?](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/)

# Referencia de la acción de implementación de `EKS` de Amazon Elastic Kubernetes Service
<a name="action-reference-EKS"></a>

Puede usar la acción `EKSDeploy` para implementar un servicio de Amazon EKS. La implementación requiere un archivo de manifiesto de Kubernetes que se CodePipeline utilice para implementar la imagen.

Antes de crear la canalización, debe haber creado los recursos de Amazon ECS y haber almacenado la imagen en su repositorio de imágenes. Opcionalmente, puede proporcionar información de VPC para su clúster.

**importante**  
Esta acción utiliza la CodeBuild informática CodePipeline gestionada para ejecutar comandos en un entorno de compilación. Si ejecuta la acción de Comandos, se le cobrarán cargos por separado en AWS CodeBuild.

**nota**  
La acción de implementación de `EKS` solo está disponible para canalizaciones de tipo V2.

La acción de EKS admite clústeres de EKS públicos y privados. Los clústeres privados son el tipo recomendado por EKS, pero se admiten ambos.

La acción de EKS es compatible con las acciones en varias cuentas. Para agregar una acción de EKS en varias cuentas, agregue `actionRoleArn` en su cuenta de destino en la declaración de la acción.

**Topics**
+ [

## Tipo de acción
](#action-reference-EKS-type)
+ [

## Parámetros de configuración
](#action-reference-EKS-config)
+ [

## Artefactos de entrada
](#action-reference-EKS-input)
+ [

## Artefactos de salida
](#action-reference-EKS-output)
+ [

## Variables de entorno
](#action-reference-EKS-env-variables)
+ [

## Variables de salida
](#action-reference-EKS-output-vars)
+ [

## Permisos para las políticas de roles de servicio
](#action-reference-EKS-service-role)
+ [

## Declaración de acciones
](#action-reference-EKS-example)
+ [

## Véase también
](#action-reference-EKS-links)

## Tipo de acción
<a name="action-reference-EKS-type"></a>
+ Categoría: `Deploy`
+ Propietario: `AWS`
+ Proveedor: `EKS`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-EKS-config"></a>

**ClusterName**  
Obligatorio: sí  
El clúster de Amazon EKS en Amazon EKS.

**Opciones en Helm**  
Las siguientes opciones están disponibles cuando **Helm** es la herramienta de implementación seleccionada.    
**HelmReleaseName **  
Obligatorio: sí (solo para el tipo **Helm**)  
El nombre de la versión de la implementación.  
**HelmChartLocation **  
Obligatorio: sí (solo para el tipo **Helm**)  
La ubicación del gráfico para la implementación.  
**HelmValuesFiles **  
Obligatorio: no (opcional solo para el tipo **Helm**)  
Para anular los archivos de valores de Helm, introduzca los archivos de valores de Helm separados por comas en la ubicación del gráfico de Helm.

**Opciones en Kubectl**  
Las siguientes opciones están disponibles cuando **Kubectl** es la herramienta de implementación seleccionada.    
**ManifestFiles**  
Obligatorio: sí (solo para el tipo **Kubectl**)  
El nombre del archivo de manifiesto, el archivo de texto que describe el nombre del contenedor del servicio y la imagen y la etiqueta. Este archivo se usa para parametrizar el URI de la imagen y otra información. Puede usar una variable de entorno para este propósito.  
 Este archivo se almacena en el repositorio de origen de la canalización.

**Namespace**  
Obligatorio: no  
El espacio de nombres de Kubernetes que se utilizará en los comandos `kubectl` o `helm`.

**Subredes**  
Obligatorio: no  
Las subredes de VPC para el clúster. Forman parte de la misma VPC que está conectada al clúster. También puede proporcionar subredes que aún no estén conectadas al clúster y especificarlas aquí.

**SecurityGroupIds**  
Obligatorio: no  
Los grupos de seguridad de la VPC del clúster. Forman parte de la misma VPC que está conectada al clúster. También puede proporcionar grupos de seguridad que aún no estén conectados al clúster y especificarlos aquí.

## Artefactos de entrada
<a name="action-reference-EKS-input"></a>
+ **Número de artefactos:** `1`
+ **Descripción:** la acción busca el archivo de manifiesto de Kubernetes o gráfico de Helm en el repositorio de archivos de origen para la canalización. Si quieres usar gráficos de Helm en formato.tgz almacenados en un bucket de S3, puedes hacerlo configurando el S3 Bucket/Key como tu acción de origen. Por ejemplo, la clave de objeto proporcionada sería `my-chart-0.1.0.tgz`.

## Artefactos de salida
<a name="action-reference-EKS-output"></a>
+ **Número de artefactos:** `0` 
+ **Descripción:** los artefactos de salida no se aplican a este tipo de acción.

## Variables de entorno
<a name="action-reference-EKS-env-variables"></a>

Se usa para reemplazar variables, como los repositorios de imágenes o las etiquetas de imágenes, en los archivos de manifiesto o en los archivos de valores de gráficos de Helm.

**Key**  
La clave de un par de variables de entorno de clave-valor, como `$IMAGE_TAG`.

**Valor**  
El valor del par clave-valor, como `v1.0`. El valor se puede parametrizar con variables de salida de acciones o variables de canalización. Por ejemplo, la canalización puede tener una ECRBuild AndPublish acción que cree una imagen de ECR y la acción EKS puede usar esta imagen `${codepipeline.PipelineExecutionId}` como valor de la variable de entorno. `${codepipeline.PipelineExecutionId}` 

## Variables de salida
<a name="action-reference-EKS-output-vars"></a>

**EKSClusterNombre**  
El clúster de Amazon EKS en Amazon EKS.

## Permisos para las políticas de roles de servicio
<a name="action-reference-EKS-service-role"></a>

Para ejecutar esta acción, los siguientes permisos deben estar disponibles en la política de rol de servicio de la canalización.
+ **Acciones de EC2:** cuando se CodePipeline ejecuta la acción, se requieren permisos de instancia de EC2. Tenga en cuenta que no es lo mismo que el rol de instancia de EC2 que se requiere al crear el clúster de EKS.

  Si utiliza un rol de servicio existente, para utilizar esta acción tendrá que agregar los siguientes permisos para el rol de servicio.
  + ec2: CreateNetworkInterface
  + ec2: DescribeDhcpOptions
  + ec2: DescribeNetworkInterfaces
  + ec2: DeleteNetworkInterface
  + ec2: DescribeSubnets
  + ec2: DescribeSecurityGroups
  + ec2: DescribeVpcs
+ **Acciones de EKS:** cuando CodePipeline se ejecuta la acción, se requieren permisos de clúster de EKS. Tenga en cuenta que no es lo mismo que el rol de clúster de EKS de IAM que se requiere al crear el clúster de EKS.

  Si utiliza un rol de servicio existente, para utilizar esta acción tendrá que agregar el siguiente permiso para el rol de servicio.
  + Eks: DescribeCluster
+ **Acciones de flujo de registro:** cuando CodePipeline se ejecuta la acción, CodePipeline crea un grupo de registros con el nombre de la canalización de la siguiente manera. Esto permite reducir los permisos para registrar los recursos mediante el nombre de la canalización.

  ```
  /aws/codepipeline/MyPipelineName
  ```

  Si utiliza un rol de servicio existente, para utilizar esta acción tendrá que agregar los siguientes permisos para el rol de servicio.
  + registros: CreateLogGroup
  + registros: CreateLogStream
  + registros: PutLogEvents

En la declaración de la política de rol de servicio, limite los permisos al nivel de recurso, como se muestra en el siguiente ejemplo.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:eks:*:111122223333:cluster/YOUR_CLUSTER_NAME"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:CreateNetworkInterfacePermission",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeVpcs",
                "ec2:DescribeRouteTables"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:CreateLogGroup",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:111122223333:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME",
                "arn:aws:logs:*:111122223333:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*"
            ]
        }
    ]
}
```

------

Para ver los registros en la consola mediante la página del cuadro de diálogo de detalles de la acción, se debe agregar el permiso para ver los registros al rol de la consola. Para obtener más información, consulte el ejemplo de política de permisos para consolas en [Permisos necesarios para ver los registros de procesamiento en la consola](security-iam-permissions-console-logs.md).

### Agregación del rol de servicio como entrada de acceso al clúster
<a name="action-reference-EKS-service-role-access"></a>

Una vez que los permisos estén disponibles en la política de funciones de servicio de tu canalización, configuras los permisos del clúster añadiendo la función de CodePipeline servicio como entrada de acceso a tu clúster.

También puede usar un rol de acción que tenga los permisos actualizados. Para obtener más información, consulte el tutorial de ejemplo en [Paso 4: Cree una entrada de acceso para el rol CodePipeline de servicio](tutorials-eks-deploy.md#tutorials-eks-deploy-access-entry).

## Declaración de acciones
<a name="action-reference-EKS-example"></a>

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

```
Name: DeployEKS
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: EKS
  Version: '1'
RunOrder: 2
Configuration:
  ClusterName: my-eks-cluster
  ManifestFiles: ManifestFile.json
OutputArtifacts: []
InputArtifacts:
  - Name: SourceArtifact
```

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

```
{
    "Name": "DeployECS",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "EKS",
        "Version": "1"
    },
    "RunOrder": 2,
    "Configuration": {
        "ClusterName": "my-eks-cluster",
        "ManifestFiles": "ManifestFile.json"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "SourceArtifact"
        }
    ]
},
```

------

## Véase también
<a name="action-reference-EKS-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ Consulte en [Tutorial: Implemente en Amazon EKS con CodePipeline](tutorials-eks-deploy.md) un tutorial que muestra cómo crear un clúster de EKS y un archivo de manifiesto de Kubernetes para agregar la acción a la canalización.

# Referencia de la acción de implementación de AWS Lambda
<a name="action-reference-LambdaDeploy"></a>

Utiliza una acción de AWS Lambda implementación para administrar la implementación del código de la aplicación para la implementación sin servidor. Puede implementar una función y utilizar estrategias de implementación para la implementación del tráfico de la siguiente manera:
+ Implementaciones lineales y canarias para el cambio del tráfico
+ Implementaciones Todo a la vez

**nota**  
Esta acción solo se admite para canalizaciones de tipo V2.

**Topics**
+ [

## Tipo de acción
](#action-reference-LambdaDeploy-type)
+ [

## Parámetros de configuración
](#action-reference-LambdaDeploy-parameters)
+ [

## Artefactos de entrada
](#action-reference-LambdaDeploy-input)
+ [

## Artefactos de salida
](#action-reference-LambdaDeploy-output)
+ [

## Variables de salida
](#action-reference-LambdaDeploy-output-variables)
+ [

## Permisos de la política de rol de servicio para la acción de implementación de Lambda
](#action-reference-LambdaDeploy-permissions-action)
+ [

## Declaración de acciones
](#action-reference-LambdaDeploy-example)
+ [

## Véase también
](#action-reference-LambdaDeploy-links)

## Tipo de acción
<a name="action-reference-LambdaDeploy-type"></a>
+ Categoría: `Deploy`
+ Propietario: `AWS`
+ Proveedor: `Lambda`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-LambdaDeploy-parameters"></a>

**FunctionName**  
Obligatorio: sí  
En nombre de la función que creó en Lambda, como `MyLambdaFunction`.  
Ya debe haber creado una versión.

**FunctionAlias**  
Obligatorio: no  
El alias de la función que creó en Lambda y es la función en la que se va a implementar, por ejemplo, `live`. El alias debe existir y tener una versión subyacente cuando se inicie la ejecución de la acción. (Será la versión de destino de la reversión).  
Si no se proporciona, la acción implementa el artefacto de origen en `$LATEST` y crea una nueva versión. En este caso de uso, las opciones de estrategia de implementación y versión de destino no están disponibles. 

**PublishedTargetVersion**  
Obligatorio: no  
La versión de la función Lambda deseada en la que se va a implementar. FunctionAlias Pueden ser variables de canalización o de nivel de acción, como `#{variables.lambdaTargetVersion}`. La versión debe publicarse cuando comience la ejecución de la acción.  
Obligatorio si no se proporciona ningún artefacto de entrada.

**DeployStrategy**  
Obligatorio: no (el valor predeterminado es `AllAtOnce`)  
  
Determina la velocidad que adopta la acción de despliegue de Lambda para cambiar el tráfico de la versión original de la función Lambda a la nueva versión. **FunctionAlias** Las estrategias de implementación disponibles son canaria o lineal. Formatos aceptados:  
+ `AllAtOnce` - 

  Desvía todo el tráfico a las funciones Lambda actualizadas a la vez.

   Si no se especifica, el valor predeterminado es) `AllAtOnce`
+ `Canary10Percent5Minutes`: cambia el 10 por ciento del tráfico en el primer incremento. El 90 por ciento restante se implementa cinco minutos más tarde.

  Se pueden cambiar los valores tanto del porcentaje como de los minutos.
+ `Linear10PercentEvery1Minute`: cambia el 10 por ciento del tráfico cada minuto hasta que se cambia todo el tráfico.

  Se pueden cambiar los valores tanto del porcentaje como de los minutos.
Se deben tener en cuenta las siguientes consideraciones para este campo:  
+ El tiempo de espera total máximo es de dos días.
+ Solo está disponible cuando **FunctionAlias**se proporciona.


**Alarmas**  
Obligatorio: no  
Una lista separada por comas con los nombres de las alarmas configuradas para la implementación de Lambda. Se puede agregar un máximo de 10 alarmas. La acción falla cuando las alarmas monitorizadas pasan al estado de ALARMA.

En la siguiente imagen, se muestra un ejemplo de la página Editar de la acción.

![\[La página Editar acción para una nueva canalización con la acción de implementación de Lambda\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/lambdadeploy-edit-screen.png)


## Artefactos de entrada
<a name="action-reference-LambdaDeploy-input"></a>
+ **Número de artefactos:** `1`
+ **Descripción:** los archivos proporcionados (en caso de haberlos) para respaldar las acciones del script durante la implementación.

## Artefactos de salida
<a name="action-reference-LambdaDeploy-output"></a>
+ **Número de artefactos:** `0` 
+ **Descripción:** los artefactos de salida no se aplican a este tipo de acción.

## Variables de salida
<a name="action-reference-LambdaDeploy-output-variables"></a>

Cuando se configura, esta acción produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Esta acción produce variables que se pueden ver como variables de salida, incluso si la acción no tiene un espacio de nombres. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores. 

Para obtener más información, consulte [Referencia de variables](reference-variables.md).

**FunctionVersion**  
La nueva versión de la función de Lambda que se implementó.

## Permisos de la política de rol de servicio para la acción de implementación de Lambda
<a name="action-reference-LambdaDeploy-permissions-action"></a>

Cuando CodePipeline se ejecuta la acción, la función de CodePipeline servicio requiere los siguientes permisos, con el alcance adecuado para el acceso con los mínimos privilegios.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "StatementForLambda",
            "Effect": "Allow",
            "Action": [
                "lambda:GetAlias",
                "lambda:GetFunctionConfiguration",
                "lambda:GetProvisionedConcurrencyConfig",
                "lambda:PublishVersion",
                "lambda:UpdateAlias",
                "lambda:UpdateFunctionCode"
            ],
            "Resource": [
                "arn:aws:lambda:us-east-1:111122223333:function:{{FunctionName}}",
                "arn:aws:lambda:us-east-1:111122223333:function:{{FunctionName}}:*"
            ]
        },
        {
            "Sid": "StatementForCloudWatch",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:DescribeAlarms"
            ],
            "Resource": [
                "arn:aws:cloudwatch:us-east-1:111122223333:alarm:{{AlarmNames}}"
            ]
        },
        {
            "Sid": "StatementForLogs1",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}",
                "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}:*"
            ]
        },
        {
            "Sid": "StatementForLogs2",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}:log-stream:*"
            ]
        }
    ]
}
```

------

## Declaración de acciones
<a name="action-reference-LambdaDeploy-example"></a>

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

```
name: Deploy
actionTypeId:
  category: Deploy
  owner: AWS
  provider: Lambda
  version: '1'
runOrder: 1
configuration:
  DeployStrategy: Canary10Percent5Minutes
  FunctionAlias: aliasV1
  FunctionName: MyLambdaFunction
outputArtifacts: []
inputArtifacts:
- name: SourceArtifact
region: us-east-1
namespace: DeployVariables
```

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

```
{
    "name": "Deploy",
    "actionTypeId": {
        "category": "Deploy",
        "owner": "AWS",
        "provider": "Lambda",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {
        "DeployStrategy": "Canary10Percent5Minutes",
        "FunctionAlias": "aliasV1",
        "FunctionName": "MyLambdaFunction"
    },
    "outputArtifacts": [],
    "inputArtifacts": [
        {
            "name": "SourceArtifact"
        }
    ],
    "region": "us-east-1",
    "namespace": "DeployVariables"
},
```

------

## Véase también
<a name="action-reference-LambdaDeploy-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+  [Tutorial: Implementaciones de funciones Lambda con CodePipeline](tutorials-lambda-deploy.md). En este tutorial, se explica cómo crear una función de Lambda de ejemplo en la que se crean un alias y una versión, se agrega la función de Lambda comprimida a la ubicación de origen y se ejecuta la acción de Lambda en la canalización.

# Referencia de acción de implementación de Amazon S3
<a name="action-reference-S3Deploy"></a>

Utilice una acción de implementación de Amazon S3 para implementar archivos en un bucket de Amazon S3 para alojar o archivar sitios web estáticos. Puede especificar si desea extraer los archivos de implementación antes de subirlos a su bucket.

**nota**  
En este tema de referencia se describe la acción de despliegue de Amazon S3 CodePipeline cuando la plataforma de despliegue es un bucket de Amazon S3 configurado para el alojamiento. Para obtener información de referencia sobre la acción de origen de Amazon S3 en CodePipeline, consulte[Referencia sobre la acción de origen de Amazon S3](action-reference-S3.md).

**Topics**
+ [

## Tipo de acción
](#action-reference-S3Deploy-type)
+ [

## Parámetros de configuración
](#action-reference-S3Deploy-config)
+ [

## Artefactos de entrada
](#action-reference-S3Deploy-input)
+ [

## Artefactos de salida
](#action-reference-S3Deploy-output)
+ [

## Permisos del rol de servicio: acción de implementación de S3
](#edit-role-s3deploy)
+ [

## Ejemplo de configuración de una acción
](#action-reference-S3Deploy-example)
+ [

## Véase también
](#action-reference-S3Deploy-links)

## Tipo de acción
<a name="action-reference-S3Deploy-type"></a>
+ Categoría: `Deploy`
+ Propietario: `AWS`
+ Proveedor: `S3`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-S3Deploy-config"></a>

**BucketName**  
Obligatorio: sí  
El nombre del bucket de Amazon S3 en el que se implementan los archivos.

**Extract**  
Obligatorio: sí  
Si es verdadero, especifica que los archivos se deben extraer antes de cargarlos. De lo contrario, los archivos de la aplicación permanecen comprimidos para su carga, como en el caso de un sitio web estático alojado. Si es falso, entonces `ObjectKey` es obligatoria.

**ObjectKey**  
Condicional. Obligatorio si `Extract` = false  
El nombre de la clave del objeto de Amazon S3 que identifica de forma exclusiva el objeto en el bucket de S3.

**KMSEncryptionKeyArn**  
Obligatorio: no  
El ARN de la clave de AWS KMS cifrado del bucket de host. El parámetro `KMSEncryptionKeyARN` cifra los artefactos cargados con la AWS KMS key proporcionada. Si se trata de una clave de KMS, puede utilizar el ID de la clave, el ARN de la clave o el ARN del alias.  
Los alias se reconocen únicamente en la cuenta que ha creado la clave de KMS. Para las acciones entre cuentas, solo puede utilizar el ID de clave o un ARN de clave para identificar la clave. Las acciones entre cuentas implican el uso del rol de la otra cuenta (AccountB), por lo que al especificar el ID de clave se utilizará la clave de la otra cuenta (AccountB).
CodePipeline solo admite claves KMS simétricas. No utilice una clave de KMS asimétrica para cifrar los datos en el bucket de S3.

**CannedACL**  
Obligatorio: no  
El parámetro `CannedACL` aplica la [ACL predefinida](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) especificada a objetos implementados en Amazon S3. Esto sobreescribe cualquier ACL existente aplicado al objeto.

**CacheControl**  
Obligatorio: no  
El `CacheControl` parámetro controla el comportamiento de almacenamiento en caché de requests/responses los objetos del depósito. Para una lista de valores válidos, consulte el [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9)campo del encabezado para las operaciones HTTP Para introducir varios valores en `CacheControl`, utilice una coma entre cada valor. Puede añadir un espacio después de cada coma (opcional), tal y como se muestra en este ejemplo para la CLI:  

```
"CacheControl": "public, max-age=0, no-transform"
```

## Artefactos de entrada
<a name="action-reference-S3Deploy-input"></a>
+ **Número de artefactos:** `1`
+ **Descripción:** Los archivos para su despliegue o archivado se obtienen del repositorio de origen, se comprimen en un zip y se cargan allí. CodePipeline

## Artefactos de salida
<a name="action-reference-S3Deploy-output"></a>
+ **Número de artefactos:** `0` 
+ **Descripción:** los artefactos de salida no se aplican a este tipo de acción.

## Permisos del rol de servicio: acción de implementación de S3
<a name="edit-role-s3deploy"></a>

Para la compatibilidad con la acción de S3, agregue lo siguiente a su declaración de política:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl",
        "s3:PutObjectVersionAcl",
        "s3:GetBucketVersioning",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::[[s3DeployBuckets]]",
        "arn:aws:s3:::[[s3DeployBuckets]]/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "111122223333"
        }
      }
    }
  ]
}
```

------

Para admitir la acción de implementación de S3, si sus objetos de S3 tienen etiquetas, también debe agregar los siguientes permisos a su declaración de política:

```
"s3:GetObjectTagging",
"s3:GetObjectVersionTagging",
"s3:PutObjectTagging"
```

## Ejemplo de configuración de una acción
<a name="action-reference-S3Deploy-example"></a>

En el siguiente ejemplo se muestra la configuración de la acción.

### Ejemplo de configuración cuando `Extract` está establecido en `false`
<a name="action-reference-S3Deploy-extractfalse"></a>

En el siguiente ejemplo se muestra la configuración de acción predeterminada cuando la acción se crea con el campo `Extract` establecido en `false`.

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

```
Name: Deploy
Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: S3
      Version: '1'
    RunOrder: 1
    Configuration:
      BucketName: website-bucket
      Extract: 'false'
      ObjectKey: MyWebsite
    OutputArtifacts: []
    InputArtifacts:
      - Name: SourceArtifact
    Region: us-west-2
    Namespace: DeployVariables
```

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

```
{
    "Name": "Deploy",
    "Actions": [
        {
            "Name": "Deploy",
            "ActionTypeId": {
                "Category": "Deploy",
                "Owner": "AWS",
                "Provider": "S3",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "BucketName": "website-bucket",
                "Extract": "false",
                "ObjectKey": "MyWebsite"
                },
            "OutputArtifacts": [],
            "InputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "Region": "us-west-2",
            "Namespace": "DeployVariables"
        }
    ]
},
```

------

### Ejemplo de configuración cuando `Extract` está establecido en `true`
<a name="action-reference-S3Deploy-extracttrue"></a>

En el siguiente ejemplo se muestra la configuración de acción predeterminada cuando la acción se crea con el campo `Extract` establecido en `true`.

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

```
Name: Deploy
Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: S3
      Version: '1'
    RunOrder: 1
    Configuration:
      BucketName: website-bucket
      Extract: 'true'
    OutputArtifacts: []
    InputArtifacts:
      - Name: SourceArtifact
    Region: us-west-2
    Namespace: DeployVariables
```

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

```
{
    "Name": "Deploy",
    "Actions": [
        {
            "Name": "Deploy",
            "ActionTypeId": {
                "Category": "Deploy",
                "Owner": "AWS",
                "Provider": "S3",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "BucketName": "website-bucket",
                "Extract": "true"
                },
            "OutputArtifacts": [],
            "InputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "Region": "us-west-2",
            "Namespace": "DeployVariables"
        }
    ]
},
```

------

## Véase también
<a name="action-reference-S3Deploy-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [Tutorial: Crear una canalización que utilice Amazon S3 como proveedor de implementación](tutorials-s3deploy.md): en este tutorial, se muestran dos ejemplos para crear una canalización con una acción de implementación de S3. Descarga los archivos de muestra, los carga en su CodeCommit repositorio, crea su bucket de S3 y configura su bucket para el alojamiento. A continuación, utilice la CodePipeline consola para crear su canalización y especificar una configuración de despliegue de Amazon S3.
+ [Referencia sobre la acción de origen de Amazon S3](action-reference-S3.md)— Esta referencia de acciones proporciona información de referencia y ejemplos de las acciones de origen de Amazon S3 en CodePipeline.

# Referencia sobre la acción de origen de Amazon S3
<a name="action-reference-S3"></a>

Desencadena la canalización cuando se carga un nuevo objeto en el bucket y la clave de objeto configurados.

**nota**  
En este tema de referencia se describe la acción de origen de Amazon S3 CodePipeline cuando la ubicación de origen es un bucket de Amazon S3 configurado para el control de versiones. Para obtener información de referencia sobre la acción de implementación de Amazon S3 en CodePipeline, consulte[Referencia de acción de implementación de Amazon S3](action-reference-S3Deploy.md).

Puede crear un bucket de Amazon S3 para usarlo como ubicación de origen de los archivos de la aplicación.

**nota**  
Cuando cree el bucket de origen, asegúrese de habilitar el control de versiones en el bucket. Si desea utilizar un bucket de Amazon S3 existente, consulte [Uso del control de versiones](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) para habilitar el control de versiones en un bucket existente.

Si usa la consola para crear o editar su canalización, CodePipeline crea una EventBridge regla que la inicie cuando se produzca un cambio en el bucket de origen de S3.

**nota**  
Para Amazon ECR, Amazon S3 o CodeCommit Sources, también puedes crear una anulación de fuente mediante la entrada input transform para usar la entrada `revisionValue` in EventBridge para tu evento de canalización, donde `revisionValue` se deriva de la variable de evento de origen para tu clave de objeto, confirmación o ID de imagen. Para obtener más información, consulte el paso opcional para la entrada de transformación de entrada, que se incluye en los procedimientos de [Acciones y recursos fuente de Amazon ECR EventBridge](create-cwe-ecr-source.md), [Conexión a acciones de origen de Amazon S3 con un origen habilitado para eventos](create-S3-source-events.md) o [CodeCommit acciones de origen y EventBridge](triggering.md).

Debe haber creado un bucket de origen de Amazon S3 y cargado los archivos de origen como un único archivo ZIP antes de conectar la canalización a través de una acción de Amazon S3.

**nota**  
Si Amazon S3 es el proveedor de origen de la canalización, debe comprimir los archivos de origen en un solo archivo.zip y cargarlo en el bucket de origen. También puede cargar un archivo sin comprimir; sin embargo, se producirá un error en las acciones posteriores que esperan un archivo.zip.

**Topics**
+ [

## Tipo de acción
](#action-reference-S3-type)
+ [

## Parámetros de configuración
](#action-reference-S3-config)
+ [

## Artefactos de entrada
](#action-reference-S3-input)
+ [

## Artefactos de salida
](#action-reference-S3-output)
+ [

## Variables de salida
](#action-reference-S3-variables)
+ [

## Permisos del rol de servicio: acción de origen de S3
](#edit-role-s3source)
+ [

## Declaración de acciones
](#action-reference-S3-example)
+ [

## Véase también
](#action-reference-S3-links)

## Tipo de acción
<a name="action-reference-S3-type"></a>
+ Categoría: `Source`
+ Propietario: `AWS`
+ Proveedor: `S3`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-S3-config"></a>

**S3 Bucket**  
Obligatorio: sí  
El nombre del bucket de Amazon S3 en el que se van a detectar los cambios de origen.

**S3 ObjectKey**  
Obligatorio: sí  
El nombre de la clave de objeto de Amazon S3 en la que se van a detectar los cambios de origen.

**AllowOverrideForS3ObjectKey**  
Obligatorio: no  
`AllowOverrideForS3ObjectKey` controla si las anulaciones de origen de `StartPipelineExecution` pueden anular las `S3ObjectKey` ya configuradas en la acción de origen. Para obtener más información sobre las anulaciones de origen con la clave del objeto de S3, consulte [Iniciar una canalización con una anulación de revisión de código fuente](pipelines-trigger-source-overrides.md).  
Si lo omite`AllowOverrideForS3ObjectKey`, CodePipeline establece este parámetro en de forma predeterminada para anular el S3 ObjectKey en la acción de origen. `false`
Los valores válidos para este parámetro son:  
+ `true`: si se establece, la clave del objeto de S3 preconfigurada se puede anular mediante anulaciones de revisiones de origen durante la ejecución de una canalización.
**nota**  
Si quiere permitir que todos CodePipeline los usuarios puedan anular la clave de objeto de S3 preconfigurada al iniciar una nueva ejecución de canalización, debe configurarla en. `AllowOverrideForS3ObjectKey` `true`
+ `false`: 

  Si se establece, no CodePipeline permitirá anular la clave de objeto de S3 mediante anulaciones de revisión de origen. Este también es el valor predeterminado para este parámetro.

**PollForSourceChanges**  
Obligatorio: no  
`PollForSourceChanges`controla si CodePipeline sondea el bucket de origen de Amazon S3 en busca de cambios en la fuente. Le recomendamos que utilice CloudWatch Events y CloudTrail, en su lugar, detecte los cambios en la fuente. Para obtener más información sobre la configuración de CloudWatch eventos, consulte [Migre los canales de sondeo con una fuente y un CloudTrail seguimiento (CLI) de S3](update-change-detection.md#update-change-detection-cli-S3) o[Migre los canales de sondeo con una fuente y un seguimiento de CloudTrail S3 (CloudFormation plantilla)](update-change-detection.md#update-change-detection-cfn-s3).  
Si tiene intención de configurar CloudWatch los eventos, debe configurarlos `PollForSourceChanges` `false` para evitar la duplicación de ejecuciones en canalización.
Los valores válidos para este parámetro son:  
+ `true`: Si está configurado, CodePipeline sondea la ubicación de origen para ver si hay cambios en la fuente.
**nota**  
Si lo omite`PollForSourceChanges`, de CodePipeline forma predeterminada sondea la ubicación de origen para comprobar si hay cambios en la fuente. Este comportamiento es el mismo que si se incluye `PollForSourceChanges` y se establece en `true`.
+ `false`: Si está configurado, CodePipeline no sondea la ubicación de origen para detectar cambios en la fuente. Utilice este ajuste si pretende configurar una regla de CloudWatch eventos para detectar los cambios en la fuente.

## Artefactos de entrada
<a name="action-reference-S3-input"></a>
+ **Número de artefactos:** `0`
+ **Descripción:** los artefactos de entrada no se aplican a este tipo de acción.

## Artefactos de salida
<a name="action-reference-S3-output"></a>
+ **Número de artefactos:** `1` 
+ **Descripción:** proporciona los artefactos que están disponibles en el bucket de origen configurado para conectarse a la canalización. Los artefactos generados a partir del bucket son los artefactos de salida de la acción de Amazon S3. Los metadatos del objeto Amazon S3 (ETag y el ID de versión) se muestran CodePipeline como la revisión de origen para la ejecución de la canalización activada.

## Variables de salida
<a name="action-reference-S3-variables"></a>

Cuando se configura, esta acción produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Esta acción produce variables que se pueden ver como variables de salida, incluso si la acción no tiene un espacio de nombres. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores.

Para obtener más información sobre las variables de CodePipeline, consulte[Referencia de variables](reference-variables.md).

**BucketName**  
El nombre del bucket de Amazon S3 relacionado con el cambio de origen que desencadenó la canalización.

**ETag**  
La etiqueta de entidad del objeto relacionado con el cambio de código fuente que desencadenó la canalización. ETag Es un MD5 hash del objeto. ETag refleja solo los cambios en el contenido de un objeto, no sus metadatos.

**ObjectKey**  
El nombre de la clave del objeto de Amazon S3 relacionado con el cambio de origen que desencadenó la canalización.

**VersionId**  
El ID de versión de la versión del objeto relacionada con el cambio de código fuente que desencadenó la canalización.

## Permisos del rol de servicio: acción de origen de S3
<a name="edit-role-s3source"></a>

Para la compatibilidad con la acción de origen de S3, agregue lo siguiente a su declaración de política:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:GetBucketVersioning",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation",
        "s3:GetObjectTagging",
        "s3:GetObjectVersionTagging"
      ],
      "Resource": [
        "arn:aws:s3:::[[S3Bucket]]",
        "arn:aws:s3:::[[S3Bucket]]/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "111122223333"
        }
      }
    }
  ]
}
```

------

## Declaración de acciones
<a name="action-reference-S3-example"></a>

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

```
Name: Source
Actions:
  - RunOrder: 1
    OutputArtifacts:
      - Name: SourceArtifact
    ActionTypeId:
      Provider: S3
      Owner: AWS
      Version: '1'
      Category: Source
    Region: us-west-2
    Name: Source
    Configuration:
      S3Bucket: amzn-s3-demo-source-bucket
      S3ObjectKey: my-application.zip
      PollForSourceChanges: 'false'
    InputArtifacts: []
```

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

```
{
    "Name": "Source",
    "Actions": [
        {
            "RunOrder": 1,
            "OutputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "ActionTypeId": {
                "Provider": "S3",
                "Owner": "AWS",
                "Version": "1",
                "Category": "Source"
            },
            "Region": "us-west-2",
            "Name": "Source",
            "Configuration": {
                "S3Bucket": "amzn-s3-demo-source-bucket",
                "S3ObjectKey": "my-application.zip",
                "PollForSourceChanges": "false"
            },
            "InputArtifacts": []
        }
    ]
},
```

------

## Véase también
<a name="action-reference-S3-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [Tutorial: Crear una canalización simple (bucket de S3)](tutorials-simple-s3.md)— Este tutorial proporciona un ejemplo de archivo de especificaciones de la aplicación y un grupo de implementación y CodeDeploy aplicación de muestra. Utilice este tutorial para crear una canalización con un origen de Amazon S3 que se implementa en instancias de Amazon EC2.

# Referencia de la acción de implementación de AWS AppConfig
<a name="action-reference-AppConfig"></a>

AWS AppConfig es una capacidad de AWS Systems Manager. AppConfig admite despliegues controlados en aplicaciones de cualquier tamaño e incluye controles de validación y monitoreo integrados. Puede usarlo AppConfig con aplicaciones alojadas en instancias, contenedores AWS Lambda, aplicaciones móviles o dispositivos IoT de Amazon EC2.

La acción de `AppConfig` despliegue es una AWS CodePipeline acción que despliega las configuraciones almacenadas en la ubicación de origen de la canalización en una AppConfig *aplicación*, un *entorno* y un perfil de *configuración* específicos. Utiliza las preferencias definidas en una *estrategia de AppConfig implementación*.

## Tipo de acción
<a name="action-reference-AppConfig-type"></a>
+ Categoría: `Deploy`
+ Propietario: `AWS`
+ Proveedor: `AppConfig`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-AppConfig-config"></a>

**Application**  
Obligatorio: sí  
El ID de la AWS AppConfig aplicación con los detalles de la configuración y el despliegue.

**Environment**  
Obligatorio: sí  
El ID del AWS AppConfig entorno en el que se implementa la configuración.

**ConfigurationProfile**  
Obligatorio: sí  
El ID del perfil de AWS AppConfig configuración que se va a implementar.

**InputArtifactConfigurationPath**  
Obligatorio: sí  
La ruta del archivo de los datos de configuración del artefacto de entrada que se va a implementar.

**DeploymentStrategy**  
Obligatorio: no  
La estrategia AWS AppConfig de despliegue que se utilizará para el despliegue.

## Artefactos de entrada
<a name="action-reference-AppConfig-input"></a>
+ **Número de artefactos:** `1`
+ **Descripción:** el artefacto de entrada para la acción de implementación.

## Artefactos de salida
<a name="action-reference-AppConfig-output"></a>

No se usa.

## Permisos del rol de servicio: acción de `AppConfig`
<a name="edit-role-appconfig"></a>

Cuando CodePipeline se ejecuta la acción, la política de roles de CodePipeline servicio requiere los siguientes permisos, con el alcance adecuado hasta el nivel de recurso, a fin de mantener el acceso con el mínimo de privilegios.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "appconfig:StartDeployment",
                "appconfig:StopDeployment",
                "appconfig:GetDeployment"
            ],
            "Resource": [
                "arn:aws:appconfig:*:111122223333:application/[[Application]]",
                "arn:aws:appconfig:*:111122223333:application/[[Application]]/*",
                "arn:aws:appconfig:*:111122223333:deploymentstrategy/*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

## Ejemplo de configuración de una acción
<a name="action-reference-AppConfig-example"></a>

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

```
name: Deploy
actions:
  - name: Deploy
    actionTypeId:
      category: Deploy
      owner: AWS
      provider: AppConfig
      version: '1'
    runOrder: 1
    configuration:
      Application: 2s2qv57
      ConfigurationProfile: PvjrpU
      DeploymentStrategy: frqt7ir
      Environment: 9tm27yd
      InputArtifactConfigurationPath: /
    outputArtifacts: []
    inputArtifacts:
      - name: SourceArtifact
    region: us-west-2
    namespace: DeployVariables
```

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

```
{
    "name": "Deploy",
    "actions": [
        {
            "name": "Deploy",
            "actionTypeId": {
                "category": "Deploy",
                "owner": "AWS",
                "provider": "AppConfig",
                "version": "1"
            },
            "runOrder": 1,
            "configuration": {
                "Application": "2s2qv57",
                "ConfigurationProfile": "PvjrpU",
                "DeploymentStrategy": "frqt7ir",
                "Environment": "9tm27yd",
                "InputArtifactConfigurationPath": "/"
            },
            "outputArtifacts": [],
            "inputArtifacts": [
                {
                    "name": "SourceArtifact"
                }
            ],
            "region": "us-west-2",
            "namespace": "DeployVariables"
        }
    ]
}
```

------

## Véase también
<a name="action-reference-StepFunctions-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [AWS AppConfig](https://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig.html)— Para obtener información sobre AWS AppConfig las implementaciones, consulte la Guía del *AWS Systems Manager usuario*.
+ [Tutorial: Crear una canalización que se utilice AWS AppConfig como proveedor de despliegue](tutorials-AppConfig.md)— Este tutorial le permite empezar a configurar archivos y AppConfig recursos de configuración de despliegues sencillos y le muestra cómo utilizar la consola para crear una canalización con una acción de AWS AppConfig despliegue.

# Referencia de la acción de implementación de CloudFormation
<a name="action-reference-CloudFormation"></a>

Ejecuta una operación en una CloudFormation pila. Una pila es un conjunto de AWS recursos que se pueden gestionar como una sola unidad. Los recursos de una pila se definen según la plantilla de CloudFormation de la pila. Un conjunto de cambios crea una comparación que se puede visualizar sin modificar la pila original. Para obtener información sobre los tipos de CloudFormation acciones que se pueden realizar en las pilas y los conjuntos de cambios, consulte el `ActionMode` parámetro.

Para crear un mensaje de error para una CloudFormation acción en la que se ha producido un error en una operación de apilado, CodePipeline llama a la CloudFormation `DescribeStackEvents` API. Si un rol de IAM de acción tiene permiso para acceder a esa API, los detalles sobre el primer recurso fallido se incluirán en el mensaje de CodePipeline error. De lo contrario, si la política de roles no tiene el permiso adecuado, CodePipeline ignorará el acceso a la API y, en su lugar, mostrará un mensaje de error genérico. Para ello, el permiso `cloudformation:DescribeStackEvents` debe agregarse al rol de servicio o a otros roles de IAM de la canalización.

Si no desea que los detalles del recurso aparezcan en los mensajes de error de la canalización, puede eliminar el permiso `cloudformation:DescribeStackEvents` para revocar este permiso para el rol de IAM de acción.

**Topics**
+ [

## Tipo de acción
](#action-reference-CloudFormation-type)
+ [

## Parámetros de configuración
](#action-reference-CloudFormation-config)
+ [

## Artefactos de entrada
](#action-reference-CloudFormation-input)
+ [

## Artefactos de salida
](#action-reference-CloudFormation-output)
+ [

## Variables de salida
](#action-reference-CloudFormation-variables)
+ [

## Permisos de rol de servicio: CloudFormation acción
](#edit-role-cloudformation)
+ [

## Declaración de acciones
](#action-reference-CloudFormation-example)
+ [

## Véase también
](#action-reference-CloudFormation-links)

## Tipo de acción
<a name="action-reference-CloudFormation-type"></a>
+ Categoría: `Deploy`
+ Propietario: `AWS`
+ Proveedor: `CloudFormation`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-CloudFormation-config"></a>

**ActionMode**  
Obligatorio: sí  
`ActionMode`es el nombre de la acción que se CloudFormation realiza en una pila o conjunto de cambios. Están disponibles los siguientes modos de acción:  
+ `CHANGE_SET_EXECUTE` ejecuta un conjunto de cambios para la pila de recursos que se basa en un conjunto de actualizaciones de recursos especificadas. Con esta acción, CloudFormation comienza a alterar la pila.
+ `CHANGE_SET_REPLACE` crea el conjunto de cambios, si no existe, basándose en el nombre de la pila y la plantilla que envíe. Si el conjunto de cambios existe, lo CloudFormation elimina y, a continuación, crea uno nuevo. 
+ `CREATE_UPDATE` crea la pila si no existe. Si la pila existe, CloudFormation actualiza la pila. Utilice esta acción para actualizar pilas existentes. Por el contrario`REPLACE_ON_FAILURE`, si la pila existe y se encuentra en un estado fallido, CodePipeline no la eliminará ni la reemplazará.
+ `DELETE_ONLY` elimina una pila. Si especifica una pila que no existe, la acción se realiza de forma satisfactoria sin eliminar una pila.
+ `REPLACE_ON_FAILURE` crea una pila si no existe. Si la pila existe y se encuentra en un estado fallido, la CloudFormation elimina y, a continuación, crea una nueva pila. Si la pila no está en un estado fallido, la CloudFormation actualiza. 

  La pila está en un estado de error cuando se muestra alguno de los siguientes tipos de estado en CloudFormation: 
  + `ROLLBACK_FAILED`
  + `CREATE_FAILED`
  + `DELETE_FAILED`
  + `UPDATE_ROLLBACK_FAILED`

  Utilice esta acción para sustituir automáticamente pilas fallidas sin recuperarlos ni solucionar sus problemas.
**importante**  
Le recomendamos que utilice `REPLACE_ON_FAILURE` solo con fines de prueba, ya que podría eliminar la pila.

**StackName**  
Obligatorio: sí  
`StackName` es el nombre de una pila existente o una pila que desea crear.

**Capacidades**  
Obligatorio: condicional  
El uso de `Capabilities` reconoce que la plantilla podría tener las capacidades de crear y actualizar algunos recursos por sí misma y que estas capacidades se determinan en función de los tipos de recursos de la plantilla.  
Esta propiedad es necesaria si tiene recursos de IAM en la plantilla de pila o si crea una pila directamente desde una plantilla que contiene macros. Para que la CloudFormation acción funcione correctamente de esta manera, debe reconocer explícitamente que desea que lo haga con una de las siguientes capacidades:  
+ `CAPABILITY_IAM` 
+ `CAPABILITY_NAMED_IAM` 
+ `CAPABILITY_AUTO_EXPAND` 
 Puede especificar más de una capacidad mediante el uso de una coma (sin espacio) entre las capacidades. El ejemplo de [Declaración de acciones](#action-reference-CloudFormation-example) muestra una entrada con las propiedades CAPABILITY\$1IAM y CAPABILITY\$1AUTO\$1EXPAND.  
Para obtener más información al respecto`Capabilities`, consulte las propiedades que aparecen [UpdateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html)en la *referencia de la AWS CloudFormation API*.

**ChangeSetName**  
Obligatorio: condicional  
`ChangeSetName` es el nombre de un conjunto de cambios existentes o un nuevo conjunto de cambios que desee crear para la pila especificada.  
 Esta propiedad es necesaria para los siguientes modos de acción: CHANGE\$1SET\$1REPLACE y CHANGE\$1SET\$1EXECUTE. Para todos los demás modos de acción, se pasa por alto esta propiedad.

**RoleArn**  
Obligatorio: condicional  
El `RoleArn` es el ARN del rol de servicio de IAM que CloudFormation asume cuando opera en los recursos de la pila especificada. `RoleArn` no se aplica al ejecutar un conjunto de cambios. Si no lo utiliza CodePipeline para crear el conjunto de cambios, asegúrese de que el conjunto o la pila de cambios tengan una función asociada.  
Este rol debe estar en la misma cuenta que el role de la acción que se está ejecutando, tal como se configura en la declaración de acción `RoleArn`.
Esta propiedad es necesaria para los siguientes modos de acción:  
+ CREATE\$1UPDATE
+ REPLACE\$1ON\$1FAILURE
+ DELETE\$1ONLY
+ CHANGE\$1SET\$1REPLACE
CloudFormation recibe una URL de la plantilla firmada por S3; por lo tanto, `RoleArn` no necesita permiso para acceder al depósito de artefactos. Sin embargo, la acción `RoleArn` *necesita* permiso para acceder al bucket de artefactos para generar la URL firmada.

**TemplatePath**  
Obligatorio: condicional  
`TemplatePath`representa el archivo de plantilla CloudFormation . Incluya el archivo en un artefacto de entrada en esta acción. El nombre del archivo sigue este formato:  
`Artifactname::TemplateFileName`  
`Artifactname` es el nombre del artefacto de entrada, tal y como aparece en CodePipeline. Por ejemplo, una etapa de origen con el nombre de artefacto de `SourceArtifact` y un nombre de archivo `template-export.json` crea un nombre `TemplatePath`, tal y como se muestra en este ejemplo:  

```
"TemplatePath": "SourceArtifact::template-export.json"
```
Esta propiedad es necesaria para los siguientes modos de acción:   
+ CREATE\$1UPDATE
+ REPLACE\$1ON\$1FAILURE
+ CHANGE\$1SET\$1REPLACE
Para todos los demás modos de acción, se pasa por alto esta propiedad.  
El archivo de CloudFormation plantilla que contiene el cuerpo de la plantilla tiene una longitud mínima de 1 byte y una longitud máxima de 1 MB. Para las acciones de CloudFormation despliegue en CodePipeline, el tamaño máximo del artefacto de entrada es siempre de 256 MB. Para obtener más información, consulte [Cuotas en AWS CodePipeline](limits.md) y [Límites de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html).

**OutputFileName**  
Obligatorio: no  
Se utiliza `OutputFileName` para especificar un nombre de archivo de salida, por ejemplo`CreateStackOutput.json`, que se CodePipeline añada al artefacto de salida de la canalización para esta acción. El archivo JSON contiene el contenido de la `Outputs` sección de la CloudFormation pila.  
Si no especificas un nombre, CodePipeline no generará un archivo o artefacto de salida.

**ParameterOverrides**  
Obligatorio: no  
Los parámetros se definen en la plantilla de pila y le permiten proporcionarles valores en el momento de la creación o actualización de la pila. Puede utilizar un objeto JSON para establecer valores de parámetros en la plantilla (estos valores anulan los establecidos en el archivo de configuración de la plantilla). Para obtener más información sobre el uso de anulaciones de parámetros, consulte [Propiedades de configuración (objeto JSON)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html#w4363ab1c13c13b9).  
Le recomendamos que use el archivo de configuración de la plantilla para la mayoría de los valores de parámetros. Utilice anulaciones de parámetros solo para valores que no se conocen hasta que la canalización se está ejecutando. *Para obtener más información, consulte [Uso de funciones de anulación de parámetros con CodePipeline canalizaciones](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html) en la Guía del AWS CloudFormation usuario.*  
Todos los nombres de parámetros deben estar presentes en la plantilla de pila.

**TemplateConfiguration**  
Obligatorio: no  
`TemplateConfiguration` es el archivo de configuración de la plantilla. Incluya el archivo en un artefacto de entrada en esta acción. Puede incluir valores de parámetros de plantilla y una política de pilas. Para obtener más información sobre el formato del archivo de configuración de plantilla, consulte [Artefactos de AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-cfn-artifacts.html).   
El nombre del archivo de configuración de la plantilla se ajusta a este formato:   
`Artifactname::TemplateConfigurationFileName`  
`Artifactname` es el nombre del artefacto de entrada, tal y como aparece en CodePipeline. Por ejemplo, una etapa de origen con el nombre de artefacto de `SourceArtifact` y un nombre de archivo `test-configuration.json` crea un nombre `TemplateConfiguration`, tal y como se muestra en este ejemplo:  

```
"TemplateConfiguration": "SourceArtifact::test-configuration.json"
```

## Artefactos de entrada
<a name="action-reference-CloudFormation-input"></a>
+ **Número de artefactos:** `0 to 10`
+ **Descripción:** Como entrada, la CloudFormation acción acepta artefactos de forma opcional para los siguientes fines:
  + Para proporcionar el archivo de plantilla de pila que se va a ejecutar (consulte el parámetro `TemplatePath`).
  + Para proporcionar el archivo de configuración de la plantilla que se va a utilizar (consulte el parámetro `TemplateConfiguration`). Para obtener más información sobre el formato del archivo de configuración de plantilla, consulte [Artefactos de AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-cfn-artifacts.html). 
  + Proporcionar el artefacto para que una función Lambda se despliegue como parte de la CloudFormation pila.

## Artefactos de salida
<a name="action-reference-CloudFormation-output"></a>
+ **Número de artefactos:** `0 to 1` 
+ **Descripción:** si se especifica el parámetro `OutputFileName`, esta acción produce un artefacto de salida que incluye un archivo JSON con el nombre especificado. El archivo JSON incluye el contenido de la sección Outputs de la pila de CloudFormation .

  Para obtener más información acerca de la sección Outputs que puede crear para la acción de CloudFormation , consulte [Salidas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html).

## Variables de salida
<a name="action-reference-CloudFormation-variables"></a>

Cuando se configura, esta acción produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores.

En el caso de las CloudFormation acciones, las variables se generan a partir de cualquier valor designado en la `Outputs` sección de una plantilla de pila. Tenga en cuenta que los únicos modos de CloudFormation acción que generan resultados son aquellos que dan como resultado la creación o actualización de una pila, como la creación de la pila, las actualizaciones de la pila y la ejecución de conjuntos de cambios. Los modos de acción correspondientes que generan variables son:
+ `CHANGE_SET_EXECUTE`
+ `CHANGE_SET_REPLACE`
+ `CREATE_UPDATE`
+ `REPLACE_ON_FAILURE`

Para obtener más información, consulte [Referencia de variables](reference-variables.md). Para ver un tutorial que muestra cómo crear una canalización con una acción de CloudFormation despliegue en una canalización que utilice variables CloudFormation de salida, consulte[Tutorial: Crear una canalización que utilice variables de las acciones de AWS CloudFormation despliegue](tutorials-cloudformation-action.md).

## Permisos de rol de servicio: CloudFormation acción
<a name="edit-role-cloudformation"></a>

Cuando CodePipeline se ejecuta la acción, la política de rol de CodePipeline servicio requiere los siguientes permisos, que se limitan adecuadamente al ARN del recurso de canalización para mantener el acceso con los mínimos privilegios. Por ejemplo, agregue lo siguiente a su declaración de política:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCFNStackAccess",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:UpdateStack",
                "cloudformation:DeleteStack",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackResources",
                "cloudformation:DescribeStackEvents",
                "cloudformation:GetTemplate",
                "cloudformation:DescribeChangeSet",
                "cloudformation:CreateChangeSet",
                "cloudformation:DeleteChangeSet",
                "cloudformation:ExecuteChangeSet"
            ],
            "Resource": [
                "arn:aws:cloudformation:*:111122223333:stack/[[cfnDeployStackNames]]/*"
            ]
        },
        {
            "Sid": "ValidateTemplate",
            "Effect": "Allow",
            "Action": [
                "cloudformation:ValidateTemplate"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowIAMPassRole",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/[[cfnExecutionRoles]]"
            ],
            "Condition": {
                "StringEqualsIfExists": {
                    "iam:PassedToService": [
                        "cloudformation.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

Tenga en cuenta que el permiso `cloudformation:DescribeStackEvents` es opcional. Permite que la CloudFormation acción muestre un mensaje de error más detallado. Puede revocar este permiso desde el rol de IAM si no quiere que los detalles de los recursos aparezcan en los mensajes de error de la canalización.

## Declaración de acciones
<a name="action-reference-CloudFormation-example"></a>

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

```
Name: ExecuteChangeSet
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: CloudFormation
  Version: '1'
RunOrder: 2
Configuration:
  ActionMode: CHANGE_SET_EXECUTE
  Capabilities: CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND
  ChangeSetName: pipeline-changeset
  ParameterOverrides: '{"ProjectId": "my-project","CodeDeployRole": "CodeDeploy_Role_ARN"}'
  RoleArn: CloudFormation_Role_ARN
  StackName: my-project--lambda
  TemplateConfiguration: 'my-project--BuildArtifact::template-configuration.json'
  TemplatePath: 'my-project--BuildArtifact::template-export.yml'
OutputArtifacts: []
InputArtifacts:
  - Name: my-project-BuildArtifact
```

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

```
{
    "Name": "ExecuteChangeSet",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "CloudFormation",
        "Version": "1"
    },
    "RunOrder": 2,
    "Configuration": {
        "ActionMode": "CHANGE_SET_EXECUTE",
        "Capabilities": "CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND",
        "ChangeSetName": "pipeline-changeset",
        "ParameterOverrides": "{\"ProjectId\": \"my-project\",\"CodeDeployRole\": \"CodeDeploy_Role_ARN\"}",
        "RoleArn": "CloudFormation_Role_ARN",
        "StackName": "my-project--lambda",
        "TemplateConfiguration": "my-project--BuildArtifact::template-configuration.json",
        "TemplatePath": "my-project--BuildArtifact::template-export.yml"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
             "Name": "my-project-BuildArtifact"
        }
    ]
},
```

------

## Véase también
<a name="action-reference-CloudFormation-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [Referencia sobre las propiedades de configuración](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html): este capítulo de referencia de la *Guía del AWS CloudFormation usuario* proporciona más descripciones y ejemplos de estos CodePipeline parámetros.
+ [AWS CloudFormation Referencia de la API](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/): el [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html)parámetro de la *referencia de la AWS CloudFormation API* describe los parámetros de pila de CloudFormation las plantillas.

# Referencia de la acción de implementación de CloudFormation StackSets
<a name="action-reference-StackSets"></a>

CodePipeline ofrece la posibilidad de realizar CloudFormation StackSets operaciones como parte de su proceso de CI/CD. Utiliza un conjunto de pilas para crear pilas en AWS las cuentas de todas las AWS regiones mediante una única plantilla. CloudFormation Todos los recursos incluidos en cada pila se definen mediante la CloudFormation plantilla del conjunto de pilas. Al crear el conjunto de pilas, debe especificar la plantilla que desea utilizar, así como todos los parámetros y capacidades que requiere la plantilla.

Para obtener más información sobre los conceptos de CloudFormation StackSets, consulte [StackSets los conceptos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html) en la *Guía del AWS CloudFormation usuario*.

El proceso se integra CloudFormation StackSets mediante dos tipos de acciones distintos que se utilizan de forma conjunta:
+ La acción `CloudFormationStackSet` crea o actualiza un conjunto de pilas o instancias de pilas a partir de la plantilla almacenada en la ubicación de origen de la canalización. Cada vez que se crea o actualiza un conjunto de pilas, se inicia una implementación de esos cambios en instancias específicas. En la consola, puedes elegir el proveedor de acciones de **CloudFormation Stack Set** al crear o editar tu canalización.
+ La acción `CloudFormationStackInstances` implementa los cambios de la acción `CloudFormationStackSet` en instancias específicas, crea nuevas instancias de pila y define las anulaciones de parámetros en las instancias especificadas. En la consola, puedes elegir el proveedor de acciones de **CloudFormation Stack Instances** al editar una canalización existente.

Puedes usar estas acciones para implementarlas en las AWS cuentas de destino o en la unidad organizativa de Target AWS Organizations IDs.

**nota**  
Para realizar la implementación en AWS las cuentas o unidades organizativas de Target Organizations IDs y utilizar el modelo de permisos gestionados por el servicio, debes habilitar el acceso de confianza entre y AWS CloudFormation StackSets Organizaciones AWS . Para obtener más información, consulta Cómo [habilitar el acceso confiable con AWS CloudFormation](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-cloudformation.html#integrate-enable-ta-cloudformation) Stacksets.

**Topics**
+ [

## Cómo funcionan CloudFormation StackSets las acciones
](#action-reference-StackSets-concepts)
+ [

## ¿Cómo estructurar StackSets las acciones en una canalización
](#action-reference-StackSets-bestpractices)
+ [

## Acción `CloudFormationStackSet`
](#action-reference-StackSet)
+ [

## La acción CloudFormationStackInstances
](#action-reference-StackInstances)
+ [

## Permisos del rol de servicio: acción de `CloudFormationStackSet`
](#edit-role-cfn-stackset)
+ [

## Permisos del rol de servicio: acción `CloudFormationStackInstances`
](#edit-role-cfn-stackinstances)
+ [

## Modelos de permisos para operaciones de conjunto de pilas
](#action-reference-StackSets-permissions)
+ [

## Tipos de datos de parámetros de plantilla
](#action-reference-StackSets-datatypes)
+ [

## Véase también
](#action-reference-CloudFormation-links)

## Cómo funcionan CloudFormation StackSets las acciones
<a name="action-reference-StackSets-concepts"></a>

Una acción `CloudFormationStackSet` crea o actualiza recursos en función de si la acción se ejecuta por primera vez.

La acción `CloudFormationStackSet` *crea* o *actualiza* el conjunto de pilas e implementa esos cambios en instancias específicas.

**nota**  
Si utiliza esta acción para realizar una actualización que incluya la adición de instancias de pila, las nuevas instancias se implementan primero y la actualización se completa en último lugar. Las nuevas instancias reciben primero la versión anterior y, a continuación, la actualización se aplica a todas las instancias.
+ *Crear*: cuando no se especifica ninguna instancia y el conjunto de pilas no existe, la **CloudFormationStackSet**acción crea el conjunto de pilas sin crear ninguna instancia.
+ *Actualización*: cuando la **CloudFormationStackSet**acción se ejecuta para un conjunto de pilas que ya se ha creado, la acción actualiza el conjunto de pilas. Si no se especifica ninguna instancia y el conjunto de pilas ya existe, se actualizan todas las instancias. Si esta acción se usa para actualizar instancias específicas, todas las instancias restantes pasarán a un estado OBSOLETO.

  Puede utilizar la **CloudFormationStackSet**acción para actualizar el conjunto de pilas de las siguientes maneras. 
  + Actualice la plantilla en algunas o todas las instancias.
  + Actualice los parámetros en algunas o todas las instancias.
  + Actualice el rol de ejecución del conjunto de pilas (debe coincidir con el rol de ejecución especificado en el rol de administrador).
  + Cambie el modelo de permisos (solo si no se ha creado ninguna instancia).
  + Active o desactive `AutoDeployment` si el modelo de permisos del conjunto de pilas es `Service Managed`.
  + Actúa como administrador delegado en una cuenta de miembro si el modelo de permisos del conjunto de pilas es `Service Managed`.
  + Actualice el rol de administrador.
  + Actualice la descripción del conjunto de pila.
  + Añada los objetivos de implementación a la actualización del conjunto de pilas para crear nuevas instancias de pila.

La acción `CloudFormationStackInstances` crea nuevas instancias de pila o actualiza las instancias de pila obsoletas. Una instancia queda desactualizada cuando se actualiza un conjunto de pilas, pero no se actualizan todas las instancias que contiene.
+ *Crear*: si la pila ya existe, la acción `CloudFormationStackInstances` solo actualiza las instancias y no crea instancias de pila.
+ *Actualizar*: una vez realizada la acción `CloudFormationStackSet`, si la plantilla o los parámetros se han actualizado solo en algunos casos, el resto se marcará `OUTDATED`. En fases posteriores de la canalización, `CloudFormationStackInstances` actualiza el resto de las instancias del conjunto de pilas en oleadas para que todas las instancias queden marcadas `CURRENT`. Esta acción también se puede utilizar para añadir instancias adicionales o anular los parámetros de las instancias nuevas o existentes.

Como parte de una actualización, las acciones `CloudFormationStackSet` y `CloudFormationStackInstances` pueden especificar nuevos objetivos de implementación, lo que crea nuevas instancias apiladas.

Como parte de una actualización, las acciones `CloudFormationStackSet` y `CloudFormationStackInstances` no eliminan conjuntos de pilas, instancias o recursos. Cuando la acción actualiza una pila pero no especifica todas las instancias que se van a actualizar, las instancias que no se especificaron para la actualización se eliminan de la actualización y se establecen en un estado de `OUTDATED`.

Durante una implementación, las instancias de la pila también pueden mostrar un estado de `OUTDATED` en el que se indica si la implementación en las instancias ha fallado.

## ¿Cómo estructurar StackSets las acciones en una canalización
<a name="action-reference-StackSets-bestpractices"></a>

Como práctica recomendada, debe construir su canalización de manera que el conjunto de pilas se cree y se implemente inicialmente en un subconjunto o en una sola instancia. Tras probar la implementación y ver el conjunto de pilas generado, añada la acción `CloudFormationStackInstances` para crear y actualizar las instancias restantes.

Utilice la consola o la CLI para crear la estructura de canalización recomendada de la siguiente manera:

1. Cree una canalización con una acción de origen (obligatoria) y la acción `CloudFormationStackSet` como acción de implementación. Ejecute su canalización.

1. Cuando su canalización se ejecuta por primera vez, la acción `CloudFormationStackSet` *crea* su conjunto de pilas y al menos una instancia inicial. Verifique la creación del conjunto de pilas y revise la implementación en su instancia inicial. Por ejemplo, para la creación inicial del conjunto de pilas para la cuenta A, donde `us-east-1` se encuentra la región especificada, la instancia de pila se crea con el conjunto de pilas:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/action-reference-StackSets.html)

1. Edita tu canalización para `CloudFormationStackInstances` añadirla como segunda acción de despliegue para create/update apilar las instancias para los objetivos que designes. Por ejemplo, para crear una instancia de pila para la cuenta `Account-A` en la que se especifican las regiones `us-east-2` y `eu-central-1`, se crean las instancias de pila restantes y la instancia inicial permanece actualizada de la siguiente manera:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/action-reference-StackSets.html)

1. Ejecute su canalización según sea necesario para actualizar su conjunto de pilas y actualizar o crear instancias de pila.

Cuando inicie una actualización de pila en la que haya eliminado los objetivos de implementación de la configuración de la acción, las instancias de la pila que no estaban designadas para la actualización se eliminan de la implementación y pasan a un estado OUTDATED. Por ejemplo, para actualizar una instancia de pila para una cuenta `Account-A` en la que la `us-east-2` región se elimina de la configuración de la acción, se crean las instancias de pila restantes y la instancia eliminada se establece en OBSOLETA de la siguiente manera:


****  

| Instancia de pila | Region | Status | 
| --- | --- | --- | 
| StackInstanceID-1 | us-east-1 | CURRENT | 
| StackInstanceID-2 | us-east-2 | OUTDATED | 
| StackInstanceID-3 | eu-central-1 | CURRENT | 

Para obtener más información sobre las prácticas recomendadas para implementar conjuntos de pilas, consulte [las prácticas recomendadas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-bestpractices.html) StackSets en la *Guía del AWS CloudFormation usuario*.

## Acción `CloudFormationStackSet`
<a name="action-reference-StackSet"></a>

Esta acción crea o actualiza un conjunto de pilas a partir de la plantilla almacenada en la ubicación de origen de la canalización. 

Después de definir un conjunto de pilas, puede crear, actualizar o eliminar pilas en las cuentas y regiones de destino especificadas en los parámetros de configuración. Al crear, actualizar y eliminar pilas, puede especificar otras preferencias, como el orden de las regiones para que se realicen las operaciones, el porcentaje de tolerancia a fallos a partir del cual se detienen las operaciones en las pilas y el número de cuentas en las que se realizan operaciones en las pilas de forma concurrente.

Un conjunto de pilas es un recurso regional. Si crea un conjunto de pilas en una AWS región, no podrá acceder a él desde otras regiones.

Cuando esta acción se utiliza como una acción de actualización del conjunto de pilas, no se permiten las actualizaciones de la pila sin una implementación en al menos una instancia de la pila.

**Topics**
+ [

### Tipo de acción
](#action-reference-StackSet-type)
+ [

### Parámetros de configuración
](#action-reference-StackSet-config)
+ [

### Artefactos de entrada
](#action-reference-StackSet-input)
+ [

### Artefactos de salida
](#action-reference-StackSet-output)
+ [

### Variables de salida
](#action-reference-StackSet-variables)
+ [

### Ejemplo de configuración de **CloudFormationStackSet**acciones
](#action-reference-StackSet-example)

### Tipo de acción
<a name="action-reference-StackSet-type"></a>
+ Categoría: `Deploy`
+ Propietario: `AWS`
+ Proveedor: `CloudFormationStackSet`
+ Versión: `1` 

### Parámetros de configuración
<a name="action-reference-StackSet-config"></a>

**StackSetName**  
Obligatorio: sí  
El nombre que se va a asociar con el conjunto de pila. Este nombre debe ser único en la región donde se crea.  
Solo puede contener caracteres alfanuméricos y guiones. Debe comenzar por una letra y tener 128 caracteres o menos.

**Description (Descripción)**  
Obligatorio: no  
Una descripción del conjunto de pila. Puede usarlo para describir el propósito del conjunto de pilas u otra información relevante.

**TemplatePath**  
Obligatorio: sí  
La ubicación de la plantilla que define los recursos del conjunto de pila. Debe apuntar a una plantilla con un tamaño máximo de 460 800 bytes.  
Introduzca la ruta del nombre del artefacto de origen y el archivo de plantilla en el formato `"InputArtifactName::TemplateFileName"`, como se muestra en el siguiente ejemplo.  

```
SourceArtifact::template.txt
```

**Parameters**  
Obligatorio: no  
Una lista de parámetros de plantilla para el conjunto de pilas que se actualizan durante una implementación.  
Puede proporcionar parámetros como una lista literal o una ruta de archivo:  
+ Puede introducir parámetros en el siguiente formato sintáctico abreviado: `ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string`. Para obtener más información acerca de estos tipos de datos, consulte [Tipos de datos de parámetros de plantilla](#action-reference-StackSets-datatypes).

  El siguiente ejemplo muestra un parámetro denominado `BucketName` con el valor `amzn-s3-demo-source-bucket`.

  ```
  ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket
  ```

  En el siguiente ejemplo, se muestra una entrada con varios parámetros:

  ```
                                                                                                        
    ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket
    ParameterKey=Asset1,ParameterValue=true              
    ParameterKey=Asset2,ParameterValue=true
  ```
+ Puede introducir la ubicación del archivo que contiene una lista de modificaciones de parámetros de plantilla introducidas en el formato `"InputArtifactName::ParametersFileName"`, como se muestra en el siguiente ejemplo.

  ```
  SourceArtifact::parameters.txt
  ```

  En el siguiente ejemplo se muestra el contenido del archivo para `parameters.txt`.

  ```
  [
      {
          "ParameterKey": "KeyName",
          "ParameterValue": "true"
      },
      {
          "ParameterKey": "KeyName",
          "ParameterValue": "true"
      }
  ]
  ```

**Capacidades**  
Obligatorio: no  
Indica que la plantilla puede crear y actualizar recursos, en función de los tipos de recursos de la plantilla.  
Debe utilizar esta propiedad si tiene recursos IAM en su plantilla de pila o si crea una pila directamente a partir de una plantilla que contenga macros. Para que la CloudFormation acción funcione correctamente de esta manera, debes usar una de las siguientes capacidades:  
+ `CAPABILITY_IAM` 
+ `CAPABILITY_NAMED_IAM` 
 Puede especificar más de una capacidad mediante el uso de una coma sin espacios entre las capacidades. El ejemplo de [Ejemplo de configuración de **CloudFormationStackSet**acciones](#action-reference-StackSet-example) muestra una entrada con múltiples capacidades.

**PermissionModel**  
Obligatorio: no  
Determina cómo se crean y administran los roles de IAM. Si no se especifica el campo, se usa valor predeterminado. Para obtener información, consulte [Modelos de permisos para operaciones de conjunto de pilas](#action-reference-StackSets-permissions).  
Los valores válidos son:   
+ `SELF_MANAGED` (predeterminado): debe crear roles de administrador y ejecución para implementarlos en las cuentas de destino.
+ `SERVICE_MANAGED`: crea CloudFormation StackSets automáticamente las funciones de IAM necesarias para implementarlas en las cuentas gestionadas por AWS Organizations. Esto requiere una cuenta para ser miembro de una organización.
Este parámetro solo se puede cambiar cuando no hay instancias de pila en el conjunto de pilas.

****AdministrationRoleArn****  
Como CloudFormation StackSets realiza operaciones en varias cuentas, debe definir los permisos necesarios en esas cuentas antes de poder crear el conjunto de pilas.
Obligatorio: no  
Este parámetro es opcional para el modelo de permisos SELF\$1MANAGED y no se usa para el modelo de permisos SERVICE\$1MANAGED.
El ARN del rol de IAM en la cuenta de administrador utilizada para realizar las operaciones del conjunto de pilas.  
El nombre puede contener caracteres alfanuméricos, cualquiera de los siguientes caracteres: \$1\$1=, .@- y no incluir espacios. El nombre distingue entre mayúsculas y minúsculas. El nombre del rol debe tener una longitud mínima de 20 caracteres y una longitud máxima de 2048 caracteres. Los nombres del rol deben ser únicos dentro de la cuenta. El nombre del rol especificado aquí debe ser un nombre de rol existente. Si no especifica el nombre del rol, se establece en AWSCloudFormationStackSetAdministrationRole. Si lo especifica ServiceManaged, no debe definir un nombre de rol.

****ExecutionRoleName****  
Como CloudFormation StackSets realiza operaciones en varias cuentas, debe definir los permisos necesarios en esas cuentas antes de poder crear el conjunto de pilas.
Obligatorio: no  
Este parámetro es opcional para el modelo de permisos SELF\$1MANAGED y no se usa para el modelo de permisos SERVICE\$1MANAGED.
El nombre del rol de IAM en las cuentas de destino utilizadas para realizar las operaciones del conjunto de pilas. El nombre puede contener caracteres alfanuméricos, cualquiera de los siguientes caracteres: \$1\$1=, .@- y no incluir espacios. El nombre distingue entre mayúsculas y minúsculas. Este nombre de rol debe tener una longitud mínima de 1 carácter y máxima de 64 caracteres. Los nombres del rol deben ser únicos dentro de la cuenta. El nombre del rol especificado aquí debe ser un nombre de rol existente. No especifique este rol si utiliza roles de ejecución personalizados. Si no especifica el nombre del rol, se establece en `AWSCloudFormationStackSetExecutionRole`. Si establece Service\$1Managed en verdadero, no debe definir un nombre de rol.

****OrganizationsAutoDeployment****  
Obligatorio: no  
Este parámetro es opcional para el modelo de permisos SERVICE\$1MANAGED y no se usa para el modelo de permisos SELF\$1MANAGED.
Describe si CloudFormation StackSets se implementa automáticamente en AWS las cuentas de Organizations que se agregan a una organización o unidad organizativa (OU) de destino. Si se especifica `OrganizationsAutoDeployment`, no especifique `DeploymentTargets` ni `Regions`.   
Si no se proporciona ninguna entrada para `OrganizationsAutoDeployment`, el valor predeterminado es `Disabled`.
Los valores válidos son:  
+ `Enabled`. Obligatorio: no. 

  StackSets implementa automáticamente instancias de pila adicionales en AWS las cuentas de Organizations que se agregan a una organización o unidad organizativa (OU) de destino en las regiones especificadas. Si se elimina una cuenta de una organización o unidad organizativa de destino, CloudFormation StackSets elimina las instancias de la pila de la cuenta en las regiones especificadas.
+ `Disabled`. Obligatorio: no. 

  StackSets no implementa automáticamente instancias apiladas adicionales en AWS las cuentas de Organizations que se agregan a una organización o unidad organizativa (OU) de destino en las regiones especificadas.
+ `EnabledWithStackRetention`. Obligatorio: no.

  Los recursos de pila se conservan cuando se elimina una cuenta de una organización u OU de destino.

****DeploymentTargets****  
Obligatorio: no  
Para el modelo de permisos SERVICE\$1MANAGED, puedes proporcionar el ID raíz de la organización o la unidad organizativa IDs para los objetivos de despliegue. Para el modelo de permisos SELF\$1MANAGED, solo puede proporcionar cuentas.
Cuando se selecciona este parámetro, también debe seleccionar **Regiones**.
Una lista de AWS cuentas o unidades organizativas en las que IDs se deben crear o actualizar las instancias del conjunto de pilas.  
+ **Cuentas**

  Puede proporcionar las cuentas como una lista literal o como una ruta de archivo:
  + *Literal*: introduzca los parámetros en el formato de sintaxis abreviada `account_ID,account_ID`, como se muestra en el siguiente ejemplo.

    ```
    111111222222,333333444444
    ```
  + *Ruta del archivo:* la ubicación del archivo que contiene una lista de AWS cuentas en las que se deben crear o actualizar las instancias del conjunto de pilas, introducida en el formato. `InputArtifactName::AccountsFileName` Si utilizas la ruta del archivo para especificar **las cuentas** o **OrganizationalUnitIds**, el formato del archivo debe estar en JSON, como se muestra en el siguiente ejemplo.

    ```
    SourceArtifact::accounts.txt
    ```

    En el siguiente ejemplo se muestra el contenido del archivo para `accounts.txt`.

    ```
    [
        "111111222222"
    ]
    ```

    En el siguiente ejemplo, se muestra el contenido del archivo para incluir más de una cuenta de `accounts.txt`:

    ```
    [
        "111111222222","333333444444"
    ]
    ```
+ **OrganizationalUnitIds**: 
**nota**  
Este parámetro es opcional para el modelo de permisos SERVICE\$1MANAGED y no se usa para el modelo de permisos SELF\$1MANAGED. No lo utilices si lo seleccionas **OrganizationsAutoDeployment**.

  Las unidades AWS organizativas en las que actualizar las instancias de pila asociadas.

  Puedes proporcionar la unidad organizativa IDs como una lista literal o una ruta de archivo:
  + *Literal*: introduzca una matriz de cadenas separadas por comas, como se muestra en el siguiente ejemplo.

    ```
    ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222
    ```
  + *Ruta del archivo:* la ubicación del archivo que contiene una lista OrganizationalUnitIds en la que se pueden crear o actualizar las instancias del conjunto de pilas. Si utilizas la ruta del archivo para especificar **cuentas** o **OrganizationalUnitIds**, el formato del archivo debe estar en JSON, como se muestra en el siguiente ejemplo.

    Introduzca una ruta al archivo con el formato `InputArtifactName::OrganizationalUnitIdsFileName`.

    ```
    SourceArtifact::OU-IDs.txt
    ```

    En el siguiente ejemplo se muestra el contenido del archivo para `OU-IDs.txt`.

    ```
    [
        "ou-examplerootid111-exampleouid111","ou-examplerootid222-exampleouid222"
    ]
    ```

****Regiones****  
Obligatorio: no  
Cuando se selecciona este parámetro, también debe seleccionarlo **DeploymentTargets**.
Una lista de AWS regiones en las que se crean o actualizan las instancias de conjuntos de pilas. Las regiones se actualizan en el orden en el que se han introducido.  
Introduzca una lista de AWS regiones válidas en el formato`Region1,Region2`, como se muestra en el siguiente ejemplo.  

```
us-west-2,us-east-1
```

****FailureTolerancePercentage****  
Obligatorio: no  
El porcentaje de cuentas por región en las que esta operación de apilamiento puede fallar antes de que CloudFormation se detenga la operación en esa región. Si la operación se detiene en una región, CloudFormation no la intenta realizar en regiones subsiguientes. Al calcular el número de cuentas en función del porcentaje especificado, CloudFormation *redondea* al siguiente número entero.

****MaxConcurrentPercentage****  
Obligatorio: no  
El porcentaje máximo de cuentas en las que realizar esta operación de una vez. Al calcular el número de cuentas en función del porcentaje especificado, CloudFormation redondea *hacia abajo* al siguiente número entero. Si el redondeo a la baja da como resultado cero, CloudFormation establece el número como uno en su lugar. Si bien usa esta configuración para especificar el *máximo*, el número real de cuentas sobre las que se actúa simultáneamente puede ser menor en implementaciones grandes debido a la limitación controlada de los servicios.

**RegionConcurrencyType**  
Obligatorio: no  
Puede especificar si el conjunto de pilas debe implementarse en Regiones de AWS secuencialmente o en paralelo configurando el parámetro de implementación simultáneo de la región. Si se especifica la simultaneidad de regiones para desplegar pilas en varias en Regiones de AWS paralelo, esto puede resultar en tiempos de despliegue generales más rápidos.  
+ *Paralela*: las implementaciones de conjuntos de pilas se llevarán a cabo al mismo tiempo, siempre y cuando los errores de implementación de una región no superen una tolerancia de fallos especificada.
+ *Secuencial*: las implementaciones de conjuntos de pilas se realizarán una a la vez, siempre y cuando los errores de implementación de una región no superen una tolerancia de fallos especificada. La implementación secuencial es la selección predeterminada.

**ConcurrencyMode**  
Obligatorio: no  
El modo de simultaneidad permite elegir cómo se comporta el nivel de simultaneidad durante las operaciones del conjunto de pilas, ya sea con una tolerancia a los errores estricta o suave. **Tolerancia estricta a errores** reduce la velocidad de implementación a medida que se producen errores en las operaciones del conjunto de pilas, ya que la simultaneidad disminuye en cada error. **Soft Failure Tolerance prioriza la** velocidad de despliegue y, al mismo tiempo, aprovecha las capacidades de seguridad. CloudFormation   
+ `STRICT_FAILURE_TOLERANCE`: esta opción reduce de forma dinámica el nivel de simultaneidad para garantizar que el número de cuentas con errores nunca supere un valor de tolerancia a errores en particular. Este es el comportamiento predeterminado.
+ `SOFT_FAILURE_TOLERANCE`: esta opción desacopla la tolerancia a errores de la simultaneidad real. Esto permite que las operaciones del conjunto de pilas se ejecuten en el nivel de simultaneidad, independientemente del número de errores.

**CallAs**  
Obligatorio: no  
Este parámetro es opcional para el modelo de permisos `SERVICE_MANAGED` y no se usa para el modelo de permisos `SELF_MANAGED`.
Especifica si el usuario actúa en la cuenta de administración de la organización o bien como administrador delegado en una cuenta de miembro.  
Si este parámetro se establece en `DELEGATED_ADMIN`, asegúrese de que el rol de IAM de la canalización tenga el permiso `organizations:ListDelegatedAdministrators`. De lo contrario, la acción fallará mientras se ejecuta y arrojará un error similar al siguiente: `Account used is not a delegated administrator`.
+ `SELF`: la implementación del conjunto de pilas usará permisos administrados por servicios mientras se inicia sesión en la cuenta de administración.
+ `DELEGATED_ADMIN`: la implementación del conjunto de pilas usará permisos administrados por servicios mientras se inicia sesión en una cuenta de administrador delegado.

### Artefactos de entrada
<a name="action-reference-StackSet-input"></a>

Debe incluir al menos un artefacto de entrada que contenga la plantilla del conjunto de pilas de una acción `CloudFormationStackSet`. Puede incluir más artefactos de entrada para las listas de objetivos, cuentas y parámetros de implementación.
+ **Número de artefactos:** `1 to 3`
+ **Descripción:** puede incluir artefactos para proporcionar:
  + El archivo de plantilla de pila. (consulte el parámetro `TemplatePath`).
  + El archivo de parámetros. (consulte el parámetro `Parameters`).
  + El archivo de cuentas. (consulte el parámetro `DeploymentTargets`).

### Artefactos de salida
<a name="action-reference-StackSet-output"></a>
+ **Número de artefactos:** `0` 
+ **Descripción:** los artefactos de salida no se aplican a este tipo de acción.

### Variables de salida
<a name="action-reference-StackSet-variables"></a>

Si configura esta acción, produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores.
+ **StackSetId**: El ID del conjunto de pilas.
+ **OperationId**: El ID de la operación del conjunto de pilas.

Para obtener más información, consulte [Referencia de variables](reference-variables.md).

### Ejemplo de configuración de **CloudFormationStackSet**acciones
<a name="action-reference-StackSet-example"></a>

Los siguientes ejemplos muestran la configuración de la **CloudFormationStackSet**acción.

#### Ejemplo del modelo de permisos autoadministrados
<a name="action-reference-StackSet-example-selfmanaged"></a>

El siguiente ejemplo muestra una **CloudFormationStackSet**acción en la que el objetivo de despliegue introducido es un ID de AWS cuenta.

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

```
Name: CreateStackSet
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: CloudFormationStackSet
  Version: '1'
RunOrder: 1
Configuration:
  DeploymentTargets: '111111222222'
  FailureTolerancePercentage: '20'
  MaxConcurrentPercentage: '25'
  PermissionModel: SELF_MANAGED
  Regions: us-east-1
  StackSetName: my-stackset
  TemplatePath: 'SourceArtifact::template.json'
OutputArtifacts: []
InputArtifacts:
  - Name: SourceArtifact
Region: us-west-2
Namespace: DeployVariables
```

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

```
{
    "Name": "CreateStackSet",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "CloudFormationStackSet",
        "Version": "1"
    },
    "RunOrder": 1,
    "Configuration": {
        "DeploymentTargets": "111111222222",
        "FailureTolerancePercentage": "20",
        "MaxConcurrentPercentage": "25",
        "PermissionModel": "SELF_MANAGED",
        "Regions": "us-east-1",
        "StackSetName": "my-stackset",
        "TemplatePath": "SourceArtifact::template.json"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "SourceArtifact"
        }
    ],
    "Region": "us-west-2",
    "Namespace": "DeployVariables"
}
```

------

#### Ejemplo del modelo de permisos administrados mediante servicios
<a name="action-reference-StackSet-example-servicemanaged"></a>

El siguiente ejemplo muestra una **CloudFormationStackSet**acción para el modelo de permisos administrados por el servicio en el que la opción de despliegue automático en AWS Organizations está habilitada con la retención de pilas.

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

```
Name: Deploy
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: CloudFormationStackSet
  Version: '1'
RunOrder: 1
Configuration:
  Capabilities: 'CAPABILITY_IAM,CAPABILITY_NAMED_IAM'
  OrganizationsAutoDeployment: EnabledWithStackRetention
  PermissionModel: SERVICE_MANAGED
  StackSetName: stacks-orgs
  TemplatePath: 'SourceArtifact::template.json'
OutputArtifacts: []
InputArtifacts:
  - Name: SourceArtifact
Region: eu-central-1
Namespace: DeployVariables
```

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

```
{
    "Name": "Deploy",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "CloudFormationStackSet",
        "Version": "1"
    },
    "RunOrder": 1,
    "Configuration": {
        "Capabilities": "CAPABILITY_IAM,CAPABILITY_NAMED_IAM",
        "OrganizationsAutoDeployment": "EnabledWithStackRetention",
        "PermissionModel": "SERVICE_MANAGED",
        "StackSetName": "stacks-orgs",
        "TemplatePath": "SourceArtifact::template.json"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "SourceArtifact"
        }
    ],
    "Region": "eu-central-1",
    "Namespace": "DeployVariables"
}
```

------

## La acción CloudFormationStackInstances
<a name="action-reference-StackInstances"></a>

Esta acción crea nuevas instancias e implementa conjuntos de pilas en instancias específicas. Una instancia de pila es una referencia a una pila en una cuenta de destino dentro de una región. Una instancia de pila puede existir sin pila; por ejemplo, si la creación de la pila no se realiza correctamente, la instancia de pila muestra el motivo del fallo en la creación de la pila. Una instancia de pila está asociada con un solo conjunto de pilas.

Tras la creación inicial de un conjunto de pilas, puede añadir nuevas instancias de pilas mediante `CloudFormationStackInstances`. Los valores de los parámetros de la plantilla se pueden anular a nivel de instancia de pila durante las operaciones de creación o actualización de instancias de conjuntos de pilas.

Cada conjunto de pilas tiene una plantilla y un conjunto de parámetros de plantilla. Al actualizar la plantilla o los parámetros de la plantilla, se actualizan para todo el conjunto. A continuación, todos los estados de las instancias se establecen en `OUTDATED` hasta que los cambios se implementen en esa instancia.

Para anular los valores de los parámetros en instancias específicas, por ejemplo, si la plantilla contiene un parámetro para `stage` con un valor de `prod`, puede anular el valor de ese parámetro para que sea `beta` o `gamma`.

**Topics**
+ [

### Tipo de acción
](#action-reference-StackInstances-type)
+ [

### Parámetros de configuración
](#action-reference-StackInstances-config)
+ [

### Artefactos de entrada
](#action-reference-StackInstances-input)
+ [

### Artefactos de salida
](#action-reference-StackInstances-output)
+ [

### Variables de salida
](#action-reference-StackInstances-variables)
+ [

### Ejemplo de configuración de una acción
](#action-reference-StackInstances-example)

### Tipo de acción
<a name="action-reference-StackInstances-type"></a>
+ Categoría: `Deploy`
+ Propietario: `AWS`
+ Proveedor: `CloudFormationStackInstances`
+ Versión: `1` 

### Parámetros de configuración
<a name="action-reference-StackInstances-config"></a>

**StackSetName**  
Obligatorio: sí  
El nombre que se va a asociar con el conjunto de pila. Este nombre debe ser único en la región donde se crea.  
Solo puede contener caracteres alfanuméricos y guiones. Debe comenzar por una letra y tener 128 caracteres o menos.

****DeploymentTargets****  
Obligatorio: no  
Para el modelo de permisos SERVICE\$1MANAGED, puedes proporcionar el ID raíz de la organización o la unidad organizativa IDs para los objetivos de despliegue. Para el modelo de permisos SELF\$1MANAGED, solo puede proporcionar cuentas.
Cuando se selecciona este parámetro, también debe seleccionar **Regiones**.
Una lista de AWS cuentas o unidades organizativas en las que IDs se deben crear o actualizar las instancias del conjunto de pilas.  
+ **Cuentas**

  Puede proporcionar las cuentas como una lista literal o como una ruta de archivo:
  + *Literal*: introduzca los parámetros en el formato de sintaxis abreviada `account_ID,account_ID`, como se muestra en el siguiente ejemplo.

    ```
    111111222222,333333444444
    ```
  + *Ruta del archivo:* la ubicación del archivo que contiene una lista de AWS cuentas en las que se deben crear o actualizar las instancias del conjunto de pilas, introducida en el formato. `InputArtifactName::AccountsFileName` Si utilizas la ruta del archivo para especificar **las cuentas** o **OrganizationalUnitIds**, el formato del archivo debe estar en JSON, como se muestra en el siguiente ejemplo.

    ```
    SourceArtifact::accounts.txt
    ```

    En el siguiente ejemplo se muestra el contenido del archivo para `accounts.txt`.

    ```
    [
        "111111222222"
    ]
    ```

    En el siguiente ejemplo, se muestra el contenido del archivo para incluir más de una cuenta de `accounts.txt`:

    ```
    [
        "111111222222","333333444444"
    ]
    ```
+ **OrganizationalUnitIds**: 
**nota**  
Este parámetro es opcional para el modelo de permisos SERVICE\$1MANAGED y no se usa para el modelo de permisos SELF\$1MANAGED. No lo utilices si lo seleccionas **OrganizationsAutoDeployment**.

  Las unidades AWS organizativas en las que actualizar las instancias de pila asociadas.

  Puedes proporcionar la unidad organizativa IDs como una lista literal o una ruta de archivo.
  + *Literal*: introduzca una matriz de cadenas separadas por comas, como se muestra en el siguiente ejemplo.

    ```
    ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222
    ```
  + *Ruta del archivo:* la ubicación del archivo que contiene una lista OrganizationalUnitIds en la que se pueden crear o actualizar las instancias del conjunto de pilas. Si utilizas la ruta del archivo para especificar **cuentas** o **OrganizationalUnitIds**, el formato del archivo debe estar en JSON, como se muestra en el siguiente ejemplo.

    Introduzca una ruta al archivo con el formato `InputArtifactName::OrganizationalUnitIdsFileName`.

    ```
    SourceArtifact::OU-IDs.txt
    ```

    En el siguiente ejemplo se muestra el contenido del archivo para `OU-IDs.txt`.

    ```
    [
        "ou-examplerootid111-exampleouid111","ou-examplerootid222-exampleouid222"
    ]
    ```

****Regiones****  
Obligatorio: sí  
Cuando se selecciona este parámetro, también debe seleccionarlo **DeploymentTargets**.
Una lista de AWS regiones en las que se crean o actualizan las instancias de conjuntos de pilas. Las regiones se actualizan en el orden en el que se han introducido.  
Introduzca una lista de AWS regiones válidas con el formato:`Region1,Region2`, como se muestra en el siguiente ejemplo.  

```
us-west-2,us-east-1
```

**ParameterOverrides**  
Obligatorio: no  
Una lista de parámetros de conjunto de pila que desea anular en las instancias de pila seleccionadas. Los valores de los parámetros anulados se aplican a todas las instancias de pila de las cuentas y regiones especificadas.  
Puede proporcionar parámetros como una lista literal o una ruta de archivo:  
+ Puede introducir parámetros en el siguiente formato sintáctico abreviado: `ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string`. Para obtener más información acerca de estos tipos de datos, consulte [Tipos de datos de parámetros de plantilla](#action-reference-StackSets-datatypes).

  El siguiente ejemplo muestra un parámetro denominado `BucketName` con el valor `amzn-s3-demo-source-bucket`.

  ```
  ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket
  ```

  En el siguiente ejemplo, se muestra una entrada con varios parámetros.

  ```
                                                                                                        
    ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket
    ParameterKey=Asset1,ParameterValue=true              
    ParameterKey=Asset2,ParameterValue=true
  ```
+ Puede introducir la ubicación del archivo que contiene una lista de modificaciones de parámetros de plantilla introducidas en el formato `InputArtifactName::ParameterOverridessFileName`, como se muestra en el siguiente ejemplo.

  ```
  SourceArtifact::parameter-overrides.txt
  ```

  En el siguiente ejemplo se muestra el contenido del archivo para `parameter-overrides.txt`.

  ```
  [
      {
          "ParameterKey": "KeyName",
          "ParameterValue": "true"
      },
      {
          "ParameterKey": "KeyName",
          "ParameterValue": "true"
      }
  ]
  ```

****FailureTolerancePercentage****  
Obligatorio: no  
El porcentaje de cuentas por región en las que esta operación de apilamiento puede fallar antes de que CloudFormation se detenga la operación en esa región. Si la operación se detiene en una región, CloudFormation no la intenta realizar en regiones subsiguientes. Al calcular el número de cuentas en función del porcentaje especificado, CloudFormation *redondea* al siguiente número entero.

****MaxConcurrentPercentage****  
Obligatorio: no  
El porcentaje máximo de cuentas en las que realizar esta operación de una vez. Al calcular el número de cuentas en función del porcentaje especificado, CloudFormation redondea *hacia abajo* al siguiente número entero. Si el redondeo a la baja da como resultado cero, CloudFormation establece el número como uno en su lugar. Si bien especifica el *máximo*, el número real de cuentas sobre las que se actúa simultáneamente puede ser menor en implementaciones grandes debido a la limitación controlada de los servicios.

**RegionConcurrencyType**  
Obligatorio: no  
Puede especificar si el conjunto de pilas debe implementarse en Regiones de AWS secuencialmente o en paralelo configurando el parámetro de implementación simultáneo de la región. Si se especifica la simultaneidad de regiones para desplegar pilas en varias en Regiones de AWS paralelo, esto puede resultar en tiempos de despliegue generales más rápidos.  
+ *Paralela*: las implementaciones de conjuntos de pilas se llevarán a cabo al mismo tiempo, siempre y cuando los errores de implementación de una región no superen una tolerancia de fallos especificada.
+ *Secuencial*: las implementaciones de conjuntos de pilas se realizarán una a la vez, siempre y cuando los errores de implementación de una región no superen una tolerancia de fallos especificada. La implementación secuencial es la selección predeterminada.

**ConcurrencyMode**  
Obligatorio: no  
El modo de simultaneidad permite elegir cómo se comporta el nivel de simultaneidad durante las operaciones del conjunto de pilas, ya sea con una tolerancia a los errores estricta o suave. **Tolerancia estricta a errores** reduce la velocidad de implementación a medida que se producen errores en las operaciones del conjunto de pilas, ya que la simultaneidad disminuye en cada error. **Soft Failure Tolerance prioriza la** velocidad de despliegue y, al mismo tiempo, aprovecha las capacidades de seguridad. CloudFormation   
+ `STRICT_FAILURE_TOLERANCE`: esta opción reduce de forma dinámica el nivel de simultaneidad para garantizar que el número de cuentas con errores nunca supere un valor de tolerancia a errores en particular. Este es el comportamiento predeterminado.
+ `SOFT_FAILURE_TOLERANCE`: esta opción desacopla la tolerancia a errores de la simultaneidad real. Esto permite que las operaciones del conjunto de pilas se ejecuten en el nivel de simultaneidad, independientemente del número de errores.

**CallAs**  
Obligatorio: no  
Este parámetro es opcional para el modelo de permisos `SERVICE_MANAGED` y no se usa para el modelo de permisos `SELF_MANAGED`.
Especifica si el usuario actúa en la cuenta de administración de la organización o bien como administrador delegado en una cuenta de miembro.  
Si este parámetro se establece en `DELEGATED_ADMIN`, asegúrese de que el rol de IAM de la canalización tenga el permiso `organizations:ListDelegatedAdministrators`. De lo contrario, la acción fallará mientras se ejecuta y arrojará un error similar al siguiente: `Account used is not a delegated administrator`.
+ `SELF`: la implementación del conjunto de pilas usará permisos administrados por servicios mientras se inicia sesión en la cuenta de administración.
+ `DELEGATED_ADMIN`: la implementación del conjunto de pilas usará permisos administrados por servicios mientras se inicia sesión en una cuenta de administrador delegado.

### Artefactos de entrada
<a name="action-reference-StackInstances-input"></a>

`CloudFormationStackInstances` puede contener artefactos en los que se enumeran los objetivos y los parámetros del implementación.
+ **Número de artefactos:** `0 to 2`
+ **Descripción**: como entrada, la acción de conjunto de pila acepta de forma opcional artefactos para estos fines:
  + Para proporcionar el archivo de parámetros que se va a utilizar. (consulte el parámetro `ParameterOverrides`).
  + Para proporcionar el archivo de cuentas de destino que se va a utilizar. (consulte el parámetro `DeploymentTargets`).

### Artefactos de salida
<a name="action-reference-StackInstances-output"></a>
+ **Número de artefactos:** `0` 
+ **Descripción:** los artefactos de salida no se aplican a este tipo de acción.

### Variables de salida
<a name="action-reference-StackInstances-variables"></a>

Cuando se configura, esta acción produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores.
+ **StackSetId**: El ID del conjunto de pilas.
+ **OperationId**: El ID de la operación del conjunto de pilas.

Para obtener más información, consulte [Referencia de variables](reference-variables.md).

### Ejemplo de configuración de una acción
<a name="action-reference-StackInstances-example"></a>

Los siguientes ejemplos muestran la configuración de la **CloudFormationStackInstances**acción.

#### Ejemplo del modelo de permisos autoadministrados
<a name="action-reference-StackInstances-example-selfmanaged"></a>

El siguiente ejemplo muestra una **CloudFormationStackInstances**acción en la que el objetivo de despliegue introducido es un Cuenta de AWS ID`111111222222`.

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

```
Name: my-instances
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: CloudFormationStackInstances
  Version: '1'
RunOrder: 2
Configuration:
  DeploymentTargets: '111111222222'
  Regions: 'us-east-1,us-east-2,us-west-1,us-west-2'
  StackSetName: my-stackset
OutputArtifacts: []
InputArtifacts:
  - Name: SourceArtifact
Region: us-west-2
```

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

```
{
    "Name": "my-instances",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "CloudFormationStackInstances",
        "Version": "1"
    },
    "RunOrder": 2,
    "Configuration": {
        "DeploymentTargets": "111111222222",
        "Regions": "us-east-1,us-east-2,us-west-1,us-west-2",
        "StackSetName": "my-stackset"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "SourceArtifact"
        }
    ],
    "Region": "us-west-2"
}
```

------

#### Ejemplo del modelo de permisos administrados mediante servicios
<a name="action-reference-StackInstances-example-servicemanaged"></a>

En el siguiente ejemplo, se muestra una **CloudFormationStackInstances**acción para el modelo de permisos gestionados por el servicio en el que el objetivo de la implementación es un ID de unidad organizativa de Organizations AWS . `ou-1111-1example`

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

```
Name: Instances
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: CloudFormationStackInstances
  Version: '1'
RunOrder: 2
Configuration:
  DeploymentTargets: ou-1111-1example
  Regions: us-east-1
  StackSetName: my-stackset
OutputArtifacts: []
InputArtifacts:
  - Name: SourceArtifact
Region: eu-central-1
```

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

```
{
    "Name": "Instances",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "CloudFormationStackInstances",
        "Version": "1"
    },
    "RunOrder": 2,
    "Configuration": {
        "DeploymentTargets": "ou-1111-1example",
        "Regions": "us-east-1",
        "StackSetName": "my-stackset"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "SourceArtifact"
        }
    ],
    "Region": "eu-central-1"
}
```

------

## Permisos del rol de servicio: acción de `CloudFormationStackSet`
<a name="edit-role-cfn-stackset"></a>

Para CloudFormation StackSets las acciones, se requieren los siguientes permisos mínimos.

Para la acción `CloudFormationStackSet`, añada lo siguiente a su instrucción de política:

```
{
    "Effect": "Allow",
    "Action": [
        "cloudformation:CreateStackSet",
        "cloudformation:UpdateStackSet",
        "cloudformation:CreateStackInstances",
        "cloudformation:DescribeStackSetOperation",
        "cloudformation:DescribeStackSet",
        "cloudformation:ListStackInstances"
    ],
    "Resource": "resource_ARN"
},
```

## Permisos del rol de servicio: acción `CloudFormationStackInstances`
<a name="edit-role-cfn-stackinstances"></a>

Para la acción `CloudFormationStackInstances`, añada lo siguiente a su instrucción de política:

```
{
    "Effect": "Allow",
    "Action": [
        "cloudformation:CreateStackInstances",
        "cloudformation:DescribeStackSetOperation"
    ],
    "Resource": "resource_ARN"
},
```

## Modelos de permisos para operaciones de conjunto de pilas
<a name="action-reference-StackSets-permissions"></a>

Como CloudFormation StackSets realiza operaciones en varias cuentas, debe definir los permisos necesarios en esas cuentas antes de poder crear el conjunto de pilas. Puede definir los permisos mediante permisos autoadministrados o permisos administrados por servicios.

Con los permisos autogestionados, se crean las dos funciones de IAM que necesita StackSets : una función de administrador, como la de la cuenta, AWSCloud FormationStackSetAdministrationRole en la que se define el conjunto de pilas, y una función de ejecución, como la de cada una de las cuentas AWSCloud FormationStackSetExecutionRole en las que se despliegan las instancias del conjunto de pilas. Con este modelo de permisos, StackSets puede realizar despliegues en cualquier AWS cuenta en la que el usuario tenga permisos para crear un rol de IAM. Para obtener más información, consulte [Concesión de permisos autoadministrados](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html) en la *Guía del usuario de AWS CloudFormation *.

**nota**  
Como CloudFormation StackSets realiza operaciones en varias cuentas, debe definir los permisos necesarios en esas cuentas antes de poder crear el conjunto de pilas.

Con los permisos gestionados por el servicio, puedes implementar instancias apiladas en las cuentas gestionadas por Organizations AWS . Con este modelo de permisos, no tiene que crear las funciones de IAM necesarias, ya que las StackSets crea en su nombre. Con este modelo, también puede habilitar implementaciones automáticas en cuentas que se añaden a la organización en el futuro. Consulte [Habilitar el acceso confiable con AWS Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-enable-trusted-access.html) en la *Guía AWS CloudFormation del usuario*.

## Tipos de datos de parámetros de plantilla
<a name="action-reference-StackSets-datatypes"></a>

Los parámetros de plantilla utilizados en las operaciones del conjunto de pilas incluyen los siguientes tipos de datos. Para obtener más información, consulte [DescribeStackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html).

ParameterKey  
+ Descripción: la clave asociada con el parámetro. Si no especifica una clave y un valor para un parámetro concreto, AWS CloudFormation utiliza el valor predeterminado que se especifica en la plantilla.
+ Ejemplo:

  ```
  "ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket"
  ```

ParameterValue  
+ Descripción: el valor de entrada asociado con el parámetro.
+ Ejemplo:

  ```
  "ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket"
  ```

UsePreviousValue  
+ Durante una actualización de la pila, utilice el valor de parámetro existente que la pila está utilizando para una clave de parámetro determinada. Si especifica `true`, no especifique un valor de parámetro.
+ Ejemplo:

  ```
  "ParameterKey=Asset1,UsePreviousValue=true"
  ```

Cada conjunto de pilas tiene una plantilla y un conjunto de parámetros de plantilla. Al actualizar la plantilla o los parámetros de la plantilla, se actualizan para todo el conjunto. A continuación, todos los estados de las instancias se establecen en OUTDATED hasta que los cambios se implementen en esa instancia.

Para anular los valores de los parámetros en instancias específicas, por ejemplo, si la plantilla contiene un parámetro para `stage` con un valor de `prod`, puede anular el valor de ese parámetro para que sea `beta` o `gamma`.

## Véase también
<a name="action-reference-CloudFormation-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [Tipos de parámetros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#parameters-section-structure-properties-type): este capítulo de referencia de la *Guía del AWS CloudFormation usuario* proporciona más descripciones y ejemplos de los parámetros CloudFormation de la plantilla.
+ Prácticas recomendadas: para obtener más información sobre las prácticas recomendadas para implementar conjuntos de pilas, consulte [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-bestpractices.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-bestpractices.html) en la *Guía del usuario de AWS CloudFormation *.
+ [AWS CloudFormation Referencia de la API](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/): puedes consultar CloudFormation las siguientes acciones en la referencia de la *AWS CloudFormation API* para obtener más información sobre los parámetros que se utilizan en las operaciones de los conjuntos de pilas:

  
  + La [CreateStackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackSet.html)acción crea un conjunto de pilas.
  + La [UpdateStackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)acción actualiza el conjunto de pilas y las instancias de pila asociadas en las cuentas y regiones especificadas. Incluso si la operación del conjunto de pilas creada al actualizar el conjunto de pilas falla (total o parcialmente, por debajo o por encima de una tolerancia a errores especificada), el conjunto de pilas se actualiza con estos cambios. Las CreateStackInstances llamadas posteriores al conjunto de pilas especificado utilizan el conjunto de pilas actualizado.
  + La [CreateStackInstances](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html)acción crea una instancia de pila para todas las regiones especificadas en todas las cuentas especificadas en un modelo de permisos autogestionado o dentro de todos los objetivos de despliegue especificados en un modelo de permisos gestionado por el servicio. Puede anular los parámetros de las instancias creadas mediante esta acción. Si las instancias ya existen, realiza las CreateStackInstances llamadas UpdateStackInstances con los mismos parámetros de entrada. Cuando utiliza esta acción para crear instancias, no cambia el estado de las demás instancias de la pila.
  + La [UpdateStackInstances](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackInstances.html)acción actualiza las instancias de la pila con la pila configurada para todas las regiones especificadas en todas las cuentas especificadas en un modelo de permisos autogestionado o dentro de todos los objetivos de despliegue especificados en un modelo de permisos gestionados por el servicio. Puede anular los parámetros de las instancias actualizados mediante esta acción. Cuando utiliza esta acción para actualizar un subconjunto de instancias, no cambia el estado de las demás instancias de la pila.
  + La [DescribeStackSetOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeStackSetOperation.html)acción devuelve la descripción de la operación del conjunto de pilas especificado.
  + La [DescribeStackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeStackSet.html)acción devuelve la descripción del conjunto de pilas especificado.

# AWS CodeBuild referencia de acciones de construcción y prueba
<a name="action-reference-CodeBuild"></a>

Le permite ejecutar compilaciones y pruebas como parte de la canalización. Cuando ejecutas una acción de CodeBuild compilación o prueba, los comandos especificados en la especificación de compilación se ejecutan dentro de un contenedor. CodeBuild Todos los artefactos que se especifican como artefactos de entrada para una CodeBuild acción están disponibles dentro del contenedor que ejecuta los comandos. CodeBuild puede proporcionar una acción de construcción o de prueba. Para obtener más información, consulte la [Guía del usuario de AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/).

Cuando utilizas el CodePipeline asistente de la consola para crear un proyecto de compilación, el proyecto de CodeBuild compilación muestra que el proveedor de origen es CodePipeline. Cuando creas un proyecto de compilación en la CodeBuild consola, no puedes especificarlo CodePipeline como proveedor de origen, pero si agregas la acción de compilación a tu canalización, se ajusta la fuente en la CodeBuild consola. Para obtener más información, consulta [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html) en la *AWS CodeBuild Referencia de la API de *.

**Topics**
+ [

## Tipo de acción
](#action-reference-CodeBuild-type)
+ [

## Parámetros de configuración
](#action-reference-CodeBuild-config)
+ [

## Artefactos de entrada
](#action-reference-CodeBuild-input)
+ [

## Artefactos de salida
](#action-reference-CodeBuild-output)
+ [

## Variables de salida
](#action-reference-CodeBuild-variables)
+ [

## Permisos de rol de servicio: CodeBuild acción
](#edit-role-codebuild)
+ [

## Declaración de acción (CodeBuild ejemplo)
](#action-reference-CodeBuild-example)
+ [

## Véase también
](#action-reference-CodeBuild-links)

## Tipo de acción
<a name="action-reference-CodeBuild-type"></a>
+ Categoría: `Build` o `Test`
+ Propietario: `AWS`
+ Proveedor: `CodeBuild`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-CodeBuild-config"></a>

**ProjectName**  
Obligatorio: sí  
`ProjectName`es el nombre del proyecto de compilación en CodeBuild.

**PrimarySource**  
Obligatorio: condicional  
El valor del `PrimarySource` parámetro debe ser el nombre de uno de los artefactos de entrada a la acción. CodeBuild busca el archivo buildspec y ejecuta los comandos buildspec en el directorio que contiene la versión descomprimida de este artefacto.  
Este parámetro es necesario si se especifican varios artefactos de entrada para una acción de CodeBuild . Cuando solo hay un artefacto de origen para la acción, el artefacto `PrimarySource` se establece como valor predeterminado de dicho artefacto.

**BatchEnabled**  
Obligatorio: no  
El valor booleano del parámetro `BatchEnabled` permite que la acción ejecute varias compilaciones en la misma ejecución de compilación.  
Cuando esta opción está habilitada, la opción `CombineArtifacts` está disponible.  
[Para ver ejemplos de canalizaciones con compilaciones por lotes habilitadas, consulta la integración con y las compilaciones por lotes. CodePipeline CodeBuild ](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-pipeline-batch.html)

**BuildspecOverride**  
Obligatorio: no  
Definición de buildspec insertada o declaración del archivo buildspec que invalida la última definida en el proyecto de compilación, solo para esta compilación. Las especificaciones de buildspec que se han definido en el proyecto no se modifican.  
Si se establece este valor, existen las opciones siguientes:  
+ Una definición de buildspec insertada. Para obtener más información, consulte la referencia de la sintaxis en [Sintaxis de buildspec](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-syntax).
+ La ruta de un archivo buildspec alternativo relativa al valor de la variable de entorno `CODEBUILD_SRC_DIR` integrada o la ruta de un bucket de S3. El bucket debe encontrarse en la misma Región de AWS que el proyecto de compilación. Especifique el archivo buildspec utilizando su ARN (por ejemplo, `arn:aws:s3:::my-codebuild-sample2/buildspec.yml`). Si este valor no se proporciona o se establece en una cadena vacía, el código fuente debe contener un archivo buildspec en su directorio raíz. Para obtener más información sobre cómo agregar una ruta, consulte [Nombre de archivo y ubicación de almacenamiento de buildspec](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-name-storage).
Como esta propiedad permite cambiar los comandos de compilación que se ejecutarán en el contenedor, debe tener en cuenta que una entidad principal de IAM con capacidad para llamar a esta API y establecer este parámetro puede anular la configuración predeterminada. Además, le recomendamos que utilice una ubicación para buildspec que sea de confianza, como un archivo en su repositorio de origen o un bucket de Amazon S3.

**CombineArtifacts**  
Obligatorio: no  
El valor booleano del parámetro `CombineArtifacts` combina todos los artefactos de compilación de una compilación por lotes en un único archivo de artefactos para la acción de compilación.  
Para utilizar esta opción, el parámetro `BatchEnabled` debe estar activado.

**EnvironmentVariables**  
Obligatorio: no  
El valor de este parámetro se utiliza para establecer variables de entorno para la acción de CodeBuild de la canalización. El valor del parámetro `EnvironmentVariables` toma la forma de una matriz JSON de objetos de variables de entorno. Consulte el parámetro de ejemplo en [Declaración de acción (CodeBuild ejemplo)](#action-reference-CodeBuild-example).  
Cada objeto tiene tres partes, todas las cuales son cadenas:  
+ `name`: el nombre o la clave de la variable de entorno. 
+ `value`: el valor de la variable de entorno. Si utiliza el `SECRETS_MANAGER` tipo `PARAMETER_STORE` o, este valor debe ser el nombre de un parámetro que ya haya almacenado en el Almacén de parámetros de AWS Systems Manager o un secreto que ya haya guardado en AWS Secrets Manager, respectivamente.
**nota**  
Se desaconseja encarecidamente el uso de variables de entorno para almacenar valores confidenciales, especialmente AWS las credenciales. Cuando utiliza la CodeBuild consola o la AWS CLI, las variables de entorno se muestran en texto plano. Para valores confidenciales, se recomienda utilizar el tipo `SECRETS_MANAGER`en su lugar. 
+ `type`: (opcional) el tipo de la variable de entorno. Los valores válidos son `PARAMETER_STORE`, `SECRETS_MANAGER` o `PLAINTEXT`. Si no se especifica, toma el valor predeterminado `PLAINTEXT`.
Al introducir `name``value`, y `type` para la configuración de las variables de entorno, especialmente si la variable de entorno contiene la sintaxis de la variable de CodePipeline salida, no supere el límite de 1000 caracteres del campo de valor de la configuración. Cuando se supera este límite, se devuelve un error de validación.
Para obtener más información, consulte la referencia [ EnvironmentVariable](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_EnvironmentVariable.html)de la AWS CodeBuild API. Para ver un ejemplo de CodeBuild acción con una variable de entorno que se resuelva en el nombre de la GitHub rama, consulte[Ejemplo: usa una BranchName variable con variables de CodeBuild entorno](actions-variables.md#actions-variables-examples-env-branchname).

## Artefactos de entrada
<a name="action-reference-CodeBuild-input"></a>
+ **Número de artefactos:** `1 to 5`
+ **Descripción:** CodeBuild busca el archivo buildspec y ejecuta los comandos buildspec desde el directorio del artefacto fuente principal. Cuando se especifica una sola fuente de entrada o cuando se especifica más de una fuente de entrada para la CodeBuild acción, el artefacto único o el artefacto principal en el caso de varias fuentes de entrada debe configurarse mediante el parámetro de configuración de la acción en. `PrimarySource` CodePipeline 

  Cada artefacto de entrada se extrae en su propio directorio, cuyas ubicaciones se almacenan en variables de entorno. El directorio del artefacto de origen principal está disponible con `$CODEBUILD_SRC_DIR`. Los directorios del resto de artefactos de entrada están disponibles con `$CODEBUILD_SRC_DIR_yourInputArtifactName`.
**nota**  
El artefacto configurado en tu CodeBuild proyecto se convierte en el artefacto de entrada utilizado por la CodeBuild acción en tu proceso.

## Artefactos de salida
<a name="action-reference-CodeBuild-output"></a>
+ **Número de artefactos:** `0 to 5` 
+ **Descripción:** Se pueden usar para que los artefactos definidos en el archivo CodeBuild buildspec estén disponibles para acciones posteriores en proceso. Cuando solo se define un artefacto de salida, este artefacto se puede definir directamente en la sección `artifacts` del archivo buildspec. Cuando se especifica más de un artefacto de salida, todos los artefactos a los que se hace referencia deben definirse como artefactos secundarios en el archivo buildspec. Los nombres de los artefactos de salida CodePipeline deben coincidir con los identificadores de artefactos del archivo buildspec.
**nota**  
El artefacto configurado en el CodeBuild proyecto se convierte en el artefacto de CodePipeline entrada de la acción de la canalización.

  Si se selecciona el parámetro `CombineArtifacts` para compilaciones por lotes, la ubicación del artefacto de salida contiene los artefactos combinados de varias compilaciones que se ejecutaron en la misma ejecución.

## Variables de salida
<a name="action-reference-CodeBuild-variables"></a>

Esta acción producirá como variables todas las variables de entorno que se exportaron como parte de la compilación. Para obtener más información sobre cómo exportar variables de entorno, consulta la Guía [ EnvironmentVariable](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_EnvironmentVariable.html)de la *AWS CodeBuild API*.

Para obtener más información sobre el uso de variables de CodeBuild entorno en CodePipeline, consulte los ejemplos de[CodeBuild variables de salida de una acción](reference-variables.md#reference-variables-list-configured-codebuild). Para obtener una lista de las variables de entorno que puede utilizar CodeBuild, consulte [Variables de entorno en entornos de compilación](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html) en la *Guía del AWS CodeBuild usuario*.

## Permisos de rol de servicio: CodeBuild acción
<a name="edit-role-codebuild"></a>

Para obtener CodeBuild asistencia, añada lo siguiente a su declaración de política:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "codebuild:BatchGetBuilds",
                "codebuild:StartBuild",
                "codebuild:BatchGetBuildBatches",
                "codebuild:StartBuildBatch"
            ],
            "Resource": [
                "arn:aws:codebuild:*:111122223333:project/[[ProjectName]]"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

## Declaración de acción (CodeBuild ejemplo)
<a name="action-reference-CodeBuild-example"></a>

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

```
Name: Build
Actions:
  - Name: PackageExport
    ActionTypeId:
      Category: Build
      Owner: AWS
      Provider: CodeBuild
      Version: '1'
    RunOrder: 1
    Configuration:
      BatchEnabled: 'true'
      CombineArtifacts: 'true'
      ProjectName: my-build-project
      PrimarySource: MyApplicationSource1
      EnvironmentVariables: '[{"name":"TEST_VARIABLE","value":"TEST_VALUE","type":"PLAINTEXT"},{"name":"ParamStoreTest","value":"PARAMETER_NAME","type":"PARAMETER_STORE"}]'
    OutputArtifacts:
      - Name: MyPipeline-BuildArtifact
    InputArtifacts:
      - Name: MyApplicationSource1
      - Name: MyApplicationSource2
```

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

```
{
    "Name": "Build",
    "Actions": [
        {
            "Name": "PackageExport",
            "ActionTypeId": {
                "Category": "Build",
                "Owner": "AWS",
                "Provider": "CodeBuild",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "BatchEnabled": "true",
                "CombineArtifacts": "true",
                "ProjectName": "my-build-project",
                "PrimarySource": "MyApplicationSource1",
                "EnvironmentVariables": "[{\"name\":\"TEST_VARIABLE\",\"value\":\"TEST_VALUE\",\"type\":\"PLAINTEXT\"},{\"name\":\"ParamStoreTest\",\"value\":\"PARAMETER_NAME\",\"type\":\"PARAMETER_STORE\"}]"
            },
            "OutputArtifacts": [
                {
                    "Name": "MyPipeline-BuildArtifact"
                }
            ],
            "InputArtifacts": [
                {
                    "Name": "MyApplicationSource1"
                },
                {
                    "Name": "MyApplicationSource2"
                }
            ]
        }
    ]
}
```

------

## Véase también
<a name="action-reference-CodeBuild-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [AWS CodeBuild Guía del usuario](https://docs.aws.amazon.com/codebuild/latest/userguide/): para ver un ejemplo de proceso con una CodeBuild acción, consulta [Usar CodePipeline con CodeBuild para probar código y ejecutar compilaciones](https://docs.aws.amazon.com/codebuild/latest/userguide/how-to-create-pipeline.html). Para ver ejemplos de proyectos con múltiples CodeBuild artefactos de entrada y salida, consulte Ejemplo de [CodePipelineintegración con CodeBuild múltiples fuentes de entrada y artefactos de salida y Ejemplo](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-pipeline-multi-input-output.html) de [múltiples fuentes de entrada y artefactos de salida](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-multi-in-out.html).
+ [Tutorial: Crea una canalización que compile y pruebe tu aplicación para Android con AWS Device Farm](tutorials-codebuild-devicefarm.md)— Este tutorial proporciona un ejemplo de archivo de especificaciones de compilación y una aplicación de ejemplo para crear una canalización con una GitHub fuente que cree y pruebe una aplicación de Android con y. CodeBuild AWS Device Farm
+ [Referencia de especificaciones de compilación para CodeBuild ](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html): en este tema de referencia se proporcionan definiciones y ejemplos para entender CodeBuild los archivos buildspec. *Para obtener una lista de las variables de entorno que puede utilizar CodeBuild, consulte [Variables de entorno en entornos de compilación en](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html) la Guía del AWS CodeBuild usuario.*

# AWS CodePipeline invocar referencia de acción
<a name="action-reference-PipelineInvoke"></a>

La acción de CodePipeline invocación se utiliza para simplificar la activación de las ejecuciones de canalizaciones posteriores y el paso de variables de canalización y revisiones de fuentes entre canalizaciones.

**nota**  
Esta acción solo se admite para canalizaciones de tipo V2.

**Topics**
+ [

## Tipo de acción
](#action-reference-PipelineInvoke-type)
+ [

## Parámetros de configuración
](#action-reference-PipelineInvoke-parameters)
+ [

## Artefactos de entrada
](#action-reference-PipelineInvoke-input)
+ [

## Artefactos de salida
](#action-reference-PipelineInvoke-output)
+ [

## Política de rol de servicio: permisos para la acción de CodePipeline invocación
](#action-reference-PipelineInvoke-permissions-action)
+ [

## Declaración de acciones
](#action-reference-PipelineInvoke-example)
+ [

## Véase también
](#action-reference-PipelineInvoke-links)

## Tipo de acción
<a name="action-reference-PipelineInvoke-type"></a>
+ Categoría: `Invoke`
+ Propietario: `AWS`
+ Proveedor: `CodePipeline`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-PipelineInvoke-parameters"></a>

**PipelineName**  
Obligatorio: sí  
El nombre de la canalización que, al ejecutarse, iniciará la canalización de destino actual. Debe haber creado previamente la canalización de invocación. La acción iniciará la canalización `s3-pipeline-test` (de destino) cuando la canalización (de invocación) denominada `my-s3-pipeline` inicie una ejecución.

**SourceRevisions**  
Obligatorio: no  
Las revisiones de origen que desea que utilice la canalización de destino cuando la inicie la canalización que la invoca. Por ejemplo, una acción de origen de S3 proporciona variables de salida como el ID de versión de S3 y la clave de objeto. Puede especificar un valor de revisión que se utilizará cuando se invoque la canalización.   
Para la CLI, especifique las revisiones de origen como una cadena JSON serializada. *Para obtener más información sobre el uso de las anulaciones de revisiones de código fuente, consulta [SourceRevisionOverride](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_SourceRevisionOverride.html)la Guía de API. CodePipeline *  
La asignación utiliza el formato de cadena que se muestra en el siguiente ejemplo:  

```
[{"actionName":"Source","revisionType":"S3_OBJECT_VERSION_ID","revision
Value":"zq8mjNEXAMPLE"}]
```

**Variables**  
Obligatorio: no  
Los nombres y valores de las variables que desea que admita la acción.  
Para la CLI, las variables se especifican como una cadena JSON serializada. Para obtener más información sobre el uso de variables de canalización, consulta [PipelineVariable](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PipelineVariable.html)la *Guía de la CodePipeline API*.  
La asignación utiliza el formato de cadena que se muestra en el siguiente ejemplo:  

```
[{"name":"VAR1","value":"VALUE1"}]
```

En la siguiente imagen, se muestra un ejemplo de la acción que se agregó a una canalización en la consola. 

![\[Una canalización con un origen de S3 y una etapa de compilación que incluye la acción de invocación de la canalización\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/example-pipeline-invoke-run.png)


En la siguiente imagen, se muestra un ejemplo de la página **Editar** de la acción. En el siguiente ejemplo, la canalización con el nombre `s3-pipeline-test` tiene una acción de invocación de canalización configurada como se muestra para la consola. La acción iniciará la canalización `s3-pipeline-test` cuando la canalización denominada `my-s3-pipeline` inicie una ejecución. En el ejemplo, se muestra la anulación de revisión de origen para la anulación de origen S3\$1OBJECT\$1VERSION\$1ID con un valor de revisión especificado de `zq8mjNYEexample`.

![\[La página Editar acción de una nueva canalización con la acción de invocación de la canalización\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/example-pipeline-invoke-edit.png)


## Artefactos de entrada
<a name="action-reference-PipelineInvoke-input"></a>
+ **Número de artefactos:** `0`
+ **Descripción:** los artefactos de entrada no se aplican a este tipo de acción.

## Artefactos de salida
<a name="action-reference-PipelineInvoke-output"></a>
+ **Número de artefactos:** `0` 
+ **Descripción:** los artefactos de salida no se aplican a este tipo de acción.

## Política de rol de servicio: permisos para la acción de CodePipeline invocación
<a name="action-reference-PipelineInvoke-permissions-action"></a>

Cuando CodePipeline se ejecuta la acción, la política de rol de CodePipeline servicio requiere el `codepipeline:StartPipelineExecution` permiso, que se extiende adecuadamente al ARN del recurso de canalización para mantener el acceso con el mínimo de privilegios.

```
 {
            "Sid": "StatementForPipelineInvokeAction",
            "Effect": "Allow",
            "Action": "codepipeline:StartPipelineExecution",
            "Resource": [
                "arn:aws:codepipeline:{{region}}:{{AccountId}}:{{pipelineName}}"
            ]
        }
```

## Declaración de acciones
<a name="action-reference-PipelineInvoke-example"></a>

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

```
name: Invoke-pipeline
actionTypeId:
  category: Invoke
  owner: AWS
  provider: CodePipeline
  version: '1'
runOrder: 2
configuration:
  PipelineName: my-s3-pipeline
  SourceRevisions: '[{"actionName":"Source","revisionType":"S3_OBJECT_VERSION_ID","revision
Value":"zq8mjNEXAMPLE"}]'
  Variables: '[{"name":"VAR1","value":"VALUE1"}]'
```

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

```
{
    "name": "Invoke-pipeline",
    "actionTypeId": {
        "category": "Invoke",
        "owner": "AWS",
        "provider": "CodePipeline",
        "version": "1"
    },
    "runOrder": 2,
    "configuration": {
        "PipelineName": "my-s3-pipeline",
        "SourceRevisions": "[{\"actionName\":\"Source\",\"revisionType\":\"S3_OBJECT_VERSION_ID\",\"revisionValue\":\"zq8mjNEXAMPLE"}]",
        "Variables": "[{\"name\":\"VAR1\",\"value\":\"VALUE1\"}]"
    }
},
```

------

## Véase también
<a name="action-reference-PipelineInvoke-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+  [Iniciar una canalización con una anulación de revisión de código fuente](pipelines-trigger-source-overrides.md)— En esta sección se describe cómo iniciar una canalización con revisiones de fuentes de forma manual o mediante el transformador de entrada de EventBridge eventos.

# CodeCommit referencia de acción de origen
<a name="action-reference-CodeCommit"></a>

Inicia la canalización cuando se realiza una nueva confirmación en el CodeCommit repositorio y la rama configurados.

Si utilizas la consola para crear o editar la canalización, CodePipeline crea una EventBridge regla que la inicie cuando se produzca un cambio en el repositorio.

**nota**  
Para Amazon ECR, Amazon S3 o CodeCommit Sources, también puedes crear una anulación de fuente mediante la entrada input transform para usar la entrada `revisionValue` in EventBridge para tu evento de canalización, donde `revisionValue` se deriva de la variable de evento de origen para tu clave de objeto, confirmación o ID de imagen. Para obtener más información, consulte el paso opcional para la entrada de transformación de entrada, que se incluye en los procedimientos de [Acciones y recursos fuente de Amazon ECR EventBridge](create-cwe-ecr-source.md), [Conexión a acciones de origen de Amazon S3 con un origen habilitado para eventos](create-S3-source-events.md) o [CodeCommit acciones de origen y EventBridge](triggering.md).

Debe haber creado ya un CodeCommit repositorio antes de conectar la canalización mediante una CodeCommit acción.

Después de detectar un cambio de código, tiene las siguientes opciones para pasar el código a acciones posteriores:
+ **Predeterminado**: configura la acción de CodeCommit origen para generar un archivo ZIP con una copia superficial de tu confirmación.
+ **Clonación completa**: configura la acción de origen para generar una referencia de URL de Git al repositorio para acciones posteriores.

  Actualmente, la referencia a la URL de Git solo la pueden usar las CodeBuild acciones posteriores para clonar el repositorio y los metadatos de Git asociados. Si se intenta pasar una referencia a una URL de Git a una falta de CodeBuild acción, se produce un error.

**Topics**
+ [

## Tipo de acción
](#action-reference-CodeCommit-type)
+ [

## Parámetros de configuración
](#action-reference-CodeCommit-config)
+ [

## Artefactos de entrada
](#action-reference-CodeCommit-input)
+ [

## Artefactos de salida
](#action-reference-CodeCommit-output)
+ [

## Variables de salida
](#action-reference-CodeCommit-variables)
+ [

## Permisos de rol de servicio: CodeCommit acción
](#edit-role-codecommit)
+ [

## Ejemplo de configuración de una acción
](#action-reference-CodeCommit-example)
+ [

## Véase también
](#action-reference-CodeCommit-links)

## Tipo de acción
<a name="action-reference-CodeCommit-type"></a>
+ Categoría: `Source`
+ Propietario: `AWS`
+ Proveedor: `CodeCommit`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-CodeCommit-config"></a>

**RepositoryName**  
Obligatorio: sí  
El nombre del repositorio en el que se van a detectar los cambios de origen.

**BranchName**  
Obligatorio: sí  
El nombre de la ramificación donde se van a detectar los cambios de origen.

**PollForSourceChanges**  
Obligatorio: no  
`PollForSourceChanges`controla si consulta CodePipeline el CodeCommit repositorio en busca de cambios en la fuente. En su lugar, le recomendamos que utilice CloudWatch Events para detectar los cambios en la fuente. Para obtener más información sobre la configuración de CloudWatch eventos, consulte [Migrar los canales de sondeo (CodeCommit fuente) (CLI)](update-change-detection.md#update-change-detection-cli-codecommit) o[Migre los canales de sondeo (CodeCommit fuente) (CloudFormation plantilla)](update-change-detection.md#update-change-detection-cfn-codecommit).  
Si tiene intención de configurar una regla de CloudWatch eventos, debe configurarla `PollForSourceChanges` `false` para evitar la duplicación de ejecuciones en canalización.
Los valores válidos para este parámetro son:  
+ `true`: Si está configurado, CodePipeline sondea tu repositorio para ver si hay cambios en la fuente.
**nota**  
Si lo omites`PollForSourceChanges`, de CodePipeline forma predeterminada sondea tu repositorio para ver si hay cambios en la fuente. Este comportamiento es el mismo que si se incluye `PollForSourceChanges` y se establece en `true`.
+ `false`: Si está configurado, CodePipeline no sondea tu repositorio para ver si hay cambios en la fuente. Utilice este ajuste si pretende configurar una regla de CloudWatch eventos para detectar los cambios en la fuente.

****OutputArtifactFormat****  
Obligatorio: no  
El formato del artefacto de salida. Los valores pueden ser `CODEBUILD_CLONE_REF` o `CODE_ZIP`. Si no se especifica, el valor predeterminado es `CODE_ZIP`.  
La opción `CODEBUILD_CLONE_REF` solo se puede utilizar en acciones de CodeBuild posteriores.  
Si elige esta opción, tendrá que añadir el `codecommit:GitPull` permiso a su función de CodeBuild servicio, tal y como se muestra en[Añada CodeBuild GitClone permisos para las acciones CodeCommit de origen](troubleshooting.md#codebuild-role-codecommitclone). También debe añadir el `codecommit:GetRepository` permiso a su función de CodePipeline servicio, como se muestra en[Agrega permisos al rol de CodePipeline servicio](how-to-custom-role.md#how-to-update-role-new-services). Para ver un tutorial que muestra cómo utilizar la opción **Clonación completa**, consulte [Tutorial: Utilice un clon completo con una fuente de CodeCommit canalización](tutorials-codecommit-gitclone.md).

## Artefactos de entrada
<a name="action-reference-CodeCommit-input"></a>
+ **Número de artefactos:** `0`
+ **Descripción:** los artefactos de entrada no se aplican a este tipo de acción.

## Artefactos de salida
<a name="action-reference-CodeCommit-output"></a>
+ **Número de artefactos:** `1` 
+ **Descripción:** el artefacto de salida de esta acción es un archivo ZIP que contiene el contenido del repositorio configurado y la ramificación en la confirmación especificada como la revisión de origen para la ejecución de la canalización. Los artefactos generados desde el repositorio son los artefactos de salida de la CodeCommit acción. El ID de confirmación del código fuente se muestra CodePipeline como la revisión fuente de la ejecución de la canalización activada.

## Variables de salida
<a name="action-reference-CodeCommit-variables"></a>

Cuando se configura, esta acción produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Esta acción produce variables que se pueden ver como variables de salida, incluso si la acción no tiene un espacio de nombres. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores.

Para obtener más información, consulte [Referencia de variables](reference-variables.md).

**CommitId**  
El ID de CodeCommit confirmación que activó la ejecución de la canalización. IDs Las confirmaciones son el SHA completo de la confirmación.

**CommitMessage**  
El mensaje de descripción, si lo hay, asociado a la confirmación que desencadenó la ejecución de la canalización.

**RepositoryName**  
El nombre del CodeCommit repositorio en el que se realizó la confirmación que activó la canalización.

**BranchName**  
El nombre de la rama del CodeCommit repositorio en el que se realizó el cambio de fuente.

**AuthorDate**  
Fecha en la que se creó la confirmación, en formato de marca temporal.

**CommitterDate**  
Fecha en la que se ha confirmado la confirmación, en formato de marca temporal.

## Permisos de rol de servicio: CodeCommit acción
<a name="edit-role-codecommit"></a>

Cuando CodePipeline se ejecuta la acción, la política de rol de CodePipeline servicio requiere los siguientes permisos, que se limitan adecuadamente al ARN del recurso de canalización para mantener el acceso con los mínimos privilegios. Por ejemplo, agregue lo siguiente a su declaración de política:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codecommit:CancelUploadArchive",
                "codecommit:GetBranch",
                "codecommit:GetCommit",
                "codecommit:GetRepository",
                "codecommit:GetUploadArchiveStatus",
                "codecommit:UploadArchive"
            ],
            "Resource": [
                "arn:aws:codecommit:*:111122223333:[[codecommitRepostories]]"
            ]
        }
    ]
}
```

------



## Ejemplo de configuración de una acción
<a name="action-reference-CodeCommit-example"></a>

### Ejemplo de formato de artefacto de salida predeterminado
<a name="w2aac56c49c29b3"></a>

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

```
name: Source
actionTypeId:
  category: Source
  owner: AWS
  provider: CodeCommit
  version: '1'
runOrder: 1
configuration:
  BranchName: main
  PollForSourceChanges: 'false'
  RepositoryName: MyWebsite
outputArtifacts:
  - name: Artifact_MyWebsiteStack
inputArtifacts: []
region: us-west-2
namespace: SourceVariables
```

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

```
{
    "name": "Source",
    "actionTypeId": {
        "category": "Source",
        "owner": "AWS",
        "provider": "CodeCommit",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {
        "BranchName": "main",
        "PollForSourceChanges": "false",
        "RepositoryName": "MyWebsite"
    },
    "outputArtifacts": [
        {
            "name": "Artifact_MyWebsiteStack"
        }
    ],
    "inputArtifacts": [],
    "region": "us-west-2",
    "namespace": "SourceVariables"
}
```

------

### Ejemplo de formato de artefacto de salida de clonación
<a name="w2aac56c49c29b5"></a>

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

```
name: Source
actionTypeId:
  category: Source
  owner: AWS
  provider: CodeCommit
  version: '1'
runOrder: 1
configuration:
  BranchName: main
  OutputArtifactFormat: CODEBUILD_CLONE_REF
  PollForSourceChanges: 'false'
  RepositoryName: MyWebsite
outputArtifacts:
  - name: SourceArtifact
inputArtifacts: []
region: us-west-2
namespace: SourceVariables
```

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

```
{
    "name": "Source",
    "actionTypeId": {
        "category": "Source",
        "owner": "AWS",
        "provider": "CodeCommit",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {
        "BranchName": "main",
        "OutputArtifactFormat": "CODEBUILD_CLONE_REF",
        "PollForSourceChanges": "false",
        "RepositoryName": "MyWebsite"
    },
    "outputArtifacts": [
        {
            "name": "SourceArtifact"
        }
    ],
    "inputArtifacts": [],
    "region": "us-west-2",
    "namespace": "SourceVariables"
}
```

------

## Véase también
<a name="action-reference-CodeCommit-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [Tutorial: Crear una canalización sencilla (CodeCommit repositorio)](tutorials-simple-codecommit.md)— Este tutorial proporciona un ejemplo de archivo de especificaciones de la aplicación y un ejemplo de grupo de implementación y CodeDeploy aplicación. Utilice este tutorial para crear una canalización con una CodeCommit fuente que se despliegue en las instancias de Amazon EC2.

# Referencia de la acción de implementación de AWS CodeDeploy
<a name="action-reference-CodeDeploy"></a>

Utiliza una AWS CodeDeploy acción para implementar el código de la aplicación en su flota de implementación. Su flota de implementación puede estar compuesta por instancias de Amazon EC2, instancias en las instalaciones o ambas.

**nota**  
En este tema de referencia se describe la acción de CodeDeploy despliegue en los CodePipeline casos en los que la plataforma de despliegue es Amazon EC2. Para obtener información de referencia sobre Amazon Elastic Container Service y las acciones de CodeDeploy blue/green despliegue en CodePipeline ellas, consulte[Referencia de acciones de despliegue de Amazon Elastic Container Service y CodeDeploy azul-verde](action-reference-ECSbluegreen.md).

**Topics**
+ [

## Tipo de acción
](#action-reference-CodeDeploy-type)
+ [

## Parámetros de configuración
](#action-reference-CodeDeploy-config)
+ [

## Artefactos de entrada
](#action-reference-CodeDeploy-input)
+ [

## Artefactos de salida
](#action-reference-CodeDeploy-output)
+ [

## Permisos de rol de servicio: AWS CodeDeploy acción
](#edit-role-codedeploy)
+ [

## Declaración de acciones
](#action-reference-CodeDeploy-example)
+ [

## Véase también
](#action-reference-CodeDeploy-links)

## Tipo de acción
<a name="action-reference-CodeDeploy-type"></a>
+ Categoría: `Deploy`
+ Propietario: `AWS`
+ Proveedor: `CodeDeploy`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-CodeDeploy-config"></a>

**ApplicationName**  
Obligatorio: sí  
El nombre de la aplicación en la que creó CodeDeploy.

**DeploymentGroupName**  
Obligatorio: sí  
El grupo de despliegue en el que creó CodeDeploy.

## Artefactos de entrada
<a name="action-reference-CodeDeploy-input"></a>
+ **Número de artefactos:** `1`
+ **Descripción:** el AppSpec archivo que se CodeDeploy utiliza para determinar:
  + Qué instalar en sus instancias desde la revisión de la aplicación en Amazon S3 o GitHub.
  + Los enlaces de eventos del ciclo de vida que se deben ejecutar en respuesta a los eventos del ciclo de vida de la implementación.

  Para obtener más información sobre el AppSpec archivo, consulte la [referencia del CodeDeploy AppSpec archivo](https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file.html).

  

## Artefactos de salida
<a name="action-reference-CodeDeploy-output"></a>
+ **Número de artefactos:** `0` 
+ **Descripción:** los artefactos de salida no se aplican a este tipo de acción.

## Permisos de rol de servicio: AWS CodeDeploy acción
<a name="edit-role-codedeploy"></a>

Para obtener AWS CodeDeploy asistencia, añada lo siguiente a su declaración de política:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codedeploy:CreateDeployment",
                "codedeploy:GetApplication",
                "codedeploy:GetDeployment",
                "codedeploy:RegisterApplicationRevision",
                "codedeploy:ListDeployments",
                "codedeploy:ListDeploymentGroups",
                "codedeploy:GetDeploymentGroup"
            ],
            "Resource": [
                "arn:aws:codedeploy:*:111122223333:application:[[codedeployApplications]]",
                "arn:aws:codedeploy:*:111122223333:deploymentgroup:[[codedeployApplications]]/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "codedeploy:GetDeploymentConfig"
            ],
            "Resource": [
                "arn:aws:codedeploy:*:111122223333:deploymentconfig:[[deploymentConfigs]]"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "codedeploy:ListDeploymentConfigs"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## Declaración de acciones
<a name="action-reference-CodeDeploy-example"></a>

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

```
Name: Deploy
Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: CodeDeploy
      Version: '1'
    RunOrder: 1
    Configuration:
      ApplicationName: my-application
      DeploymentGroupName: my-deployment-group
    OutputArtifacts: []
    InputArtifacts:
      - Name: SourceArtifact
    Region: us-west-2
    Namespace: DeployVariables
```

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

```
{
    "Name": "Deploy",
    "Actions": [
        {
            "Name": "Deploy",
            "ActionTypeId": {
                "Category": "Deploy",
                "Owner": "AWS",
                "Provider": "CodeDeploy",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "ApplicationName": "my-application",
                "DeploymentGroupName": "my-deployment-group"
            },
            "OutputArtifacts": [],
            "InputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "Region": "us-west-2",
            "Namespace": "DeployVariables"
        }
    ]
},
```

------

## Véase también
<a name="action-reference-CodeDeploy-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [Tutorial: Crear una canalización simple (bucket de S3)](tutorials-simple-s3.md)— Este tutorial explica cómo crear un bucket de código fuente, instancias EC2 y CodeDeploy recursos para implementar una aplicación de muestra. Luego, crea su canalización con una acción de CodeDeploy implementación que implementa el código mantenido en su bucket de S3 en su instancia de Amazon EC2.
+ [Tutorial: Crear una canalización sencilla (CodeCommit repositorio)](tutorials-simple-codecommit.md)— En este tutorial, se explica cómo crear el repositorio de CodeCommit origen, las instancias de EC2 y CodeDeploy los recursos para implementar una aplicación de muestra. A continuación, crea su canalización con una acción de CodeDeploy despliegue que despliega el código de su CodeCommit repositorio en su instancia de Amazon EC2.
+ [CodeDeploy AppSpec Referencia de archivos](https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file.html): este capítulo de referencia de la *Guía del AWS CodeDeploy usuario* proporciona información de referencia y ejemplos de CodeDeploy AppSpec archivos.

# CodeStarSourceConnection para Bitbucket Cloud GitHub, GitHub Enterprise Server, GitLab .com y acciones GitLab autogestionadas
<a name="action-reference-CodestarConnectionSource"></a>

Las acciones de origen para las conexiones son compatibles con. AWS CodeConnections CodeConnections permite crear y administrar conexiones entre AWS recursos y repositorios de terceros, como GitHub. Inicia una canalización cuando se realiza una nueva confirmación en un repositorio de código fuente de terceros. La acción de origen recupera los cambios de código cuando se ejecuta manualmente una canalización o cuando se envía un evento webhook desde el proveedor de origen. 

Puede configurar acciones en la canalización para usar una configuración de Git que permita iniciar la canalización con desencadenadores. Para configurar los desencadenadores de canalización para filtrar con ellos, consulte más información en [Agregación de desencadenadores con tipos de eventos de solicitud de inserción o extracción de código](pipelines-filter.md).

**nota**  
Esta función no está disponible en las regiones Asia Pacífico (Hong Kong), Asia Pacífico (Hyderabad), Asia Pacífico (Yakarta), Asia Pacífico (Melbourne), Asia Pacífico (Osaka), África (Ciudad del Cabo), Oriente Medio (Baréin), Oriente Medio (Emiratos Árabes Unidos), Europa (España), Europa (Zúrich), Israel (Tel Aviv) o AWS GovCloud (EE. UU. Oeste). Para hacer referencia a otras acciones disponibles, consulte [Integraciones de productos y servicios con CodePipeline](integrations.md). Para ver consideraciones sobre esta acción en la región de Europa (Milán), consulte la nota que aparece en [CodeStarSourceConnection para Bitbucket Cloud GitHub, GitHub Enterprise Server, GitLab .com y acciones GitLab autogestionadas](#action-reference-CodestarConnectionSource).

Connections puede asociar tus AWS recursos a los siguientes repositorios de terceros:
+ Bitbucket Cloud (mediante la opción de proveedor de **Bitbucket** en la CodePipeline consola o el `Bitbucket` proveedor en la CLI)
**nota**  
Puede crear conexiones a un repositorio de Bitbucket Cloud. Los tipos de proveedores de Bitbucket instalados, como Bitbucket Server, no son compatibles. 
+ 
**nota**  
Si utiliza un espacio de trabajo de Bitbucket, debe tener acceso de administrador para crear la conexión.
+ GitHub y GitHub Enterprise Cloud (a través de la opción de proveedor **GitHub (mediante GitHub aplicación)** en la CodePipeline consola o el `GitHub` proveedor en la CLI)
**nota**  
Si tu repositorio está en una GitHub organización, debes ser el propietario de la organización para crear la conexión. Si está utilizando un repositorio que no está en una organización, debe ser el propietario del repositorio.
+ GitHub Enterprise Server (mediante la opción de proveedor de **GitHub Enterprise Server** en la CodePipeline consola o el `GitHub Enterprise Server` proveedor en la CLI)
+ GitLab.com (a través de la opción de **GitLab**proveedor en la CodePipeline consola o el `GitLab` proveedor en la CLI)
**nota**  
Puede crear conexiones a un repositorio en el que tenga la función de **propietario** y GitLab, a continuación, la conexión se puede utilizar con el repositorio con recursos como CodePipeline: En el caso de los repositorios en grupos, no es necesario que sea el propietario del grupo.
+ Instalación autogestionada para GitLab (Enterprise Edition o Community Edition) (mediante la opción de proveedor **GitLab autogestionado** en la CodePipeline consola o el `GitLabSelfManaged` proveedor en la CLI)

**nota**  
Cada conexión es compatible con todos los repositorios que tenga con ese proveedor. Solo tiene que crear una conexión nueva para cada tipo de proveedor.

Las conexiones permiten que su canalización detecte los cambios de origen a través de la aplicación de instalación del proveedor externo. Por ejemplo, los webhooks se utilizan para suscribirse a tipos de GitHub eventos y se pueden instalar en una organización, un repositorio o una aplicación. GitHub Tu conexión instala un webhook de repositorio en tu GitHub aplicación que se suscribe a GitHub eventos de tipo push.

Después de detectar un cambio de código, tiene las siguientes opciones para pasar el código a acciones posteriores:
+ Predeterminado: al igual que otras acciones de CodePipeline código fuente existentes, `CodeStarSourceConnection` puedes generar un archivo ZIP con una copia superficial de tu confirmación.
+ Full cone (Clonación completa): `CodeStarSourceConnection` también se puede configurar para generar una referencia URL al repositorio para acciones posteriores.

  Actualmente, la referencia a la URL de Git solo la pueden usar las CodeBuild acciones posteriores para clonar el repositorio y los metadatos de Git asociados. Si se intenta pasar una referencia a una URL de Git a una falta de CodeBuild acción, se produce un error.

CodePipeline te pide que añadas la aplicación de instalación de AWS Connector a tu cuenta de terceros al crear una conexión. Debe haber creado ya su cuenta y repositorio de proveedor externo para poder conectarse a través de la acción `CodeStarSourceConnection`.

**nota**  
Para crear o asociar una política a su rol con los permisos necesarios para usar las conexiones de AWS CodeStar , consulte [Referencia de permisos de conexiones](https://docs.aws.amazon.com/dtconsole/latest/userguide/security-iam.html#permissions-reference-connections). En función de cuándo se creó su función de CodePipeline servicio, es posible que necesite actualizar sus permisos para admitir AWS CodeStar las conexiones. Para obtener instrucciones, consulte [Agrega permisos al rol de CodePipeline servicio](how-to-custom-role.md#how-to-update-role-new-services).

**nota**  
Para utilizar las conexiones en Europa (Milán) Región de AWS, debe:   
Instalar una aplicación específica de la región
Habilitar la región
Esta aplicación específica de la región está disponible en la región Europa (Milán). Se publica en el sitio del proveedor externo y es independiente de la aplicación existente que admite conexiones para otras regiones. Al instalar esta aplicación, autoriza a los proveedores externos a compartir sus datos con el servicio únicamente para esta región, y puede revocar los permisos en cualquier momento desinstalando la aplicación.  
El servicio no procesará ni almacenará sus datos a menos que habilite la región. Al habilitar esta región, otorga a nuestro servicio permisos para procesar y almacenar sus datos.  
Aunque la región no esté habilitada, los proveedores externos pueden compartir sus datos con nuestro servicio si la aplicación específica de la región permanece instalada, así que asegúrese de desinstalar la aplicación una vez que deshabilite la región. Para obtener más información, consulte [Habilitar una región](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable).

**Topics**
+ [

## Tipo de acción
](#action-reference-CodestarConnectionSource-type)
+ [

## Parámetros de configuración
](#action-reference-CodestarConnectionSource-config)
+ [

## Artefactos de entrada
](#action-reference-CodestarConnectionSource-input)
+ [

## Artefactos de salida
](#action-reference-CodestarConnectionSource-output)
+ [

## Variables de salida
](#action-reference-CodestarConnectionSource-variables)
+ [

## Permisos de rol de servicio: CodeConnections acción
](#edit-role-connections)
+ [

## Declaración de acciones
](#action-reference-CodestarConnectionSource-example)
+ [

## Instalación de la aplicación de instalación y creación de una conexión
](#action-reference-CodestarConnectionSource-auth)
+ [

## Véase también
](#action-reference-CodestarConnectionSource-links)

## Tipo de acción
<a name="action-reference-CodestarConnectionSource-type"></a>
+ Categoría: `Source`
+ Propietario: `AWS`
+ Proveedor: `CodeStarSourceConnection`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-CodestarConnectionSource-config"></a>

****ConnectionArn****  
Obligatorio: sí  
El ARN de conexión que se ha configurado y autenticado para el proveedor de código fuente.

****FullRepositoryId****  
Obligatorio: sí  
El propietario y el nombre del repositorio en el que se van a detectar los cambios de código fuente.  
Ejemplo: `some-user/my-repo`  
Debe mantener las mayúsculas y minúsculas correctas para el **FullRepositoryId**valor. Por ejemplo, si tu nombre de usuario es `some-user` y el nombre del repositorio es`My-Repo`, el valor recomendado **FullRepositoryId**es`some-user/My-Repo`.

****BranchName****  
Obligatorio: sí  
El nombre de la ramificación donde se van a detectar los cambios de origen.

****OutputArtifactFormat****  
Obligatorio: no  
Especifica el formato del artefacto de salida. Puede ser `CODEBUILD_CLONE_REF` o `CODE_ZIP`. Si no se especifica, el valor predeterminado es `CODE_ZIP`.  
La opción `CODEBUILD_CLONE_REF` solo se puede utilizar en acciones de CodeBuild posteriores.  
Si eliges esta opción, tendrás que actualizar los permisos de tu función de servicio de CodeBuild proyectos, tal y como se muestra en [Añade CodeBuild GitClone permisos para las conexiones a Bitbucket, Enterprise Server o .com GitHub GitHub GitLab](troubleshooting.md#codebuild-role-connections) la siguiente. Para ver un tutorial que muestra cómo utilizar la opción **Clonación completa**, consulte [Tutorial: Utilice un clon completo con una fuente de GitHub canalización](tutorials-github-gitclone.md).

**DetectChanges**  
 Obligatorio: no  
Controla automáticamente el inicio de su canalización cuando se realiza una nueva confirmación en el repositorio y la rama configurados. Si no se especifica, el valor predeterminado es `true` y el campo no se muestra de forma predeterminada. Los valores válidos para este parámetro son:  
+ `true`: inicia CodePipeline automáticamente tu canalización con las nuevas confirmaciones.
+ `false`: CodePipeline no inicia tu canalización con nuevas confirmaciones.

## Artefactos de entrada
<a name="action-reference-CodestarConnectionSource-input"></a>
+ **Número de artefactos:** `0`
+ **Descripción:** los artefactos de entrada no se aplican a este tipo de acción.

## Artefactos de salida
<a name="action-reference-CodestarConnectionSource-output"></a>
+ **Número de artefactos:** `1` 
+ **Descripción:** los artefactos generados desde el repositorio son los artefactos de salida de la acción `CodeStarSourceConnection`. El ID de confirmación del código fuente se muestra CodePipeline como la revisión de origen de la ejecución de la canalización activada. Puede configurar el artefacto de salida de esta acción en:
  + Un archivo ZIP que incluye el contenido del repositorio configurado y la ramificación en la confirmación especificada como la revisión de código fuente para la ejecución de la canalización.
  + Un archivo JSON que contiene una referencia URL al repositorio para que las acciones posteriores puedan ejecutar comandos de Git directamente.
**importante**  
Esta opción solo la pueden utilizar las acciones CodeBuild posteriores.  
Si elige esta opción, tendrá que actualizar los permisos de su función de servicio de CodeBuild proyectos, tal y como se muestra en [Solución de problemas CodePipeline](troubleshooting.md) la siguiente. Para ver un tutorial que muestra cómo utilizar la opción **Clonación completa**, consulte [Tutorial: Utilice un clon completo con una fuente de GitHub canalización](tutorials-github-gitclone.md).

## Variables de salida
<a name="action-reference-CodestarConnectionSource-variables"></a>

Cuando se configura, esta acción produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Esta acción produce variables que se pueden ver como variables de salida, incluso si la acción no tiene un espacio de nombres. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores.

Para obtener más información, consulte [Referencia de variables](reference-variables.md).

AuthorDate  
Fecha en la que se creó la confirmación, en formato de marca temporal.

BranchName  
El nombre de la ramificación del repositorio donde se realizó el cambio de origen.

CommitId  
El ID de confirmación de que desencadenó la ejecución de la canalización.

CommitMessage  
El mensaje de descripción, si lo hay, asociado a la confirmación que desencadenó la ejecución de la canalización.

ConnectionArn  
El ARN de conexión que se ha configurado y autenticado para el proveedor de código fuente.

FullRepositoryName  
El nombre del repositorio de donde se realizó la confirmación que activó la canalización.

## Permisos de rol de servicio: CodeConnections acción
<a name="edit-role-connections"></a>

Para CodeConnections ello, se requiere el siguiente permiso para crear canalizaciones con una fuente que utilice una conexión, como Bitbucket Cloud.

```
{
    "Effect": "Allow",
    "Action": [
        "codeconnections:UseConnection"
    ],
    "Resource": "resource_ARN"
},
```

Para obtener más información sobre los permisos de IAM para las conexiones, consulte [Referencia de permisos de conexiones](https://docs.aws.amazon.com/dtconsole/latest/userguide/security-iam.html#permissions-reference-connections).

## Declaración de acciones
<a name="action-reference-CodestarConnectionSource-example"></a>

En el siguiente ejemplo, el artefacto de salida se establece en el formato ZIP predeterminado de `CODE_ZIP` para la conexión con ARN `arn:aws:codestar-connections:region:account-id:connection/connection-id`.

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

```
Name: Source
Actions:
  - InputArtifacts: []
    ActionTypeId:
      Version: '1'
      Owner: AWS
      Category: Source
      Provider: CodeStarSourceConnection
    OutputArtifacts:
      - Name: SourceArtifact
    RunOrder: 1
    Configuration:
      ConnectionArn: "arn:aws:codestar-connections:region:account-id:connection/connection-id"
      FullRepositoryId: "some-user/my-repo"
      BranchName: "main"
      OutputArtifactFormat: "CODE_ZIP"
    Name: ApplicationSource
```

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

```
{
    "Name": "Source",
    "Actions": [
        {
            "InputArtifacts": [],
            "ActionTypeId": {
                "Version": "1",
                "Owner": "AWS",
                "Category": "Source",
                "Provider": "CodeStarSourceConnection"
            },
            "OutputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "RunOrder": 1,
            "Configuration": {
                "ConnectionArn": "arn:aws:codestar-connections:region:account-id:connection/connection-id",
                "FullRepositoryId": "some-user/my-repo",
                "BranchName": "main",
                "OutputArtifactFormat": "CODE_ZIP"
            },
            "Name": "ApplicationSource"
        }
    ]
},
```

------

## Instalación de la aplicación de instalación y creación de una conexión
<a name="action-reference-CodestarConnectionSource-auth"></a>

La primera vez que utilices la consola para añadir una nueva conexión a un repositorio de terceros, debes autorizar el CodePipeline acceso a tus repositorios. Elegirá y creará una aplicación de instalación que le ayude a conectarse a la cuenta en la que ha creado su repositorio de código de terceros.

 Cuando utilice la plantilla AWS CLI o una CloudFormation plantilla, debe proporcionar el ARN de conexión de una conexión que ya haya pasado por el protocolo de enlace de instalación. De lo contrario, la canalización no se activará. 

**nota**  
Para una acción de origen `CodeStarSourceConnection`, no es necesario configurar un webhook ni utilizar el sondeo de forma predeterminada. La acción de conexiones gestiona automáticamente la detección de cambio de origen.

## Véase también
<a name="action-reference-CodestarConnectionSource-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [AWS::CodeStarConnections::Connection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html)— La referencia CloudFormation de plantilla del recurso AWS CodeStar Connections proporciona parámetros y ejemplos de las conexiones en CloudFormation las plantillas.
+ [AWS CodeStarReferencia de la API](https://docs.aws.amazon.com/codestar-connections/latest/APIReference/Welcome.html) de *AWS CodeStar conexiones: la referencia de la API* de conexiones proporciona información de referencia para las acciones de conexión disponibles.
+ Para ver los pasos para crear una canalización con acciones de origen compatibles con las conexiones, consulte lo siguiente:
  + Para Bitbucket Cloud, use la opción **Bitbucket** en la consola o la acción `CodestarSourceConnection` en la CLI. Consulte [Conexiones de Bitbucket Cloud](connections-bitbucket.md).
  + Para GitHub GitHub Enterprise Cloud, utilice la opción de **GitHub**proveedor en la consola o la `CodestarSourceConnection` acción en la CLI. Consulte [GitHub conexiones](connections-github.md).
  + Para GitHub Enterprise Server, utilice la opción de proveedor de **GitHub Enterprise Server** en la consola o la `CodestarSourceConnection` acción en la CLI. Consulte [GitHub Conexiones de Enterprise Server](connections-ghes.md).
  + Para GitLab .com, utilice la opción de **GitLab**proveedor en la consola o la `CodestarSourceConnection` acción con el `GitLab` proveedor en la CLI. Consulte [GitLabconexiones .com](connections-gitlab.md).
+ Para ver un tutorial de introducción que crea una canalización con una fuente y una CodeBuild acción de Bitbucket, consulta [Cómo empezar con las conexiones](https://docs.aws.amazon.com/dtconsole/latest/userguide/getting-started-connections.html).
+ Para ver un tutorial que te muestra cómo conectarte a un GitHub repositorio y cómo usar la opción de **clonación completa** con una CodeBuild acción posterior, consulta. [Tutorial: Utilice un clon completo con una fuente de GitHub canalización](tutorials-github-gitclone.md)

# Referencia de la acción de Comandos
<a name="action-reference-Commands"></a>

La acción de Comandos permite ejecutar comandos del intérprete de comandos en una instancia de computación virtual. Al ejecutar la acción, los comandos especificados en la configuración de la acción se ejecutan en un contenedor independiente. Todos los artefactos que se especifican como artefactos de entrada para una CodeBuild acción están disponibles dentro del contenedor que ejecuta los comandos. Esta acción permite especificar comandos sin necesidad de crear primero un CodeBuild proyecto. Para obtener más información consulte [ActionDeclaration](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ActionDeclaration.html) y [OutputArtifact](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_OutputArtifact.html) en la *Referencia de la API de AWS CodePipeline *.

**importante**  
Esta acción utiliza la CodeBuild computación CodePipeline gestionada para ejecutar comandos en un entorno de compilación. Si ejecuta la acción de Comandos, se le cobrarán cargos por separado en AWS CodeBuild.

**nota**  
La acción de implementación de comandos solo está disponible para canalizaciones de tipo V2.

**Topics**
+ [

## Consideraciones sobre la acción de Comandos
](#action-reference-Commands-considerations)
+ [

## Permisos para las políticas de roles de servicio
](#action-reference-Commands-policy)
+ [

## Tipo de acción
](#action-reference-Commands-type)
+ [

## Parámetros de configuración
](#action-reference-Commands-config)
+ [

## Artefactos de entrada
](#action-reference-Commands-input)
+ [

## Artefactos de salida
](#action-reference-Commands-output)
+ [

## Variables de entorno
](#action-reference-Commands-envvars)
+ [

## Permisos del rol de servicio: acción de Comandos
](#edit-role-Commands)
+ [

## Declaración de acciones (ejemplo)
](#action-reference-Commands-example)
+ [

## Véase también
](#action-reference-Commands-links)

## Consideraciones sobre la acción de Comandos
<a name="action-reference-Commands-considerations"></a>

Las siguientes consideraciones se aplican a la acción de Comandos.
+ La acción de comandos utiliza CodeBuild recursos similares a los de la CodeBuild acción y, al mismo tiempo, permite ejecutar comandos de entorno de shell en una instancia de procesamiento virtual sin necesidad de asociar o crear un proyecto de compilación.
**nota**  
Si ejecuta la acción de Comandos, se le cobrarán cargos por separado en AWS CodeBuild.
+ Como la acción Comandos CodePipeline utiliza CodeBuild recursos, las compilaciones ejecutadas por la acción se atribuirán a los límites de compilación de tu cuenta en CodeBuild. Las compilaciones ejecutadas mediante la acción de Comandos se tendrán en cuenta para los límites de compilación simultánea configurados para esa cuenta.
+ El tiempo de espera para las compilaciones con la acción de comandos es de 55 minutos, según las CodeBuild compilaciones.
+ La instancia de cómputo utiliza un entorno de compilación aislado en CodeBuild. 
**nota**  
Debido a que el entorno de compilación aislado se usa a nivel de cuenta, es posible que una instancia se reutilice para otra ejecución de canalización.
+ Se admiten todos los formatos, excepto los formatos multilínea. Debe utilizar el formato de una sola línea al introducir comandos.
+ La acción de comandos es compatible con las acciones en varias cuentas. Para agregar una acción de comandos en varias cuentas, agregue `actionRoleArn` en su cuenta de destino en la declaración de la acción.
+ Para esta acción, CodePipeline asumirá la función de servicio de canalización y la utilizará para permitir el acceso a los recursos en tiempo de ejecución. Se recomienda configurar el rol de servicio para que los permisos se limiten al nivel de acción.
+ Los permisos agregados a la función CodePipeline de servicio se detallan en[Agrega permisos al rol de CodePipeline servicio](how-to-custom-role.md#how-to-update-role-new-services).
+ El permiso necesario para ver los registros en la consola se detalla en [Permisos necesarios para ver los registros de procesamiento en la consola](security-iam-permissions-console-logs.md).
+ A diferencia de otras acciones en CodePipeline, no se establecen campos en la configuración de acciones; se establecen los campos de configuración de acciones fuera de la configuración de acciones.

## Permisos para las políticas de roles de servicio
<a name="action-reference-Commands-policy"></a>

Cuando CodePipeline ejecuta la acción, CodePipeline crea un grupo de registros con el nombre de la canalización, tal como se indica a continuación. Esto permite reducir los permisos para registrar los recursos mediante el nombre de la canalización.

```
/aws/codepipeline/MyPipelineName
```

Si utiliza un rol de servicio existente, para utilizar la acción de Comandos tendrá que agregar los siguientes permisos para el rol de servicio.
+ registros: CreateLogGroup
+ registros: CreateLogStream
+ registros: PutLogEvents

En la declaración de las políticas de roles de servicio, limite los permisos al nivel de la canalización como se muestra en el siguiente ejemplo.

```
{
    "Effect": "Allow",
    "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
    ],
    "Resource": [
        "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME",
        "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*"
   ]
}
```

Para ver los registros en la consola mediante la página del cuadro de diálogo de detalles de la acción, se debe agregar el permiso para ver los registros al rol de la consola. Para obtener más información, consulte el ejemplo de política de permisos para consolas en [Permisos necesarios para ver los registros de procesamiento en la consola](security-iam-permissions-console-logs.md).

## Tipo de acción
<a name="action-reference-Commands-type"></a>
+ Categoría: `Compute`
+ Propietario: `AWS`
+ Proveedor: `Commands`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-Commands-config"></a>

**Comandos**  
Obligatorio: sí  
Puede proporcionar comandos del intérprete de comandos para que se ejecute la acción `Commands`. En la consola, los comandos se introducen en líneas separadas. En la CLI, los comandos se introducen como cadenas independientes.  
Los formatos multilínea no son compatibles y generarán un mensaje de error. Se debe utilizar el formato de una sola línea para introducir comandos en el campo **Comandos**.
Los ComputeType valores EnvironmentType y coinciden con los de CodeBuild. Admitimos un subconjunto de los tipos disponibles. Para obtener más información, consulte [Tipos de computación de entorno de compilación](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html).

**EnvironmentType**  
Obligatorio: no  
La imagen del sistema operativo del entorno de compilación que admite la acción de comandos. Estos son los valores válidos para los entornos de compilación:  
+ LINUX\$1CONTAINER
+ WINDOWS\$1SERVER\$12022\$1CONTAINER
La selección de **EnvironmentType**permitirá entonces incluir en el **ComputeType**campo el tipo de cálculo para ese sistema operativo. Para obtener más información sobre los tipos de CodeBuild procesamiento disponibles para esta acción, consulte la referencia sobre los [tipos y modos de procesamiento del entorno de compilación](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) en la Guía del CodeBuild usuario.  
Si no se especifica, la computación utilizará de forma predeterminada lo siguiente para el entorno de compilación:  
+ **Tipo de cómputo:** BUILD\$1 \$1SMALL GENERAL1
+ **Tipo de entorno:** LINUX\$1CONTAINER

**ComputeType**  
Obligatorio: no  
En función de la selección EnvironmentType, se puede proporcionar el tipo de cálculo. A continuación, se muestran los valores disponibles para la computación, pero tenga en cuenta que pueden variar según el sistema operativo.  
+ BUILD\$1 \$1SMALL GENERAL1
+ BUILD\$1 GENERAL1 \$1MEDIUM
+ CONSTRUIR\$1 GENERAL1 \$1LARGE
Algunos tipos de computación no son compatibles con ciertos tipos de entornos. Por ejemplo, WINDOWS\$1SERVER\$12022\$1CONTAINER no es compatible con BUILD\$1 \$1SMALL. GENERAL1 El uso de combinaciones incompatibles hará que la acción falle y generará un error de tiempo de ejecución.

**outputVariables**  
Obligatorio: no  
Especifique los nombres de las variables del entorno que desee exportar. *Para obtener una referencia sobre las variables de entorno, consulte Variables de CodeBuild entorno en entornos de compilación en la Guía del [usuario](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html). CodeBuild * 

**Archivos**  
Obligatorio: no  
Puede proporcionar los archivos que desee exportar como artefactos de salida para la acción.  
El formato admitido para los archivos es el mismo que para los patrones de CodeBuild archivos. Por ejemplo, introduzca `**/` para todos los archivos. Para obtener más información, consulte la [referencia de especificaciones de compilación CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.artifacts.files) en la *Guía del CodeBuild usuario*.  

![\[La página Editar acción para una nueva canalización con la acción de Comandos\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/commands-edit-screen.png)


**VpcId**  
Obligatorio: no  
El ID de VPC de sus recursos.

**Subredes**  
Obligatorio: no  
Las subredes de VPC. Este campo es necesario cuando los comandos deben conectarse a los recursos de una VPC.

**SecurityGroupIds**  
Obligatorio: no  
Los grupos de seguridad de la VPC. Este campo es necesario cuando los comandos deben conectarse a los recursos de una VPC.

El siguiente es un ejemplo en JSON de la acción donde se muestran los campos de configuración del entorno y el tipo de computación, junto con un ejemplo de variable de entorno.

```
 {
            "name": "Commands1",
            "actionTypeId": {
              "category": "Compute",
              "owner": "AWS",
              "provider": "Commands",
              "version": "1"
            },
            "inputArtifacts": [
              {
                "name": "SourceArtifact"
              }
            ],
            "commands": [
              "ls",
              "echo hello",
              "echo $BEDROCK_TOKEN",
            ],
            "configuration": {
              "EnvironmentType": "LINUX_CONTAINER",
              "ComputeType": "BUILD_GENERAL1_MEDIUM"
            },
            "environmentVariables": [
              {
                "name": "BEDROCK_TOKEN",
                "value": "apiTokens:bedrockToken",
                "type": "SECRETS_MANAGER"
              }
            ],
            "runOrder": 1
          }
```

## Artefactos de entrada
<a name="action-reference-Commands-input"></a>
+ **Número de artefactos:** `1 to 10`

## Artefactos de salida
<a name="action-reference-Commands-output"></a>
+ **Número de artefactos:** `0 to 1` 

## Variables de entorno
<a name="action-reference-Commands-envvars"></a>

**Key**  
La clave de un par de variables de entorno de clave-valor, como `BEDROCK_TOKEN`.

**Valor**  
El valor del par clave-valor, como `apiTokens:bedrockToken`. El valor se puede parametrizar con variables de salida de acciones o variables de canalización.  
Cuando utilice el `SECRETS_MANAGER` tipo, este valor debe ser el nombre de un secreto que ya haya almacenado en AWS Secrets Manager.

**Tipo**  
Especifica el tipo de uso del valor de la variable de entorno. El valor puede ser `PLAINTEXT` o `SECRETS_MANAGER`. Si el valor es `SECRETS_MANAGER`, indique la referencia de Secrets en el valor `EnvironmentVariable`. Si no se especifica, toma el valor predeterminado `PLAINTEXT`.  
Se desaconseja encarecidamente el uso de variables de entorno de *texto simple* para almacenar valores confidenciales, especialmente AWS las credenciales. Al utilizar la CodeBuild consola o AWS CLI, las variables de entorno de *texto sin formato* se muestran en texto sin formato. Para valores confidenciales, se recomienda utilizar el tipo `SECRETS_MANAGER`en su lugar.

**nota**  
Al introducir `name``value`, y `type` para la configuración de las variables de entorno, especialmente si la variable de entorno contiene la sintaxis de la variable de CodePipeline salida, no supere el límite de 1000 caracteres del campo de valor de la configuración. Cuando se supera este límite, se devuelve un error de validación.

Para ver un ejemplo de declaración de acción donde se muestre una variable de entorno, consulte [Parámetros de configuración](#action-reference-Commands-config).

**nota**  
Este tipo `SECRETS_MANAGER` solo se admite para la acción de comandos.
Los secretos a los que se hace referencia en la acción de comandos se redactarán en los registros de compilación de forma similar a. CodeBuild Sin embargo, los usuarios de la canalización que tengan acceso de **edición** en la canalización podrán seguir accediendo a estos valores secretos modificando los comandos.
Para utilizarla SecretsManager, debes añadir los siguientes permisos a tu función de servicio de canalización:  

  ```
  {
              "Effect": "Allow",
              "Action": [
                  "secretsmanager:GetSecretValue"
              ],
              "Resource": [
                  "SECRET_ARN"
              ]
          }
  ```

## Permisos del rol de servicio: acción de Comandos
<a name="edit-role-Commands"></a>

Para admitir la acción de Comandos, agregue lo siguiente a la declaración de la política:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:iam::*:role/Service*",
                "arn:aws:iam::*:role/Service*"
            ]
        }
    ]
}
```

------

## Declaración de acciones (ejemplo)
<a name="action-reference-Commands-example"></a>

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

```
name: Commands_action
actionTypeId:
  category: Compute
  owner: AWS
  provider: Commands
  version: '1'
runOrder: 1
configuration: {}
commands:
- ls
- echo hello
- 'echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}'
outputArtifacts:
- name: BuildArtifact
  files:
  - **/
inputArtifacts:
- name: SourceArtifact
outputVariables:
- AWS_DEFAULT_REGION
region: us-east-1
namespace: compute
```

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

```
{
    "name": "Commands_action",
    "actionTypeId": {
        "category": "Compute",
        "owner": "AWS",
        "provider": "Commands",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {},
    "commands": [
        "ls",
        "echo hello",
        "echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}"
    ],
    "outputArtifacts": [
        {
            "name": "BuildArtifact",
            "files": [
                "**/"
            ]
        }
    ],
    "inputArtifacts": [
        {
            "name": "SourceArtifact"
        }
    ],
    "outputVariables": [
        "AWS_DEFAULT_REGION"
    ],
    "region": "us-east-1",
    "namespace": "compute"
}
```

------

## Véase también
<a name="action-reference-Commands-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [Tutorial: creación de una canalización que ejecute comandos mediante computación (tipo V2)](tutorials-commands.md): este tutorial proporciona un ejemplo de canalización con la acción de Comandos.

# AWS Device Farm referencia de acción de prueba
<a name="action-reference-DeviceFarm"></a>

En tu proceso, puedes configurar una acción de prueba que se utilice AWS Device Farm para ejecutar y probar tu aplicación en los dispositivos. Device Farm utiliza grupos de pruebas de dispositivos y marcos de pruebas para probar aplicaciones en dispositivos específicos. Para obtener información sobre los tipos de marcos de pruebas compatibles con la acción Device Farm, consulte [Trabajar con tipos de pruebas en AWS Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types.html).

**Topics**
+ [

## Tipo de acción
](#action-reference-DeviceFarm-type)
+ [

## Parámetros de configuración
](#action-reference-DeviceFarm-config)
+ [

## Artefactos de entrada
](#action-reference-DeviceFarm-input)
+ [

## Artefactos de salida
](#action-reference-DeviceFarm-output)
+ [

## Permisos de rol de servicio: AWS Device Farm acción
](#edit-role-devicefarm)
+ [

## Declaración de acciones
](#action-reference-DeviceFarm-example)
+ [

## Véase también
](#action-reference-DeviceFarm-links)

## Tipo de acción
<a name="action-reference-DeviceFarm-type"></a>
+ Categoría: `Test`
+ Propietario: `AWS`
+ Proveedor: `DeviceFarm`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-DeviceFarm-config"></a>

**AppType**  
Obligatorio: sí  
El sistema operativo y el tipo de aplicación que está probando. A continuación, se muestra una lista de valores válidos para TestType:  
+ `iOS`
+ `Android`
+ `Web`

**ProjectId**  
Obligatorio: sí  
El ID de proyecto de Device Farm.   
Para encontrar el ID del proyecto, en la consola de Device Farm, elija su proyecto. En el navegador, copie la URL de su nuevo proyecto. La dirección URL contiene el ID del proyecto. El ID del proyecto es el valor que aparece en la URL después de `projects/`. En el siguiente ejemplo, el ID de proceso es `eec4905f-98f8-40aa-9afc-4c1cfexample`.  

```
https://<region-URL>/devicefarm/home?region=us-west-2#/projects/eec4905f-98f8-40aa-9afc-4c1cfexample/runs
```

**App**  
Obligatorio: sí  
El nombre y la ubicación del archivo de la aplicación en el artefacto de entrada. Por ejemplo: `s3-ios-test-1.ipa`

**TestSpec**  
Condicional: sí  
La ubicación del archivo de definición de especificaciones de prueba en el artefacto de entrada. Es necesario para la prueba en modo personalizado.

**DevicePoolArn**  
Obligatorio: sí  
El ARN del grupo de dispositivos de Device Farm.   
Para obtener el conjunto de dispositivos disponible ARNs para el proyecto, incluido el ARN de los principales dispositivos, utilice la AWS CLI para introducir el siguiente comando:   

```
aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
```

**TestType**  
Obligatorio: sí  
Especifica el marco de pruebas compatible para la prueba. A continuación, se muestra una lista de valores válidos para `TestType`:  
+ **APPIUM\$1JAVA\$1JUNIT**
+ **APPIUM\$1JAVA\$1TESTNG**
+ **APPIUM\$1NODE**
+ **APPIUM\$1RUBY**
+ **APPIUM\$1PYTHON**
+ **APPIUM\$1WEB\$1JAVA\$1JUNIT**
+ **APPIUM\$1WEB\$1JAVA\$1TESTNG**
+ **APPIUM\$1WEB\$1NODE**
+ **APPIUM\$1WEB\$1RUBY**
+ **APPIUM\$1WEB\$1PYTHON**
+ **BUILTIN\$1FUZZ**
+ **INSTRUMENTATION**
+ **XCTEST**
+ **XCTEST\$1UI**
La acción de CodePipeline:`WEB_PERFORMANCE_PROFILE`, y `REMOTE_ACCESS_REPLAY` no admite los siguientes tipos `REMOTE_ACCESS_RECORD` de pruebas
Para obtener información sobre los tipos de pruebas de Device Farm, consulte [Trabajar con tipos de pruebas en AWS Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types.html).

**RadioBluetoothEnabled**  
Obligatorio: no  
Un valor booleano que indica si se habilita Bluetooth al comienzo de la prueba.

**RecordAppPerformanceData**  
Obligatorio: no  
Un valor booleano que indica si se deben registrar los datos de rendimiento del dispositivo, como el rendimiento de la CPU, FPS y la memoria, durante la prueba.

**RecordVideo**  
Obligatorio: no  
Valor booleano que indica si se debe grabar vídeo durante la prueba.

**RadioWifiEnabled**  
Obligatorio: no  
Un valor booleano que indica si se habilita Wi-Fi al comienzo de la prueba.

**RadioNfcEnabled**  
Obligatorio: no  
Un valor booleano que indica si se habilita NFC al comienzo de la prueba.

**RadioGpsEnabled**  
Obligatorio: no  
Un valor booleano que indica si se habilita GPS al comienzo de la prueba.

**Test**  
Obligatorio: no  
El nombre y la ruta del archivo de definición de la prueba en la ubicación de origen. La ruta es relativa a la raíz del artefacto de entrada de la prueba.

**FuzzEventCount**  
Obligatorio: no  
El número de eventos de interfaz de usuario para la prueba de difusión que se va a realizar, entre 1 y 10 000.

**FuzzEventThrottle**  
Obligatorio: no  
El número de milisegundos que debe esperar la prueba de difusión antes de realizar el siguiente evento de interfaz de usuario, entre 1 y 1000.

**FuzzRandomizerSeed**  
Obligatorio: no  
Semilla para la prueba de difusión para aleatorizar los eventos de interfaz de usuario. Utilizar el mismo número en las subsiguientes pruebas de difusión genera secuencias de eventos idénticas.

**CustomHostMachineArtifacts**  
Obligatorio: no  
La ubicación de la máquina host en la que se almacenarán los artefactos personalizados.

**CustomDeviceArtifacts**  
Obligatorio: no  
La ubicación en el dispositivo donde se almacenarán los artefactos personalizados.  


**UnmeteredDevicesOnly**  
Obligatorio: no  
Un valor booleano que indica si solo se utilizan los dispositivos no medidos al ejecutar las pruebas en este paso.

**JobTimeoutMinutes**  
Obligatorio: no  
Número de minutos que se ejecutará una prueba por dispositivo antes de que se agote el tiempo de espera.

**Latitud**  
Obligatorio: no  
La latitud del dispositivo expresada en grados del sistema de coordenadas geográficas.

**Longitud**  
Obligatorio: no  
La longitud del dispositivo expresada en grados del sistema de coordenadas geográficas.

## Artefactos de entrada
<a name="action-reference-DeviceFarm-input"></a>
+ **Número de artefactos:** `1`
+ **Descripción**: el conjunto de artefactos que se pondrán a disposición de la acción de prueba. Device Farm busca la aplicación integrada y las definiciones de prueba que se van a utilizar.

## Artefactos de salida
<a name="action-reference-DeviceFarm-output"></a>
+ **Número de artefactos:** `0` 
+ **Descripción:** los artefactos de salida no se aplican a este tipo de acción.

## Permisos de rol de servicio: AWS Device Farm acción
<a name="edit-role-devicefarm"></a>

Cuando CodePipeline se ejecuta la acción, la política de rol de CodePipeline servicio requiere los siguientes permisos, que se limitan adecuadamente al ARN del recurso de canalización para mantener el acceso con los mínimos privilegios. Por ejemplo, agregue lo siguiente a su declaración de política:

```
{
    "Effect": "Allow",
    "Action": [
        "devicefarm:ListProjects",
        "devicefarm:ListDevicePools",
        "devicefarm:GetRun",
        "devicefarm:GetUpload",
        "devicefarm:CreateUpload",
        "devicefarm:ScheduleRun"
    ],
    "Resource": "resource_ARN"
},
```

## Declaración de acciones
<a name="action-reference-DeviceFarm-example"></a>

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

```
Name: Test
Actions:
  - Name: TestDeviceFarm
    ActionTypeId: null
    category: Test
    owner: AWS
    provider: DeviceFarm
    version: '1'
RunOrder: 1
Configuration:
  App: s3-ios-test-1.ipa
  AppType: iOS
  DevicePoolArn: >-
    arn:aws:devicefarm:us-west-2::devicepool:0EXAMPLE-d7d7-48a5-ba5c-b33d66efa1f5
  ProjectId: eec4905f-98f8-40aa-9afc-4c1cfEXAMPLE
  TestType: APPIUM_PYTHON
  TestSpec: example-spec.yml
OutputArtifacts: []
InputArtifacts:
  - Name: SourceArtifact
Region: us-west-2
```

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

```
{
    "Name": "Test",
    "Actions": [
        {
            "Name": "TestDeviceFarm",
            "ActionTypeId": null,
            "category": "Test",
            "owner": "AWS",
            "provider": "DeviceFarm",
            "version": "1"
        }
    ],
    "RunOrder": 1,
    "Configuration": {
        "App": "s3-ios-test-1.ipa",
        "AppType": "iOS",
        "DevicePoolArn": "arn:aws:devicefarm:us-west-2::devicepool:0EXAMPLE-d7d7-48a5-ba5c-b33d66efa1f5",
        "ProjectId": "eec4905f-98f8-40aa-9afc-4c1cfEXAMPLE",
        "TestType": "APPIUM_PYTHON",
        "TestSpec": "example-spec.yml"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "SourceArtifact"
        }
    ],
    "Region": "us-west-2"
},
```

------

## Véase también
<a name="action-reference-DeviceFarm-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [Trabajar con tipos de pruebas en Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types.html): en este capítulo de referencia de la *Guía para desarrolladores de Device Farm* se proporciona más información sobre los marcos de pruebas de aplicaciones web, iOS y Android compatibles con Device Farm.
+ [Acciones en Device Farm](https://docs.aws.amazon.com/devicefarm/latest/APIReference/Welcome.html): las llamadas a la API y los parámetros de la guía *Device Farm API Reference* pueden ayudarle a trabajar con proyectos de Device Farm.
+ [Tutorial: Crea una canalización que compile y pruebe tu aplicación para Android con AWS Device Farm](tutorials-codebuild-devicefarm.md)— Este tutorial proporciona un ejemplo de archivo de especificaciones de compilación y una aplicación de ejemplo para crear una canalización con una GitHub fuente que compila y prueba una aplicación de Android con CodeBuild Device Farm.
+ [Tutorial: Crea una canalización que pruebe tu aplicación para iOS con AWS Device Farm](tutorials-codebuild-devicefarm-S3.md): en este tutorial se proporciona un ejemplo de aplicación para crear una canalización con una fuente de Amazon S3 que pruebe una aplicación iOS creada con Device Farm.

# Referencia de la acción de implementación de Elastic Beanstalk
<a name="action-reference-Beanstalk"></a>

Elastic Beanstalk es una AWS plataforma interna que se utiliza para implementar y escalar aplicaciones web. Se utiliza una acción de Elastic Beanstalk para implementar el código de aplicación en el entorno de implementación.

**Topics**
+ [

## Tipo de acción
](#action-reference-Beanstalk-type)
+ [

## Parámetros de configuración
](#action-reference-Beanstalk-config)
+ [

## Artefactos de entrada
](#action-reference-Beanstalk-input)
+ [

## Artefactos de salida
](#action-reference-Beanstalk-output)
+ [

## Permisos del rol de servicio: acción de implementación `ElasticBeanstalk`
](#edit-role-beanstalk)
+ [

## Declaración de acciones
](#action-reference-Beanstalk-example)
+ [

## Véase también
](#action-reference-Beanstalk-links)

## Tipo de acción
<a name="action-reference-Beanstalk-type"></a>
+ Categoría: `Deploy`
+ Propietario: `AWS`
+ Proveedor: `ElasticBeanstalk`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-Beanstalk-config"></a>

**ApplicationName**  
Obligatorio: sí  
Es el nombre de la aplicación que creó en Elastic Beanstalk. 

**EnvironmentName**  
Obligatorio: sí  
Es el nombre del entorno que creó en Elastic Beanstalk. Un entorno es un conjunto de AWS recursos que ejecutan una versión de una aplicación. Cada entorno ejecuta una versión de la aplicación al mismo tiempo; sin embargo, puede haber varios entornos que ejecuten simultáneamente la misma versión de la aplicación o versiones de la aplicación diferentes.

## Artefactos de entrada
<a name="action-reference-Beanstalk-input"></a>
+ **Número de artefactos:** `1`
+ **Descripción:** son los artefactos de entrada para la acción.

## Artefactos de salida
<a name="action-reference-Beanstalk-output"></a>
+ **Número de artefactos:** `0` 
+ **Descripción:** los artefactos de salida no se aplican a este tipo de acción.

## Permisos del rol de servicio: acción de implementación `ElasticBeanstalk`
<a name="edit-role-beanstalk"></a>

A continuación se indican los permisos mínimos necesarios en para crear canalizaciones con una acción de implementación de `ElasticBeanstalk`.

```
{
    "Effect": "Allow",
    "Action": [
        "elasticbeanstalk:*",
        "ec2:*",
        "elasticloadbalancing:*",
        "autoscaling:*",
        "cloudwatch:*",
        "s3:*",
        "sns:*",
        "cloudformation:*",
        "rds:*",
        "sqs:*",
        "ecs:*"
    ],
    "Resource": "resource_ARN"
},
```

**nota**  
Debe sustituir los caracteres comodín de la política de recursos por los recursos de la cuenta a la que desee limitar el acceso. Para obtener más información acerca de la creación de un política que concede acceso con privilegios mínimos, consulte [https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).

## Declaración de acciones
<a name="action-reference-Beanstalk-example"></a>

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

```
Name: Deploy
Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: ElasticBeanstalk
      Version: '1'
    RunOrder: 1
    Configuration:
      ApplicationName: my-application
      EnvironmentName: my-environment
    OutputArtifacts: []
    InputArtifacts:
      - Name: SourceArtifact
    Region: us-west-2
    Namespace: DeployVariables
```

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

```
{
    "Name": "Deploy",
    "Actions": [
        {
            "Name": "Deploy",
            "ActionTypeId": {
                "Category": "Deploy",
                "Owner": "AWS",
                "Provider": "ElasticBeanstalk",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "ApplicationName": "my-application",
                "EnvironmentName": "my-environment"
            },
            "OutputArtifacts": [],
            "InputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "Region": "us-west-2",
            "Namespace": "DeployVariables"
        }
    ]
},
```

------

## Véase también
<a name="action-reference-Beanstalk-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [Implementación de una aplicación Flask en Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-flask.html): en este tutorial, se explica la creación de los recursos de aplicación y entorno en Elastic Beanstalk mediante una aplicación Flask de ejemplo. A continuación, puede crear su canalización con una acción de implementación de Elastic Beanstalk que implemente la aplicación desde el repositorio de origen en el entorno de Elastic Beanstalk.

# Referencia de la acción de invocación de `InspectorScan` de Amazon Inspector
<a name="action-reference-InspectorScan"></a>

Amazon Inspector es un servicio de administración de vulnerabilidades que detecta automáticamente las cargas de trabajo y las analiza de forma continua en busca de vulnerabilidades de software y exposiciones de red no deseadas. La `InspectorScan` acción CodePipeline automatiza la detección y la corrección de las vulnerabilidades de seguridad en su código fuente abierto. Se trata de una acción de computación administrada con capacidades de análisis de seguridad. Puedes usarlo InspectorScan con el código fuente de la aplicación en un repositorio de terceros, como Bitbucket Cloud, GitHub o con imágenes para aplicaciones contenedoras. Su acción analizará los niveles de vulnerabilidad y las alertas que configure e informará al respecto. 

**importante**  
Esta acción utiliza la CodeBuild computación CodePipeline gestionada para ejecutar comandos en un entorno de compilación. Si ejecuta la acción, se le cobrarán cargos por separado en AWS CodeBuild.

**Topics**
+ [

## ID de tipo de acción
](#action-reference-InspectorScan-type)
+ [

## Parámetros de configuración
](#action-reference-InspectorScan-parameters)
+ [

## Artefactos de entrada
](#action-reference-InspectorScan-input)
+ [

## Artefactos de salida
](#action-reference-InspectorScan-output)
+ [

## Variables de salida
](#w2aac56c62c19)
+ [

## Permisos del rol de servicio: acción `InspectorScan`
](#edit-role-InspectorScan)
+ [

## Declaración de acciones
](#w2aac56c62c23)
+ [

## Véase también
](#action-reference-InspectorScan-links)

## ID de tipo de acción
<a name="action-reference-InspectorScan-type"></a>
+ Categoría: `Invoke`
+ Propietario: `AWS`
+ Proveedor: `InspectorScan`
+ Versión: `1` 

Ejemplo:

```
            {
                "Category": "Invoke",
                "Owner": "AWS",
                "Provider": "InspectorScan",
                "Version": "1"
            },
```

## Parámetros de configuración
<a name="action-reference-InspectorScan-parameters"></a>

**InspectorRunMode**  
(Obligatorio) La cadena que indica el modo de análisis. Los valores válidos son `SourceCodeScan | ECRImageScan`.

**ECRRepositoryNombre**  
El nombre del repositorio de Amazon ECR al que se envió la imagen.

**ImageTag**  
La etiqueta utilizada para la imagen.

Los parámetros de esta acción buscan los niveles de vulnerabilidad que especifique. Los siguientes niveles de umbrales de vulnerabilidad están disponibles:

**CriticalThreshold **  
El número de vulnerabilidades de gravedad crítica encontradas en tu fuente más allá de las cuales no se CodePipeline debería ejecutar la acción.

**HighThreshold **  
El número de vulnerabilidades de alta gravedad encontradas en su fuente más allá de las cuales no CodePipeline debería realizarse la acción.

**MediumThreshold**  
El número de vulnerabilidades de gravedad media que se encuentran en su fuente CodePipeline si no se supera el límite de la acción.

**LowThreshold **  
El número de vulnerabilidades de baja gravedad encontradas en la fuente, más allá de las cuales no CodePipeline debería realizarse la acción. 

![\[\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/inspectorscan-edit.png)


## Artefactos de entrada
<a name="action-reference-InspectorScan-input"></a>
+ **Número de artefactos:** `1`
+ **Descripción:** el código fuente en el que se buscarán vulnerabilidades. Si el análisis es para un repositorio de ECR, este artefacto de entrada no es necesario.

## Artefactos de salida
<a name="action-reference-InspectorScan-output"></a>
+ **Número de artefactos:** `1`
+ **Descripción:** detalles de la vulnerabilidad del origen en forma de archivo de lista de materiales de software (SBOM).

## Variables de salida
<a name="w2aac56c62c19"></a>

Cuando se configura, esta acción produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Esta acción produce variables que se pueden ver como variables de salida, incluso si la acción no tiene un espacio de nombres. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores.

Para obtener más información, consulte [Referencia de variables](reference-variables.md).

**HighestScannedSeverity **  
El resultado de mayor gravedad del análisis. Los valores válidos son `medium | high | critical`.

## Permisos del rol de servicio: acción `InspectorScan`
<a name="edit-role-InspectorScan"></a>

Para la compatibilidad con la acción `InspectorScan`, agregue lo siguiente a su declaración de política:

```
{
        "Effect": "Allow",
        "Action": "inspector-scan:ScanSbom",
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "ecr:GetDownloadUrlForLayer",
            "ecr:BatchGetImage",
            "ecr:BatchCheckLayerAvailability"
        ],
        "Resource": "resource_ARN"
    },
```

Además, si aún no los has añadido para la acción Comandos, añade los siguientes permisos a tu rol de servicio para poder ver CloudWatch los registros.

```
{
    "Effect": "Allow",
    "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream", 
        "logs:PutLogEvents"
    ],
    "Resource": "resource_ARN"
},
```

**nota**  
Reduzca los permisos al nivel de recursos de la canalización a través de los permisos basados en recursos de la declaración de la política del rol de servicio.

## Declaración de acciones
<a name="w2aac56c62c23"></a>

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

```
name: Scan
actionTypeId:
  category: Invoke
  owner: AWS
  provider: InspectorScan
  version: '1'
runOrder: 1
configuration:
  InspectorRunMode: SourceCodeScan
outputArtifacts:
- name: output
inputArtifacts:
- name: SourceArtifact
region: us-east-1
```

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

```
{
                        "name": "Scan",
                        "actionTypeId": {
                            "category": "Invoke",
                            "owner": "AWS",
                            "provider": "InspectorScan",
                            "version": "1"
                        },
                        "runOrder": 1,
                        "configuration": {
                            "InspectorRunMode": "SourceCodeScan"
                        },
                        "outputArtifacts": [
                            {
                                "name": "output"
                            }
                        ],
                        "inputArtifacts": [
                            {
                                "name": "SourceArtifact"
                            }
                        ],
                        "region": "us-east-1"
                    },
```

------

## Véase también
<a name="action-reference-InspectorScan-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ Para obtener más información acerca de Amazon Inspector, consulte la Guía del usuario de [Amazon Inspector](https://aws.amazon.com/inspector/).

# AWS Lambda invocar referencia de acción
<a name="action-reference-Lambda"></a>

Le permite ejecutar una función de Lambda como una acción en la canalización. Al utilizar el objeto de evento que es una entrada para esta función, la función tiene acceso a la configuración de la acción, las ubicaciones de los artefactos de entrada, las ubicaciones de los artefactos de salida y otra información necesaria para obtener acceso a los artefactos. Para ver un evento de ejemplo que se ha trasladado a una función de invocación de Lambda, consulte [Ejemplo de evento JSON](#action-reference-Lambda-event). Como parte de la implementación de la función Lambda, debe haber una llamada a `[PutJobSuccessResult API](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobSuccessResult.html)` o `[PutJobFailureResult API](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobFailureResult.html)`. De lo contrario, la ejecución de esta acción se bloquea hasta que se agote el tiempo de espera de dicha acción. Si especifica artefactos de salida para la acción, estos deben cargarse en el bucket de S3 como parte de la implementación de la función.

**importante**  
No registre el evento JSON que se CodePipeline envía a Lambda, ya que esto puede provocar que las credenciales de usuario se registren en CloudWatch los registros. El CodePipeline rol usa un evento JSON para pasar credenciales temporales a Lambda en el `artifactCredentials` campo. Para ver un ejemplo de evento, consulte [Ejemplo de evento JSON](actions-invoke-lambda-function.md#actions-invoke-lambda-function-json-event-example).

## Tipo de acción
<a name="action-reference-Lambda-type"></a>
+ Categoría: `Invoke`
+ Propietario: `AWS`
+ Proveedor: `Lambda`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-Lambda-config"></a>

**FunctionName**  
Obligatorio: sí  
`FunctionName` es el nombre de la función creada en Lambda.

**UserParameters**  
Obligatorio: no  
Una cadena que la función de Lambda puede procesar como entrada.

## Artefactos de entrada
<a name="action-reference-Lambda-input"></a>
+ **Número de artefactos:** `0 to 5`
+ **Descripción**: el conjunto de artefactos que se pondrán a disposición de la función de Lambda.

## Artefactos de salida
<a name="action-reference-Lambda-output"></a>
+ **Número de artefactos:** `0 to 5` 
+ **Descripción**: el conjunto de artefactos que la función de Lambda produce como salida.

## Variables de salida
<a name="action-reference-Lambda-variables"></a>

[Esta acción generará como variables todos los pares clave-valor que se incluyen en la `outputVariables` sección de la PutJobSuccessResult solicitud de API.](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobSuccessResult.html)

Para obtener más información sobre las variables incluidas en CodePipeline, consulte. [Referencia de variables](reference-variables.md)

## Ejemplo de configuración de una acción
<a name="action-reference-Lambda-example"></a>

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

```
Name: Lambda
Actions:
  - Name: Lambda
    ActionTypeId:
      Category: Invoke
      Owner: AWS
      Provider: Lambda
      Version: '1'
    RunOrder: 1
    Configuration:
      FunctionName: myLambdaFunction
      UserParameters: 'http://192.0.2.4'
    OutputArtifacts: []
    InputArtifacts: []
    Region: us-west-2
```

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

```
{
    "Name": "Lambda",
    "Actions": [
        {
            "Name": "Lambda",
            "ActionTypeId": {
                "Category": "Invoke",
                "Owner": "AWS",
                "Provider": "Lambda",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "FunctionName": "myLambdaFunction",
                "UserParameters": "http://192.0.2.4"
            },
            "OutputArtifacts": [],
            "InputArtifacts": [],
            "Region": "us-west-2"
        }
    ]
},
```

------

## Ejemplo de evento JSON
<a name="action-reference-Lambda-event"></a>

La acción de Lambda envía un evento JSON que contiene el ID de trabajo, la configuración de la acción de canalización, las ubicaciones de artefactos de entrada y salida y cualquier información de cifrado de los artefactos. El proceso de trabajo obtiene acceso a estos detalles para completar la acción de Lambda. Para obtener más información, consulte [Detalles del trabajo](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_JobDetails.html). El siguiente es un evento de ejemplo.

```
{
    "CodePipeline.job": {
        "id": "11111111-abcd-1111-abcd-111111abcdef",
        "accountId": "111111111111",
        "data": {
            "actionConfiguration": {
                "configuration": {
                    "FunctionName": "MyLambdaFunction",
                    "UserParameters": "input_parameter"
                }
            },
            "inputArtifacts": [
                {
                    "location": {
                        "s3Location": {
                            "bucketName": "bucket_name",
                            "objectKey": "filename"
                        },
                        "type": "S3"
                    },
                    "revision": null,
                    "name": "ArtifactName"
                }
            ],
            "outputArtifacts": [],
            "artifactCredentials": {
                "secretAccessKey": "secret_key",
                "sessionToken": "session_token",
                "accessKeyId": "access_key_ID"
            },
            "continuationToken": "token_ID",
            "encryptionKey": { 
              "id": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
              "type": "KMS"
            }
        }
    }
}
```

El evento JSON proporciona los siguientes detalles del trabajo para la acción de Lambda en: CodePipeline
+ `id`: el ID exclusivo generado por el sistema del trabajo.
+ `accountId`: el ID de AWS cuenta asociado al trabajo.
+ `data`: otra información necesaria para que un proceso de trabajo complete el trabajo. 
  + `actionConfiguration`: los parámetros de acción de la acción de Lambda. Para ver definiciones, consulte [Parámetros de configuración](#action-reference-Lambda-config).
  + `inputArtifacts`: el artefacto suministrado a la acción.
    + `location`: la ubicación de almacenamiento de artefactos.
      + `s3Location`: la información de ubicación del artefacto de entrada para la acción.
        + `bucketName`: el nombre del almacén de artefactos de canalización de la acción (por ejemplo, un bucket de Amazon S3 denominado codepipeline-us-east -2-1234567890).
        + `objectKey`: el nombre de la aplicación (por ejemplo, `CodePipelineDemoApplication.zip`).
      + `type`: el tipo de artefacto en la ubicación. Actualmente, `S3` es el único tipo de artefacto válido.
    + `revision`: el ID de revisión del artefacto. Según el tipo de objeto, puede ser un ID de confirmación (GitHub) o un ID de revisión (Amazon Simple Storage Service). Para obtener más información, consulte [ArtifactRevision](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ArtifactRevision.html).
    + `name`: el nombre del artefacto en el que se va a trabajar, como, por ejemplo, `MyApp`.
  + `outputArtifacts`: la salida de la acción.
    + `location`: la ubicación de almacenamiento de artefactos.
      + `s3Location`: la información de ubicación del artefacto de salida para la acción.
        + `bucketName`: el nombre del almacén de artefactos de canalización de la acción (por ejemplo, un bucket de Amazon S3 denominado codepipeline-us-east -2-1234567890).
        + `objectKey`: el nombre de la aplicación (por ejemplo, `CodePipelineDemoApplication.zip`).
      + `type`: el tipo de artefacto en la ubicación. Actualmente, `S3` es el único tipo de artefacto válido.
    + `revision`: el ID de revisión del artefacto. Según el tipo de objeto, puede ser un ID de confirmación (GitHub) o un ID de revisión (Amazon Simple Storage Service). Para obtener más información, consulte [ArtifactRevision](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ArtifactRevision.html).
    + `name`: el nombre de la salida de un artefacto, como, por ejemplo, `MyApp`.
  + `artifactCredentials`: las credenciales de AWS sesión utilizadas para acceder a los artefactos de entrada y salida del bucket de Amazon S3. Estas credenciales son credenciales temporales emitidas por AWS Security Token Service (AWS STS).
    + `secretAccessKey`: la clave de acceso secreta de la sesión.
    + `sessionToken`: el token de la sesión.
    + `accessKeyId`: la clave de acceso secreta de la sesión.
  + `continuationToken`: un token generado por la acción. Las acciones futuras utilizan este token para identificar la instancia en ejecución de la acción. Cuando la acción se haya completado, no se debe proporcionar ningún token de continuación.
  + `encryptionKey`: La clave de cifrado utilizada para cifrar los datos del almacén de artefactos, como una AWS KMS clave. Si no se ha definido, se utiliza la clave predeterminada de Amazon Simple Storage Service. 
    + `id`: el ID utilizado para identificar la clave. Si se trata de una clave de AWS KMS , puede utilizar el ID de la clave, el ARN de la clave o el ARN del alias. 
    + `type`: el tipo de clave de cifrado, como, por ejemplo, la clave de AWS KMS .

## Véase también
<a name="action-reference-Lambda-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [AWS CloudFormation Guía del usuario](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/)[: para obtener más información sobre las acciones y CloudFormation artefactos de Lambda para las canalizaciones, consulte [Uso de funciones de anulación de parámetros con CodePipeline canalizaciones](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html), [Automatización del despliegue de](https://docs.aws.amazon.com/lambda/latest/dg/automating-deployment.html) aplicaciones basadas en Lambda y Artefactos.AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-cfn-artifacts.html)
+ [Invoca una AWS Lambda función en una canalización en CodePipeline](actions-invoke-lambda-function.md): este procedimiento proporciona un ejemplo de función de Lambda y muestra cómo utilizar la consola para crear una canalización con una acción de invocación de Lambda.

# Referencia de la acción de implementación de AWS OpsWorks
<a name="action-reference-OpsWorks"></a>

Usas una AWS OpsWorks acción para implementar con el OpsWorks uso de tu canalización.

## Tipo de acción
<a name="action-reference-StepFunctions-type"></a>
+ Categoría: `Deploy`
+ Propietario: `AWS`
+ Proveedor: `OpsWorks`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-OpsWorks-config"></a>

**App**  
Obligatorio: sí  
La OpsWorks pila. Una pila es un contenedor para la infraestructura de aplicaciones.

**Pila**  
Obligatorio: sí  
La OpsWorks aplicación. La aplicación representa el código que desea implementar y ejecutar.

**Capa**  
Obligatorio: no  
La OpsWorks pila. Una capa especifica la configuración y los recursos de un conjunto de instancias.

## Artefactos de entrada
<a name="action-reference-OpsWorks-input"></a>
+ **Número de artefactos:** `1`
+ **Descripción:** es el artefacto de entrada para la acción.

## Artefactos de salida
<a name="action-reference-OpsWorks-output"></a>
+ **Número de artefactos:** `0 to 1` 
+ **Descripción:** los artefactos de salida no se aplican a este tipo de acción.

## Permisos de rol de servicio: AWS OpsWorks acción
<a name="edit-role-opsworks"></a>

Para obtener AWS OpsWorks asistencia, añada lo siguiente a su declaración de política:

```
{
    "Effect": "Allow",
    "Action": [
        "opsworks:CreateDeployment",
        "opsworks:DescribeApps",
        "opsworks:DescribeCommands",
        "opsworks:DescribeDeployments",
        "opsworks:DescribeInstances",
        "opsworks:DescribeStacks",
        "opsworks:UpdateApp",
        "opsworks:UpdateStack"
    ],
    "Resource": "resource_ARN"
},
```

## Ejemplo de configuración de una acción
<a name="action-reference-OpsWorks-example"></a>

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

```
Name: ActionName
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Version: 1
  Provider: OpsWorks
InputArtifacts:
  - Name: myInputArtifact
Configuration:
  Stack: my-stack
  App: my-app
```

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

```
{
    "Name": "ActionName",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Version": 1,
        "Provider": "OpsWorks"
    },
    "InputArtifacts": [
        {
            "Name": "myInputArtifact"
        }
    ],
    "Configuration": {
        "Stack": "my-stack",
        "App": "my-app"
    }
}
```

------

## Véase también
<a name="action-reference-OpsWorks-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [AWS OpsWorks Guía del usuario](https://docs.aws.amazon.com/step-functions/latest/dg/): para obtener información sobre la implementación con AWS OpsWorks, consulte la *Guía del AWS OpsWorks usuario*.

# Referencia de la acción de implementación de AWS Service Catalog
<a name="action-reference-ServiceCatalog"></a>

Usas una AWS Service Catalog acción para implementar plantillas mediante tu canalización. Se trata de plantillas de recursos que ha creado en Service Catalog.

## Tipo de acción
<a name="action-reference-ServiceCatalog-type"></a>
+ Categoría: `Deploy`
+ Propietario: `AWS`
+ Proveedor: `ServiceCatalog`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-ServiceCatalog-config"></a>

**TemplateFilePath**  
Obligatorio: sí  
La ruta del archivo de la plantilla de recursos en la ubicación de origen.

**ProductVersionName**  
Obligatorio: sí  
La versión del producto en Service Catalog.

**ProductType**  
Obligatorio: sí  
El tipo de producto en Service Catalog.

**ProductId**  
Obligatorio: sí  
El ID de producto en Service Catalog.

**ProductVersionDescription**  
Obligatorio: no  
La descripción de la versión del producto en Service Catalog.

## Artefactos de entrada
<a name="action-reference-ServiceCatalog-input"></a>
+ **Número de artefactos:** `1`
+ **Descripción:** es el artefacto de entrada para la acción.

## Artefactos de salida
<a name="action-reference-ServiceCatalog-output"></a>
+ **Número de artefactos:** `0` 
+ **Descripción:** los artefactos de salida no se aplican a este tipo de acción.

## Permisos del rol de servicio: acción de Service Catalog
<a name="edit-role-servicecatalog"></a>

Para admitir Service Catalog, añada lo siguiente a su instrucción de política:

```
{
    "Effect": "Allow",
    "Action": [
        "servicecatalog:ListProvisioningArtifacts",
        "servicecatalog:CreateProvisioningArtifact",
        "servicecatalog:DescribeProvisioningArtifact",
        "servicecatalog:DeleteProvisioningArtifact",
        "servicecatalog:UpdateProduct"
    ],
    "Resource": "resource_ARN"
},
{
    "Effect": "Allow",
    "Action": [
        "cloudformation:ValidateTemplate"
    ],
    "Resource": "resource_ARN"
}
```

## Ejemplos de configuraciones de la acción por tipo de archivo de configuración
<a name="action-reference-ServiceCatalog-example"></a>

En el ejemplo siguiente se muestra una configuración válida para una acción de implementación que utiliza Service Catalog, para una canalización creada en la consola sin un archivo de configuración distinto:

```
"configuration": {
  "TemplateFilePath": "S3_template.json",
  "ProductVersionName": "devops S3 v2",
  "ProductType": "CLOUD_FORMATION_TEMPLATE",
  "ProductVersionDescription": "Product version description",
  "ProductId": "prod-example123456"
}
```

En el ejemplo siguiente se muestra una configuración válida para una acción de implementación que utiliza Service Catalog, para una canalización creada en la consola con un archivo de configuración de `sample_config.json`distinto:

```
"configuration": {
  "ConfigurationFilePath": "sample_config.json",
  "ProductId": "prod-example123456"
}
```

### Ejemplo de configuración de una acción
<a name="action-reference-ServiceCatalog-example-default"></a>

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

```
Name: ActionName
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Version: 1
  Provider: ServiceCatalog
OutputArtifacts:
- Name: myOutputArtifact
Configuration:
  TemplateFilePath: S3_template.json
  ProductVersionName: devops S3 v2
  ProductType: CLOUD_FORMATION_TEMPLATE
  ProductVersionDescription: Product version description
  ProductId: prod-example123456
```

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

```
{
    "Name": "ActionName",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Version": 1,
        "Provider": "ServiceCatalog"
    },
    "OutputArtifacts": [
        {
            "Name": "myOutputArtifact"
        }
    ],
    "Configuration": {
        "TemplateFilePath": "S3_template.json",
        "ProductVersionName": "devops S3 v2",
        "ProductType": "CLOUD_FORMATION_TEMPLATE",
        "ProductVersionDescription": "Product version description",
        "ProductId": "prod-example123456"
    }
}
```

------

## Véase también
<a name="action-reference-ServiceCatalog-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [Guía del usuario de Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/userguide/): para obtener información sobre los recursos y las plantillas de Service Catalog, consulte la *Guía del usuario de Service Catalog*.
+ [Tutorial: Crear una canalización que se implemente en Service Catalog](tutorials-S3-servicecatalog.md). En este tutorial, se muestra cómo crear y configurar una canalización para implementar su plantilla de producto en Service Catalog y enviar los cambios que haya realizado a su repositorio de origen.

# AWS Step Functions invocar referencia de acción
<a name="action-reference-StepFunctions"></a>

Una AWS CodePipeline acción que hace lo siguiente:
+ Inicia la ejecución de una máquina de AWS Step Functions estados desde tu canalización.
+ Proporciona a la máquina de estados un estado inicial a través de una propiedad de la configuración de la acción o de un archivo ubicado en un artefacto de la canalización que se va a pasar como entrada.
+ Si lo desea, puede especificar un prefijo del ID de ejecución para identificar las ejecuciones que se originan en la acción.
+ Admite máquinas de estados [estándar y rápidas](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) .

**nota**  
La acción Step Functions se ejecuta en Lambda y, por lo tanto, tiene cuotas de tamaño de artefacto que son las mismas que las cuotas de tamaño de artefacto de las funciones de Lambda. Para obtener más información, consulte [Cuotas de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html) en la Guía para desarrolladores de Lambda.

## Tipo de acción
<a name="action-reference-StepFunctions-type"></a>
+ Categoría: `Invoke`
+ Propietario: `AWS`
+ Proveedor: `StepFunctions`
+ Versión: `1` 

## Parámetros de configuración
<a name="action-reference-StepFunctions-config"></a>

**StateMachineArn**  
Obligatorio: sí  
Nombre del recurso de Amazon (ARN) de la máquina de estados que se va a invocar.

**ExecutionNamePrefix**  
Obligatorio: no  
De forma predeterminada, el ID de ejecución de la acción se utiliza como nombre de ejecución de la máquina de estados. Si se proporciona un prefijo, se antepone al ID de ejecución de la acción con un guión, y todo ello se utiliza en conjunto como el nombre de ejecución de la máquina de estados.  

```
myPrefix-1624a1d1-3699-43f0-8e1e-6bafd7fde791
```
En las máquinas de estados rápidas, el nombre solo debe contener los caracteres 0-9, A-Z, a-z, - y \$1.

**InputType**  
Obligatorio: no  
+ **Literal** (valor predeterminado): cuando se especifica, el valor del campo **Input** se pasa directamente a la entrada de la máquina de estados.

  Ejemplo de entrada del campo **Input** cuando se selecciona **Literal**:

  ```
  {"action": "test"}
  ```
+ **FilePath**: El contenido de un archivo en el artefacto de entrada especificado en el campo de **entrada** se utiliza como entrada para la ejecución de la máquina de estados. Se requiere un artefacto de entrada cuando **InputType**se establece en. **FilePath**

  Ejemplo de entrada para el campo **de entrada** cuando **FilePath**está seleccionado:

  ```
  assets/input.json
  ```

**Input**  
Obligatorio: condicional  
+ **Literal**: si **InputType**se establece en **Literal** (predeterminado), este campo es opcional. 

  Si se proporciona, el campo **Input** se utiliza directamente como entrada en la ejecución de la máquina de estados. De lo contrario, la máquina de estados se invoca con un objeto JSON vacío, `{}`.
+ **FilePath**: Si **InputType**está establecido en **FilePath**, este campo es obligatorio.

  Si se establece en, también **InputType**se requiere un artefacto de entrada. **FilePath**

  El contenido del archivo del artefacto de entrada especificado se utiliza como entrada para la ejecución de la máquina de estados.

## Artefactos de entrada
<a name="action-reference-StepFunctions-input"></a>
+ **Número de artefactos:** `0 to 1`
+ **Descripción:** Si **InputType**se establece en **FilePath**, este artefacto es obligatorio y se utiliza como fuente de entrada para la ejecución de la máquina de estados.

## Artefactos de salida
<a name="action-reference-StepFunctions-output"></a>
+ **Número de artefactos:** `0 to 1` 
+ **Descripción:**
  + **Máquinas de estados estándar**: si se proporciona el artefacto de salida, se rellena con la salida de la máquina de estados. Esto se obtiene de la `output` propiedad de la respuesta de la [ DescribeExecution API Step Functions](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html) después de que la ejecución de la máquina de estados se complete correctamente.
  + **Máquinas de estados rápidas**: no son compatibles.

## Variables de salida
<a name="action-reference-StepFunctions-variables"></a>

Esta acción produce variables de salida a las que se puede hacer referencia en la configuración de una acción descendente de la canalización.

Para obtener más información, consulte [Referencia de variables](reference-variables.md).

**StateMachineArn**  
ARN de la máquina de estados.

**ExecutionArn**  
ARN de la ejecución de la máquina de estados. Solo máquinas de estados estándar.

## Permisos del rol de servicio: acción `StepFunctions`
<a name="edit-role-stepfunctions"></a>

A continuación se indican los permisos mínimos que se necesitan en `StepFunctions` para crear canalizaciones con una acción de invocación de Step Functions.

```
{
    "Effect": "Allow",
    "Action": [
        "states:DescribeStateMachine",
        "states:DescribeExecution",
        "states:StartExecution"
    ],
    "Resource": "resource_ARN"
},
```

## Ejemplo de configuración de una acción
<a name="action-reference-StepFunctions-example"></a>

### Ejemplo de una entrada predeterminada
<a name="action-reference-StepFunctions-example-default"></a>

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

```
Name: ActionName
ActionTypeId:
  Category: Invoke
  Owner: AWS
  Version: 1
  Provider: StepFunctions
OutputArtifacts:
  - Name: myOutputArtifact
Configuration:
  StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine
  ExecutionNamePrefix: my-prefix
```

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

```
{
    "Name": "ActionName",
    "ActionTypeId": {
        "Category": "Invoke",
        "Owner": "AWS",
        "Version": 1,
        "Provider": "StepFunctions"
    },
    "OutputArtifacts": [
        {
            "Name": "myOutputArtifact"
        }
    ],
    "Configuration": {
        "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine",
        "ExecutionNamePrefix": "my-prefix"
    }
}
```

------

### Ejemplo de una entrada literal
<a name="action-reference-StepFunctions-example-literal"></a>

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

```
Name: ActionName
ActionTypeId:
  Category: Invoke
  Owner: AWS
  Version: 1
  Provider: StepFunctions
OutputArtifacts:
  - Name: myOutputArtifact
Configuration:
  StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine
  ExecutionNamePrefix: my-prefix
  Input: '{"action": "test"}'
```

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

```
{
    "Name": "ActionName",
    "ActionTypeId": {
        "Category": "Invoke",
        "Owner": "AWS",
        "Version": 1,
        "Provider": "StepFunctions"
    },
    "OutputArtifacts": [
        {
            "Name": "myOutputArtifact"
        }
    ],
    "Configuration": {
        "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine",
        "ExecutionNamePrefix": "my-prefix",
        "Input": "{\"action\": \"test\"}"
    }
}
```

------

### Ejemplo de un archivo de entrada
<a name="action-reference-StepFunctions-example-filepath"></a>

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

```
Name: ActionName
InputArtifacts:
  - Name: myInputArtifact
ActionTypeId:
  Category: Invoke
  Owner: AWS
  Version: 1
  Provider: StepFunctions
OutputArtifacts:
  - Name: myOutputArtifact
Configuration:
  StateMachineArn: 'arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine'
  ExecutionNamePrefix: my-prefix
  InputType: FilePath
  Input: assets/input.json
```

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

```
{
    "Name": "ActionName",
    "InputArtifacts": [
        {
            "Name": "myInputArtifact"
        }
    ],
    "ActionTypeId": {
        "Category": "Invoke",
        "Owner": "AWS",
        "Version": 1,
        "Provider": "StepFunctions"
    },
    "OutputArtifacts": [
        {
            "Name": "myOutputArtifact"
        }
    ],
    "Configuration": {
        "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine",
        "ExecutionNamePrefix": "my-prefix",
        "InputType": "FilePath",
        "Input": "assets/input.json"
    }
}
```

------

## Comportamiento
<a name="action-reference-StepFunctions-types"></a>

Durante una versión, CodePipeline ejecuta la máquina de estados configurada utilizando la entrada especificada en la configuración de la acción.

Cuando **InputType**se establece en **Literal**, el contenido del campo de configuración de la acción de **entrada** se utiliza como entrada para la máquina de estados. Cuando no se proporciona una entrada literal, la ejecución de la máquina de estados utiliza un objeto JSON vacío, `{}`. Para obtener más información sobre cómo ejecutar una máquina de estados sin entrada, consulta la [ StartExecutionAPI Step Functions](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html).

Cuando **InputType**se establece en **FilePath**, la acción descomprime el artefacto de entrada y utiliza el contenido del archivo especificado en el campo de configuración de la acción de **entrada** como entrada para la máquina de estados. Si **FilePath**se especifica, el campo **de entrada** es obligatorio y debe existir un artefacto de entrada; de lo contrario, la acción fallará.

Después de una ejecución de inicio correcta, el comportamiento será distinto en los dos tipos de máquina de estados, *estándar* y *rápida*.

### Máquinas de estados estándar
<a name="action-reference-StepFunctions-types-standard"></a>

Si la ejecución de la máquina de estado estándar se inició correctamente, CodePipeline sondea la `DescribeExecution` API hasta que la ejecución alcance un estado terminal. Si la ejecución se completa correctamente, la acción será correcta; de lo contrario, se producirá un error.

Si hay un artefacto de salida configurado, contendrá el valor de retorno de la máquina de estados. Esto se obtiene de la `output` propiedad de la respuesta de la [ DescribeExecution API Step Functions](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html) después de que la ejecución de la máquina de estados se complete correctamente. Tenga en cuenta que existen restricciones en la longitud de salida de esta API.

#### Gestión de errores
<a name="action-reference-StepFunctions-types-standard-handling"></a>
+ Si la acción no puede iniciar la ejecución de una máquina de estados, se producirá un error.
+ Si la ejecución de la máquina de estados no alcanza un estado terminal antes de que la acción de CodePipeline Step Functions alcance su tiempo de espera (7 días por defecto), se produce un error en la ejecución de la acción. A pesar de este error, la máquina de estados podría seguir funcionando. Para obtener más información sobre los tiempos de espera de ejecución de las máquinas de estado en Step Funcions, consulte [Flujos de trabajo estándar en comparación con flujos de trabajo rápidos](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html).
**nota**  
Puede solicitar un aumento de la cuota del tiempo de espera de la acción de invocación en la cuenta que realiza la acción. Sin embargo, el aumento de cuota se aplicará a todas las acciones de ese tipo en todas las regiones de dicha cuenta.
+ Si la ejecución de la máquina de estados alcanza el estado terminal FAILED, TIMED\$1OUT o ABORTED, se producirá un error.

### Máquinas de estados rápidas
<a name="action-reference-StepFunctions-types-express"></a>

Si la ejecución de la máquina de estados rápida se inició correctamente, la ejecución de la acción de invocación también se realizará correctamente.

Consideraciones sobre las acciones configuradas para máquinas de estados rápidas:
+ No puede designar un artefacto de salida.
+ La acción no espera a que se complete la ejecución de la máquina de estados.
+ Una vez iniciada la ejecución de la acción CodePipeline, la ejecución de la acción se realiza correctamente aunque la ejecución de la máquina de estados falle.

#### Gestión de errores
<a name="action-reference-StepFunctions-types-express-handling"></a>
+ Si CodePipeline no se puede iniciar la ejecución de una máquina de estados, se produce un error en la ejecución de la acción. De lo contrario, la acción terminará correctamente de inmediato. La acción se lleva a cabo correctamente CodePipeline independientemente del tiempo que tarde en completarse la ejecución de la máquina de estados o del resultado.

## Véase también
<a name="action-reference-StepFunctions-links"></a>

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
+ [AWS Step Functions Guía para desarrolladores](https://docs.aws.amazon.com/step-functions/latest/dg/): para obtener información sobre las máquinas de estado, las ejecuciones y las entradas de las máquinas de estado, consulte la *Guía para AWS Step Functions desarrolladores*.
+ [Tutorial: Usa una acción de AWS Step Functions invocación en una canalización](tutorials-step-functions.md): este tutorial le permite empezar con un ejemplo de máquina de estados estándar y le muestra cómo usar la consola para actualizar una canalización añadiendo una acción de invocación de Step Functions.