

Amazon ya no CodeCatalyst está abierto a nuevos clientes. Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cómo migrar desde CodeCatalyst](migration.md).

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.

# Creación, pruebas e implementaciones con flujos de trabajo
<a name="workflow"></a>

Tras escribir el código de la aplicación en [CodeCatalystun entorno](devenvironment.md) de desarrollo e insertarlo en el [repositorio de CodeCatalyst código fuente](source.md), estará listo para implementarlo. La forma de hacerlo automáticamente es mediante un flujo de trabajo.

Un *flujo de trabajo* es un procedimiento automatizado que describe cómo compilar, probar e implementar su código como parte de un sistema de integración y entrega continuas (CI/CD). Un flujo de trabajo define una serie de pasos o *acciones* que se realizan durante la ejecución de un flujo de trabajo. Un flujo de trabajo también define los eventos, o *desencadenadores*, que activan el inicio del flujo de trabajo. Para configurar un flujo de trabajo, debes crear un *archivo de definición del flujo* de trabajo mediante el [editor visual o YAML](https://docs.aws.amazon.com//codecatalyst/latest/userguide/flows.html#workflow.editors) de la CodeCatalyst consola.

**sugerencia**  
Para ver rápidamente cómo se pueden utilizar los flujos de trabajo en un proyecto, [cree un proyecto con un esquema](https://docs.aws.amazon.com//codecatalyst/latest/userguide/projects-create.html#projects-create-console-template). Cada esquema implementa un flujo de trabajo funcional que puede revisar, ejecutar y probar.

## Acerca del archivo de definición del flujo de trabajo
<a name="workflow.example"></a>

Un *archivo de definición de flujo de trabajo* es un archivo YAML que describe su flujo de trabajo. De forma predeterminada, el archivo se almacena en una carpeta `~/.codecatalyst/workflows/` en el directorio raíz del [repositorio de código fuente](source-repositories.md). El archivo puede tener la extensión .yml o .yaml, y la extensión debe estar en minúsculas.

A continuación, se muestra un ejemplo de archivo de definición de flujo de trabajo simple. Explicamos cada línea de este ejemplo en la siguiente tabla.

```
Name: MyWorkflow
SchemaVersion: 1.0
RunMode: QUEUED
Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  Build:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:     
      Steps:
        - Run: docker build -t MyApp:latest .
```


| Línea | Description (Descripción) | 
| --- | --- | 
|  <pre>Name: MyWorkflow</pre>  |  Especifica el nombre del flujo de trabajo. Si necesita más información sobre la propiedad `Name`, consulte [Propiedades de nivel superior](workflow-reference.md#workflow.top.level).  | 
|  <pre>SchemaVersion: 1.0</pre>  |  Especifica la versión del esquema de flujo de trabajo. Si necesita más información sobre la propiedad `SchemaVersion`, consulte [Propiedades de nivel superior](workflow-reference.md#workflow.top.level).  | 
|  <pre>RunMode: QUEUED</pre>  |  Indica cómo CodeCatalyst gestiona las ejecuciones múltiples. Para obtener más información sobre el modo de ejecución, consulte [Configuración del comportamiento de puesta en cola de las ejecuciones](workflows-configure-runs.md).  | 
|  <pre>Triggers:</pre>  |  Especifica la lógica que provocará el inicio de la ejecución de un flujo de trabajo. Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).   | 
|  <pre>- Type: PUSH<br />  Branches:<br />    - main</pre>  |  Indica que el flujo de trabajo debe iniciarse siempre que inserte código en la ramificación `main` del repositorio de código fuente predeterminado. Para obtener más información acerca del flujo de trabajo de origen, consulte [Conexión de repositorios de código fuente a flujos de trabajo](workflows-sources.md).  | 
|  <pre>Actions:</pre>  |  Define las tareas que se van a realizar durante la ejecución de un flujo de trabajo. En este ejemplo, la sección `Actions` define una sola acción llamada `Build`. Para obtener más información sobre las acciones, consulte [Configuración de acciones de flujo de trabajo](workflows-actions.md).  | 
|  <pre>Build:</pre>  |  Define las propiedades de la acción `Build`. Para obtener más información sobre la acción de compilación, consulte [Compilación con flujos de trabajo](build-workflow-actions.md).  | 
|  <pre>Identifier: aws/build@v1</pre>  |  Especifica el identificador único y con codificación rígida de la acción de compilación.  | 
|  <pre>Inputs:<br />  Sources:<br />    - WorkflowSource</pre>  |  Indica que la acción de compilación debe buscar en el repositorio de código fuente `WorkflowSource` para encontrar los archivos que necesita para completar su procesamiento. Para obtener más información, consulte [Conexión de repositorios de código fuente a flujos de trabajo](workflows-sources.md).  | 
|  <pre>Configuration:</pre>  |  Contiene las propiedades de configuración específicas de la acción de compilación.  | 
|  <pre>Steps:<br />  - Run: docker build -t MyApp:latest .</pre>  |  Indica a la acción de compilación que debe crear una imagen de Docker llamada `MyApp` y etiquetarla con `latest`.  | 

Para obtener una lista completa de todas las propiedades disponibles en el archivo de definición del flujo de trabajo, consulte la [Definición de flujo de trabajo en YAML](workflow-reference.md).

## Uso de los CodeCatalyst editores visuales y YAML de la consola
<a name="workflow.editors"></a>

Para crear y editar el archivo de definición del flujo de trabajo, puedes usar el editor que prefieras, pero te recomendamos usar el editor visual o el editor YAML de la CodeCatalyst consola. Estos editores ofrecen una útil validación de archivos para garantizar que los nombres de las propiedades, los valores, el anidamiento, el espaciado, el uso de mayúsculas, etc. de YAML sean correctos.

En la siguiente imagen, se muestra un flujo de trabajo en el editor visual. El editor visual le ofrece una interfaz de usuario completa a través de la cual puede crear y configurar el archivo de definición del flujo de trabajo. El editor visual incluye un diagrama de flujo de trabajo (1) que muestra los componentes principales del flujo de trabajo y un área de configuración (2).

![\[Editor visual del flujo de trabajo\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/images/flows/workflow-visual-editor.png)


También puede utilizar el editor de YAML, que se muestra en la siguiente imagen. Use el editor de YAML para pegar bloques de código grandes (de un tutorial, por ejemplo) o para agregar propiedades avanzadas que no se ofrezcan en el editor visual.

![\[Editor de YAML del flujo de trabajo\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/images/flows/workflow-yaml-editor.png)


Puede alternar entre el editor visual y el editor de YAML para ver el efecto que tienen sus configuraciones en el código de YAML subyacente.

## Detección de flujos de trabajo
<a name="workflow.discovering"></a>

Puede ver su flujo de trabajo en la página de resumen de **Flujos de trabajo**, junto con otros flujos de trabajo que haya configurado en el mismo proyecto.

En la siguiente imagen se muestra la página de resumen **Flujos de trabajo**. Incluye dos flujos de trabajo: **BuildToProd**y **UnitTests**. Puede ver que ambos se han ejecutado varias veces. Puede elegir **Ejecuciones recientes** para ver rápidamente el historial de ejecuciones o elegir el nombre del flujo de trabajo para ver el código de YAML del flujo de trabajo y otra información detallada.

![\[Registros de flujos de trabajo\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/images/flows/workflow-list.png)


## Visualización de detalles de ejecución de flujo de trabajo
<a name="workflow.runs"></a>

Para ver los detalles de una ejecución de flujo de trabajo, seleccione la ejecución en la página de resumen **Flujos de trabajo**.

En la siguiente imagen se muestran los detalles de una ejecución de flujo de trabajo llamada **Run-cc11d** que se inició automáticamente en una confirmación en el origen. El diagrama de flujo de trabajo indica que una acción ha fallado (1). Puede navegar hasta los registros (2) para ver los mensajes de registro detallados y solucionar problemas. Para obtener más información acerca de las ejecuciones de flujos de trabajo, consulte [Ejecución de un flujo de trabajo](workflows-working-runs.md).

![\[Registros de flujos de trabajo\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/images/flows/workflow-visual-logs.png)


## Siguientes pasos
<a name="workflow.next"></a>

Para obtener más información sobre los conceptos de los flujos de trabajo, consulte [Conceptos de los flujos de trabajo](workflows-concepts.md).

Para crear su primer flujo de trabajo, consulte [Introducción a los flujos de trabajo](workflows-getting-started.md).

# Conceptos de los flujos de trabajo
<a name="workflows-concepts"></a>

Estos son algunos conceptos y términos que debes conocer a la hora de crear, probar o implementar tu código con flujos de trabajo integrados CodeCatalyst.

## Flujos de trabajo
<a name="workflows-concepts-workflows"></a>

Un *flujo de trabajo* es un procedimiento automatizado que describe cómo compilar, probar e implementar su código como parte de un sistema de integración y entrega continuas (CI/CD). Un flujo de trabajo define una serie de pasos o *acciones* que se realizan durante la ejecución de un flujo de trabajo. Un flujo de trabajo también define los eventos, o *desencadenadores*, que activan el inicio del flujo de trabajo. Para configurar un flujo de trabajo, debes crear un *archivo de definición del flujo* de trabajo mediante el [editor visual o YAML](https://docs.aws.amazon.com//codecatalyst/latest/userguide/flows.html#workflow.editors) de la CodeCatalyst consola.

**sugerencia**  
Para ver rápidamente cómo se pueden utilizar los flujos de trabajo en un proyecto, [cree un proyecto con un esquema](https://docs.aws.amazon.com//codecatalyst/latest/userguide/projects-create.html#projects-create-console-template). Cada esquema implementa un flujo de trabajo funcional que puede revisar, ejecutar y probar.

## Archivos de definición de flujo de trabajo
<a name="workflows-concepts-workflows-def"></a>

Un *archivo de definición de flujo de trabajo* es un archivo YAML que describe su flujo de trabajo. De forma predeterminada, el archivo se almacena en una carpeta `~/.codecatalyst/workflows/` en el directorio raíz del [repositorio de código fuente](source-repositories.md). El archivo puede tener la extensión .yml o .yaml, y la extensión debe estar en minúsculas.

Para obtener más información sobre el archivo de definición del flujo de trabajo, consulte [Definición de flujo de trabajo en YAML](workflow-reference.md).

## Acciones
<a name="workflows-concepts-actions"></a>

Una *acción* es el componente principal de un flujo de trabajo y define una unidad lógica de trabajo, o una tarea, que se realiza durante la ejecución de un flujo de trabajo. Por lo general, un flujo de trabajo incluye varias acciones que se ejecutan de forma secuencial o paralela en función de cómo se hayan configurado.

Para obtener más información sobre las acciones, consulte [Configuración de acciones de flujo de trabajo](workflows-actions.md).

## Grupos de acciones
<a name="workflows-concepts-action-groups"></a>

Un *grupo de acciones* contiene una o más acciones. Agrupar las acciones en grupos de acciones le ayuda a mantener el flujo de trabajo organizado y también le permite configurar las dependencias entre los distintos grupos.

Para obtener más información sobre los grupos de acciones, consulte [Agrupación de acciones en grupos de acciones](workflows-group-actions.md).

## Artefactos
<a name="workflows-concepts-artifacts"></a>

Un *artefacto* es el resultado de una acción de flujo de trabajo y, por lo general, consiste en una carpeta o un archivo de archivos. Los artefactos son importantes porque permiten compartir archivos e información entre acciones.

Para obtener más información acerca de los artefactos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

## Computación
<a name="workflows-concepts-compute"></a>

La *computación* hace referencia al motor informático (la CPU, la memoria y el sistema operativo) que administra y mantiene CodeCatalyst para ejecutar las acciones del flujo de trabajo.

Para obtener más información acerca de la computación, consulte [Configuración de imágenes de computación y tiempo de ejecución](workflows-working-compute.md).

## Entornos
<a name="workflows-concepts-environments"></a>

Un CodeCatalyst *entorno*, que no debe confundirse con un [entorno de desarrollo](https://docs.aws.amazon.com/codecatalyst/latest/userguide/devenvironment.html), define la Amazon VPC de destino Cuenta de AWS y opcional a la que se conecta un CodeCatalyst [flujo de trabajo](workflow.md). Un entorno también define la [función de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que necesita un flujo de trabajo para acceder a los AWS servicios y recursos de la cuenta de destino.

Puede configurar varios entornos y asignarles nombres, como desarrollo, pruebas, almacenamiento provisional y producción. Al realizar un despliegue en estos entornos, la información sobre los despliegues aparece en las pestañas **Actividad de CodeCatalyst despliegue** y **Objetivos de despliegue** del entorno.

Para obtener más información sobre los entornos, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md).

## Puertas
<a name="workflows-concepts-gates"></a>

Una *puerta* es un componente de flujo de trabajo que se puede utilizar para impedir que la ejecución de un flujo de trabajo continúe a menos que se cumplan determinadas condiciones. Un ejemplo de puerta es la puerta de **aprobación**, en la que los usuarios deben enviar una aprobación en la CodeCatalyst consola antes de permitir que continúe la ejecución del flujo de trabajo.

Puede añadir puertas entre las secuencias de acciones de un flujo de trabajo o antes de la primera acción (que se ejecuta inmediatamente después de descargar el **Origen**). También puede agregar puertas después de la última acción, si es necesario.

Para obtener más información acerca de las puertas, consulte [Uso de puertas en una ejecución de flujo de trabajo](workflows-gates.md).

## Informes
<a name="workflows-concepts-test-reports"></a>

Un *informe* contiene detalles sobre las pruebas que se realizan durante la ejecución de un flujo de trabajo. Puede crear informes como un informe de prueba, un informe de cobertura de código, un informe de análisis de la composición del software y un informe de análisis estático. Puede utilizar un informe para solucionar un problema durante un flujo de trabajo. Si tiene muchos informes de varios flujos de trabajo, puede utilizarlos para ver las tendencias y las tasas de errores, lo que le ayudará a optimizar las aplicaciones y las configuraciones de implementación.

Para obtener más información acerca de los informes, consulte [Tipos de informes de calidad](test-workflow-actions.md#test-reporting).

## Ejecuciones
<a name="workflows-concepts-runs"></a>

Una *ejecución* es una iteración única de un flujo de trabajo. Durante una ejecución, CodeCatalyst realiza las acciones definidas en el archivo de configuración del flujo de trabajo y genera los registros, los artefactos y las variables asociados.

Para obtener más información acerca de las ejecuciones, consulte [Ejecución de un flujo de trabajo](workflows-working-runs.md).

## Orígenes
<a name="workflows-concepts-sources"></a>

Un *origen*, denominado también *origen de entrada*, es un repositorio de código fuente al que se conecta una [acción del flujo de trabajo](workflows-actions.md) para obtener los archivos que necesita para llevar a cabo sus operaciones. Por ejemplo, una acción de flujo de trabajo puede conectarse a un repositorio de código fuente para obtener los archivos de código fuente de la aplicación con el fin de compilar una aplicación.

Para obtener más información sobre orígenes, consulte [Conexión de repositorios de código fuente a flujos de trabajo](workflows-sources.md).

## Variables
<a name="workflows-concepts-variables"></a>

 Una *variable* es un par clave-valor que contiene información a la que puedes hacer referencia en tu flujo de trabajo de Amazon CodeCatalyst . La parte del valor de la variable se reemplaza por un valor real cuando se ejecuta el flujo de trabajo.

Para obtener más información acerca de las variables, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

## Desencadenadores de flujo de trabajo
<a name="workflows-concepts-triggers"></a>

Un *desencadenador de flujo de trabajo*, o simplemente un *desencadenador*, permite iniciar la ejecución automática de un flujo de trabajo cuando se producen determinados eventos, como una inserción de código. Es posible que desee configurar los activadores para evitar que los desarrolladores de software tengan que iniciar las ejecuciones del flujo de trabajo manualmente a través de la CodeCatalyst consola.

Puede utilizar tres tipos de desencadenadores:
+ **Inserción**: un desencadenador de inserción de código hace que se inicie la ejecución de un flujo de trabajo cada vez que se ejecute una confirmación.
+ **Solicitud de extracción**: un desencadenador de solicitud de extracción hace que se inicie la ejecución de un flujo de trabajo cada vez que se cree, revise o cierre una solicitud de extracción.
+ **Programación**: un desencadenador de programación hace que la ejecución de un flujo de trabajo comience según los plazos que defina. Plantéese la posibilidad de utilizar un desencadenador de programación para ejecutar compilaciones nocturnas de su software, de modo que la última versión esté lista para que los desarrolladores de software puedan trabajar en ella a la mañana siguiente.

Puede usar los desencadenadores de inserción, solicitud de extracción y programación solos o combinados en el mismo flujo de trabajo.

Los desencadenadores son opcionales; si no se configura ninguno, solo se puede iniciar un flujo de trabajo manualmente.

Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).

# Introducción a los flujos de trabajo
<a name="workflows-getting-started"></a>

En este tutorial, aprenderá a crear y configurar un primer flujo de trabajo.

**sugerencia**  
¿Prefiere empezar con un flujo de trabajo preconfigurado? Consulte [Creación de un proyecto con un esquema](projects-create.md#projects-create-console-template), que incluye instrucciones para configurar un proyecto con un flujo de trabajo funcional, una aplicación de muestra y otros recursos.

**Topics**
+ [

## Requisitos previos
](#get-started-create-workflow-prerequisites)
+ [

## Paso 1: creación y configuración del flujo de trabajo
](#get-started-create-workflow-create)
+ [

## Paso 2: guardado del flujo de trabajo con una confirmación
](#get-started-create-workflow-commit)
+ [

## Paso 3: visualización de los resultados de la ejecución
](#get-started-create-workflow-results)
+ [

## (Opcional) Paso 4: limpieza
](#get-started-create-workflow-cleanup)

## Requisitos previos
<a name="get-started-create-workflow-prerequisites"></a>

Antes de empezar:
+ Necesitas un CodeCatalyst **espacio**. Para obtener más información, consulte [Creación de un espacio](spaces-create.md).
+ En tu CodeCatalyst espacio, necesitas un proyecto vacío llamado:

  ```
  codecatalyst-project
  ```

   Para obtener más información, consulte [Crear un proyecto vacío en Amazon CodeCatalyst](projects-create.md#projects-create-empty).
+ En tu proyecto, necesitas un CodeCatalyst **repositorio** llamado:

  ```
  codecatalyst-source-repository
  ```

  Para obtener más información, consulte [Creación de un repositorio de código fuente](source-repositories-create.md).

**nota**  
Si tiene un proyecto y un repositorio de código fuente existentes, puede usarlos; sin embargo, crear unos nuevos facilita la limpieza que se desarrollará al final de este tutorial.

## Paso 1: creación y configuración del flujo de trabajo
<a name="get-started-create-workflow-create"></a>

En este paso, creará y configurará un flujo de trabajo que compilará y probará automáticamente el código fuente cuando se realicen cambios.

**Creación de un flujo de trabajo**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Seleccione **Crear flujo de trabajo**.

   El archivo de definición del flujo de trabajo aparece en el editor YAML de la CodeCatalyst consola.

**Configuración del flujo de trabajo**

Puede configurar su flujo de trabajo en el editor **visual** o en el editor de **YAML**. Empecemos con el editor de YAML y, a continuación, pasemos al editor visual.

1. Seleccione **\$1 Acciones** para ver una lista de acciones del flujo de trabajo que puede agregar a su flujo de trabajo.

1. En la acción **Compilación**, seleccione **\$1** para añadir el YAML de la acción al archivo de definición del flujo de trabajo. Ahora, el flujo de trabajo tendrá un aspecto similar al siguiente.

   ```
   Name: Workflow_fe47
   SchemaVersion: "1.0"
   
   # Optional - Set automatic triggers.
   Triggers:
     - Type: Push
       Branches:
         - main
   
   # Required - Define action configurations.
   Actions:
     Build_f0:
       Identifier: aws/build@v1
   
       Inputs:
         Sources:
           - WorkflowSource # This specifies that the action requires this workflow as a source
   
       Outputs:
         AutoDiscoverReports:
           Enabled: true
           # Use as prefix for the report files
           ReportNamePrefix: rpt
   
       Configuration:
         Steps:
           - Run: echo "Hello, World!"
           - Run: echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" >> report.xml
           - Run: echo "<testsuite tests=\"1\" name=\"TestAgentJunit\" >" >> report.xml
           - Run: echo "<testcase classname=\"TestAgentJunit\" name=\"Dummy
               Test\"/></testsuite>" >> report.xml
   ```

   El flujo de trabajo copia los archivos del repositorio de `WorkflowSource` origen en la máquina de procesamiento que ejecuta la `Build_f0` acción, los imprime `Hello, World!` en los registros, descubre los informes de las pruebas en la máquina de procesamiento y los envía a la página de **informes** de la CodeCatalyst consola.

1. Seleccione **Visual** para ver el archivo de definición del flujo de trabajo en el editor visual. Los campos del editor visual permiten configurar las propiedades de YAML que se muestran en el editor de YAML.

## Paso 2: guardado del flujo de trabajo con una confirmación
<a name="get-started-create-workflow-commit"></a>

En este paso, guardará los cambios. Dado que los flujos de trabajo se almacenan como archivos `.yaml` en el repositorio, los cambios se guardan con confirmaciones.

**Confirmación de los cambios del flujo de trabajo**

1. (Opcional) Seleccione **Validar** para asegurarse de que el código de YAML del flujo de trabajo sea válido.

1. Elija **Confirmar**.

1. En **Nombre del archivo de flujo de trabajo**, introduzca un nombre para el archivo de configuración del flujo de trabajo, por ejemplo **my-first-workflow**.

1. En **Mensaje de confirmación**, especifique un mensaje para identificar la confirmación, por ejemplo **create my-first-workflow.yaml**.

1. En **Repositorio**, seleccione el repositorio en el que quiera guardar el flujo de trabajo (`codecatalyst-repository`).

1. En **Nombre de la ramificación**, seleccione la ramificación en la que quiera guardar el flujo de trabajo (`main`).

1. Elija **Confirmar**.

El nuevo flujo de trabajo aparece en la lista de flujos de trabajo. Puede que tarde unos momentos en aparecer.

Como los flujos de trabajo se guardan con confirmaciones, y dado que el flujo de trabajo tiene un desencadenador de inserción de código configurado, al guardar el flujo de trabajo se inicia un flujo de trabajo que se ejecuta automáticamente.

## Paso 3: visualización de los resultados de la ejecución
<a name="get-started-create-workflow-results"></a>

En este paso, navegará hasta la ejecución que se inició desde la confirmación y verá los resultados.

**Visualización de los resultados de ejecución**

1. Seleccione el nombre del flujo de trabajo, por ejemplo, `Workflow_fe47`.

   Un diagrama de flujo de trabajo que muestra la etiqueta del repositorio de origen (**WorkflowSource**) y la acción de compilación (por ejemplo, **build\$1F0**).

1. En el diagrama de ejecución del flujo de trabajo, seleccione la acción de compilación, (por ejemplo, **Build\$1f0**).

1. Revise el contenido de las pestañas **Registros**, **Informes**, **Configuración** y **Variables**. Estas pestañas muestran los resultados de la acción de compilación.

   Para obtener más información, consulte [Consulta de los resultados de una acción de compilación](build-view-results.md).

## (Opcional) Paso 4: limpieza
<a name="get-started-create-workflow-cleanup"></a>

En este paso, limpiará los recursos que ha creado en este tutorial.

**Eliminación de recursos**
+ Si ha creado un proyecto nuevo para este tutorial, elimínelo. Para obtener instrucciones, consulte [Eliminación de un proyecto](projects-delete.md). Al eliminar el proyecto, también se eliminan el repositorio de código fuente y el flujo de trabajo. 

# Compilación con flujos de trabajo
<a name="build-workflow-actions"></a>

Con [CodeCatalyst los flujos de trabajo](workflow.md), puede crear aplicaciones y otros recursos. 

**Topics**
+ [

## ¿Cómo compilo una aplicación?
](#build-how-to)
+ [

## Ventajas de la acción de compilación
](#build-benefits)
+ [

## Alternativas a la acción de compilación
](#build-alternatives)
+ [

# Cómo añadir la acción de compilación
](build-add-action.md)
+ [

# Consulta de los resultados de una acción de compilación
](build-view-results.md)
+ [

# Tutorial: carga de artefactos en Amazon S3
](build-deploy.md)
+ [

# Acciones de compilación y prueba de YAML
](build-action-ref.md)

## ¿Cómo compilo una aplicación?
<a name="build-how-to"></a>

Para crear una aplicación o un recurso CodeCatalyst, primero debe crear un flujo de trabajo y, a continuación, especificar una acción de creación en su interior.

Una *acción de compilación* es un componente del flujo de trabajo que compila código fuente, ejecuta pruebas unitarias y produce artefactos listos para su implementación.

Puedes añadir una acción de compilación a tu flujo de trabajo mediante el editor visual o el editor YAML de la CodeCatalyst consola.

Los pasos generales para compilar una aplicación o recurso son los siguientes.

**Compilación de una aplicación (tareas generales)**

1. En CodeCatalyst, **agregas el código fuente** de la aplicación que deseas compilar. Para obtener más información, consulte [Almacenar el código fuente en los repositorios de un proyecto en CodeCatalyst](source-repositories.md).

1. En CodeCatalyst, **creas un flujo de trabajo**. El flujo de trabajo es el lugar en el que puede definir cómo compilar, probar e implementar la aplicación. Para obtener más información, consulte [Introducción a los flujos de trabajo](workflows-getting-started.md).

1. (Opcional) En el flujo de trabajo, **añada un desencadenador** que indique los eventos que harán que el flujo de trabajo se inicie automáticamente. Para obtener más información, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md)

1. En el flujo de trabajo, añada una **acción de compilación** que compile y empaquete el código fuente de la aplicación o el recurso. Si lo desea, también puede hacer que la acción de compilación ejecute pruebas unitarias, genere informes e implemente la aplicación si no desea utilizar una acción de prueba o implementación para estos fines. Para obtener más información sobre las acciones de prueba e implementación, consulte [Cómo añadir la acción de compilación](build-add-action.md).

1. (Opcional) En el flujo de trabajo, **añada una acción de prueba** y una **acción de implementación** para probar e implementar la aplicación o el recurso. Puede elegir entre varias acciones preconfiguradas para implementar la aplicación en diferentes destinos, como Amazon ECS. Para obtener más información, consulte [Pruebas con flujos de trabajoPruebas con flujos de trabajo](test-workflow-actions.md) y [Implementación con flujos de trabajoImplementación con flujos de trabajo](deploy.md).

1. **Inicie el flujo de trabajo** de forma manual o automática mediante un desencadenador. El flujo de trabajo ejecuta las acciones de compilación, prueba e implementación por orden para compilar, probar e implementar la aplicación y los recursos en el destino. Para obtener más información, consulte [Inicio manual de la ejecución de un flujo de trabajo](workflows-manually-start.md).

## Ventajas de la acción de compilación
<a name="build-benefits"></a>

El uso de la acción de compilación en un flujo de trabajo tiene las siguientes ventajas:
+ **Totalmente administrado:** la acción de compilación elimina la necesidad de configurar, aplicar parches, actualizar y administrar sus propios servidores de compilación. 
+ **Bajo demanda:** la acción de compilación se escala bajo demanda para satisfacer sus necesidades de compilación. Solo se paga por el número de minutos de compilación consumidos. Para obtener más información, consulte [Configuración de imágenes de computación y tiempo de ejecución](workflows-working-compute.md).
+ **Listas para usar: CodeCatalyst incluye imágenes de** Docker del entorno de ejecución preempaquetadas que se utilizan para ejecutar todas las acciones del flujo de trabajo, incluidas las acciones de compilación. Estas imágenes vienen preconfiguradas con herramientas útiles para crear aplicaciones, como Node.js y. AWS CLI Puede configurarlo CodeCatalyst para usar una imagen de compilación que suministre desde un registro público o privado. Para obtener más información, consulte [Especificación de imágenes del entorno en tiempo de ejecución](build-images.md).

## Alternativas a la acción de compilación
<a name="build-alternatives"></a>

Si utilizas una acción de compilación para implementar tu aplicación, considera usar una *acción de CodeCatalyst implementación* en su lugar. Las acciones de despliegue realizan behind-the-scenes configuraciones que, de otro modo, tendrías que escribir manualmente si utilizas una acción de compilación. Para obtener más información sobre las acciones de implementación disponibles, consulte [Lista de acciones de implementación](deploy.md#deploy-concepts-action-supported).

También puede utilizarla AWS CodeBuild para crear sus aplicaciones. Para obtener más información, consulte [¿Qué es CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html).

# Cómo añadir la acción de compilación
<a name="build-add-action"></a>

Utilice el siguiente procedimiento para añadir una acción de creación a su CodeCatalyst flujo de trabajo. 

------
#### [ Visual ]

**Adición de una acción de compilación mediante el editor visual**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. Elija **Acciones**.

1. En **Acciones**, elija **Compilar**. 

1. En las pestañas **Entradas** y **Configuración**, complete los campos según sus necesidades. Para obtener una descripción de cada uno de los campos, consulte la [Acciones de compilación y prueba de YAML](build-action-ref.md). Esta referencia proporciona información detallada sobre cada campo (y el valor de la propiedad de YAML correspondiente) tal como aparece en el editor visual y el de YAML.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Adición de una acción de compilación mediante el editor de YAML**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. Elija **Acciones**.

1. En **Acciones**, elija **Compilar**.

1. Modifique las propiedades del código de YAML en función de sus necesidades. Encontrará una explicación de todas las propiedades disponibles en la [Acciones de compilación y prueba de YAML](build-action-ref.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

## Definición de la acción de compilación
<a name="build-add-action-definition"></a>

La acción de compilación se define como un conjunto de propiedades de YAML dentro del archivo de definición del flujo de trabajo. Para obtener más información sobre estas propiedades, consulte [Acciones de compilación y prueba de YAML](build-action-ref.md) en la [Definición de flujo de trabajo en YAML](workflow-reference.md).

# Consulta de los resultados de una acción de compilación
<a name="build-view-results"></a>

Utilice las instrucciones siguientes para ver los resultados de una acción de compilación, incluidos los registros, los informes y las variables generados.

**Consulta de los resultados de una acción de compilación**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. En el diagrama de flujo de trabajo, elija el nombre de la acción de compilación, por ejemplo, **Compilación**.

1. Para ver los registros de la ejecución de la compilación, seleccione **Registros**. Se muestran los registros de las distintas fases de compilación. Puede expandir o contraer los registros según sea necesario.

1. Para ver los informes de prueba generados por la acción de compilación, seleccione **Informes** o, en el panel de navegación, elija **Informes**. Para obtener más información, consulte [Tipos de informes de calidad](test-workflow-actions.md#test-reporting).

1. Para ver la configuración de una acción de compilación, elija **Configuración**. Para obtener más información, consulte [Cómo añadir la acción de compilación](build-add-action.md).

1. Para ver las variables utilizadas por la acción de creación, elija **Variables**. Para obtener más información, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

# Tutorial: carga de artefactos en Amazon S3
<a name="build-deploy"></a>

En este tutorial, aprenderás a cargar artefactos a un bucket de Amazon S3 mediante un CodeCatalyst [flujo](workflows-concepts.md#workflows-concepts-workflows) de trabajo de Amazon que incluye un par de [acciones de compilación](workflows-concepts.md#workflows-concepts-actions). Estas acciones se ejecutan en serie cuando se inicia el flujo de trabajo. La primera acción de compilación genera dos archivos, `Hello.txt` y `Goodbye.txt`, y los empaqueta en un artefacto de compilación. La segunda acción de compilación carga el artefacto en Amazon S3. Configurará el flujo de trabajo para que se ejecute cada vez que envíe una confirmación a su repositorio de código fuente.

**Topics**
+ [

## Requisitos previos
](#build-deploy-tut-prereqs)
+ [

## Paso 1: Crea un AWS rol
](#build-deploy-tut-role)
+ [

## Paso 2: creación de un bucket de Amazon S3
](#build-deploy-tut-artifact)
+ [

## Paso 3: creación de un repositorio de código fuente
](#deploy-tut-lambda-cfn-source)
+ [

## Paso 4: creación de un flujo de trabajo
](#build-deploy-tut-workflow.title)
+ [

## Paso 5: verificación de los resultados
](#build-deploy.s3.verify)
+ [

## Limpieza
](#deploy-tut-lambda-cfn-clean-up)

## Requisitos previos
<a name="build-deploy-tut-prereqs"></a>

Antes de comenzar, necesitará lo siguiente:
+ Necesitas un CodeCatalyst **espacio** con una AWS cuenta conectada. Para obtener más información, consulte [Creación de un espacio](spaces-create.md).
+ En su espacio, necesita un proyecto vacío llamado:

  ```
  codecatalyst-artifact-project
  ```

  Use la opción **Empezar desde cero** para crear este proyecto.

  Para obtener más información, consulte [Crear un proyecto vacío en Amazon CodeCatalyst](projects-create.md#projects-create-empty).
+ En tu proyecto, necesitas un CodeCatalyst **entorno** llamado:

  ```
  codecatalyst-artifact-environment
  ```

  Configure este entorno de la siguiente manera:
  + Elija cualquier tipo, como **Desarrollo**.
  + Conecta tu AWS cuenta a ella.
  + En **Rol de IAM predeterminado**, elija cualquier rol. Especificará un rol diferente más adelante.

  Para obtener más información, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md).

## Paso 1: Crea un AWS rol
<a name="build-deploy-tut-role"></a>

En este paso, crea un rol de AWS IAM que luego asignará a la acción de creación de su flujo de trabajo. Este rol otorga a la acción de CodeCatalyst construcción el permiso para acceder a tu AWS cuenta y escribir en Amazon S3, donde se almacenará tu artefacto. El rol se llama **rol de compilación**.

**nota**  
Si ya tiene un rol de compilación que creó para otro tutorial, también puede utilizarlo en este tutorial. Solo asegúrese de que tenga los permisos y la política de confianza que se muestran en el siguiente procedimiento.

*Para obtener más información sobre las funciones de IAM, consulte las funciones de [IAM en la Guía](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) del AWS AWS Identity and Access Management usuario.*

**Creación de un rol de compilación**

1. Cree una política para el rol del modo siguiente:

   1. Inicie sesión en. AWS

   1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. En el panel de navegación, seleccione **Políticas**.

   1. Elija **Crear política**.

   1. Seleccione la pestaña **JSON**.

   1. Elimine el código existente.

   1. Pegue el siguiente código:

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "VisualEditor0",
                  "Effect": "Allow",
                  "Action": [
                      "s3:PutObject",
                      "s3:ListBucket"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------
**nota**  
La primera vez que utilice el rol para ejecutar acciones de flujo de trabajo, use el comodín en la instrucción de política de recursos y, a continuación, precise el ámbito de la política con el nombre del recurso cuando esté disponible.  

      ```
      "Resource": "*"
      ```

   1. Elija **Siguiente: Etiquetas**.

   1. Elija **Siguiente: Revisar**.

   1. En **Nombre**, escriba:

      ```
      codecatalyst-s3-build-policy
      ```

   1. Elija **Crear política**.

      Ahora ha creado una política de permisos.

1. Cree el rol de compilación de la siguiente manera:

   1. En el panel de navegación, seleccione **Roles** y luego seleccione **Crear rol**.

   1. Elija **Política de confianza personalizada**.

   1. Elimine la política de confianza personalizada existente.

   1. Añada la siguiente política de confianza personalizada:

   1. Elija **Siguiente**.

   1. En **Políticas de permisos**, busque `codecatalyst-s3-build-policy` y active su casilla de verificación.

   1. Elija **Siguiente**.

   1. En **Nombre del rol**, escriba:

      ```
      codecatalyst-s3-build-role
      ```

   1. En **Descripción del rol**, escriba:

      ```
      CodeCatalyst build role
      ```

   1. Elija **Crear rol**.

   Ahora ha creado un rol de compilación con una política de confianza y una política de permisos.

## Paso 2: creación de un bucket de Amazon S3
<a name="build-deploy-tut-artifact"></a>

En este paso, creará un bucket de Amazon S3 en el que se cargarán los artefactos `Hello.txt` y `Goodbye.txt`.

**Creación de un bucket de Amazon S3**

1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel principal, elija **Crear bucket**.

1. En **Nombre del bucket**, escriba:

   ```
   codecatalyst-artifact-bucket
   ```

1. En **AWS Región**, seleccione una región. En este tutorial, se asume que ha elegido **Oeste de EE. UU. (Oregón) us-west-2**. Para obtener más información sobre las regiones admitidas en Amazon S3, consulte [Puntos de conexión y cuotas de Amazon Simple Storage Service](https://docs.aws.amazon.com/general/latest/gr/s3.html) en la *Referencia general de AWS*.

1. En la parte inferior de la página, elija **Crear bucket**.

1. Copie el nombre del bucket que acaba de crear, por ejemplo:

   ```
   codecatalyst-artifact-bucket
   ```

Ahora ha creado un bucket llamado **codecatalyst-artifact-bucket** en la región Oeste de EE. UU. (Oregón) us-west-2.

## Paso 3: creación de un repositorio de código fuente
<a name="deploy-tut-lambda-cfn-source"></a>

En este paso, crearás un repositorio de origen en CodeCatalyst. Este repositorio se utiliza para almacenar el archivo de definición del flujo de trabajo del tutorial. 

Para obtener más información sobre los repositorios de código fuente, consulte [Creación de un repositorio de código fuente](source-repositories-create.md).

**Creación de un repositorio de código fuente**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Vaya a su proyecto, `codecatalyst-artifact-project`.

1. En el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**. 

1. Elija **Agregar repositorio** y, a continuación, elija **Crear repositorio**.

1. En **Nombre del repositorio**, escriba:

   ```
   codecatalyst-artifact-source-repository
   ```

1. Seleccione **Crear**.

Ahora ha creado un repositorio llamado `codecatalyst-artifact-source-repository`.

## Paso 4: creación de un flujo de trabajo
<a name="build-deploy-tut-workflow.title"></a>

En este paso, creará un flujo de trabajo con los siguientes componentes que se ejecutarán en orden:
+ Un desencadenador: este desencadenador inicia la ejecución automática del flujo de trabajo cuando se introduce un cambio en el repositorio de código fuente. Para obtener más información sobre los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).
+ Una acción de compilación llamada `GenerateFiles`: al activarse, la acción `GenerateFiles` crea dos archivos, `Hello.txt` y `Goodbye.txt`, y los empaqueta en un artefacto de salida llamado `codecatalystArtifact`.
+ Otra acción de compilación llamada `Upload`: cuando finaliza la acción `GenerateFiles`, la acción `Upload` ejecuta el comando de la AWS CLI `aws s3 sync` para cargar los archivos de `codecatalystArtifact` y del repositorio de código fuente en el bucket de Amazon S3. AWS CLI Viene preinstalada y preconfigurada en la plataforma CodeCatalyst informática, por lo que no es necesario instalarla ni configurarla.

  Para obtener más información sobre el software preempaquetado en la plataforma CodeCatalyst informática, consulte. [Especificación de imágenes del entorno en tiempo de ejecución](build-images.md) Para obtener más información sobre el AWS CLI`aws s3 sync` comando, consulta [sync](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) en la *Referencia de AWS CLI comandos*.

Para obtener más información sobre la acción de compilación, consulte [Compilación con flujos de trabajo](build-workflow-actions.md).

**Para crear un flujo de trabajo**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Seleccione **Crear flujo de trabajo**.

1. Elimine el código de ejemplo de YAML.

1. Añada el código de YAML siguiente:
**nota**  
En el código de YAML que aparece a continuación, puede omitir la sección `Connections:` si lo desea. Si omite esta sección, debe asegurarse de que el rol especificado en el campo **Rol de IAM predeterminado** del entorno incluya los permisos y las políticas de confianza que se describen en [Paso 1: Crea un AWS rol](#build-deploy-tut-role). Para obtener más información sobre cómo configurar un entorno con un rol de IAM predeterminado, consulte [Creación de un entorno](deploy-environments-creating-environment.md).

   ```
   Name: codecatalyst-artifact-workflow
   SchemaVersion: 1.0
   
   Triggers:
     - Type: Push
       Branches:
         - main   
   Actions:
     GenerateFiles:
       Identifier: aws/build@v1
       Configuration: 
         Steps:
           # Create the output files.
           - Run: echo "Hello, World!" > "Hello.txt"
           - Run: echo "Goodbye!" > "Goodbye.txt"
       Outputs:
         Artifacts:
           - Name: codecatalystArtifact
             Files:
               - "**/*"
     Upload:
       Identifier: aws/build@v1
       DependsOn: 
         - GenerateFiles
       Environment:
         Name: codecatalyst-artifact-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-s3-build-role
       Inputs:
         Artifacts:
           - codecatalystArtifact
       Configuration: 
         Steps:
           # Upload the output artifact to the S3 bucket.
           - Run: aws s3 sync . s3://codecatalyst-artifact-bucket
   ```

   En el código anterior, sustituya:
   + *codecatalyst-artifact-environment*con el nombre del entorno en el que ha creado[Requisitos previos](#build-deploy-tut-prereqs).
   + *codecatalyst-account-connection*con el nombre de la conexión de cuentas en la que creaste[Requisitos previos](#build-deploy-tut-prereqs).
   + *codecatalyst-s3-build-role* por el nombre del rol de compilación que creó en [Paso 1: Crea un AWS rol](#build-deploy-tut-role).
   + *codecatalyst-artifact-bucket*con el nombre de la Amazon S3 en la que creaste[Paso 2: creación de un bucket de Amazon S3](#build-deploy-tut-artifact).

   Para obtener información sobre las propiedades de este archivo, consulte el [Acciones de compilación y prueba de YAML](build-action-ref.md).

1. (Opcional) Seleccione **Validar** para asegurarse de que el código de YAML del flujo de trabajo sea válido antes de confirmarlo.

1. Elija **Confirmar**.

1. En el cuadro de diálogo **Confirmar flujo de trabajo**, escriba lo siguiente:

   1. En **Nombre del archivo de flujo de trabajo**, deje el valor predeterminado, `codecatalyst-artifact-workflow`.

   1. En **Mensaje de confirmación**, escriba:

      ```
      add initial workflow file
      ```

   1. En **Repositorio**, elija **codecatalyst-artifact-source-repository**.

   1. En **Nombre de la ramificación**, elija **principal**.

   1. Elija **Confirmar**.

   Ahora ha creado un flujo de trabajo. La ejecución del flujo de trabajo se inicia automáticamente debido al desencadenador definido en la parte superior del flujo de trabajo. En concreto, cuando confirmó (e incorporó) el archivo `codecatalyst-artifact-workflow.yaml` en su repositorio de código fuente, el desencadenador inició la ejecución del flujo de trabajo.

**Consulta de la ejecución del flujo de trabajo en curso**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el flujo de trabajo que acaba de crear: `codecatalyst-artifact-workflow`.

1. Elija **GenerateFiles**ver el progreso de la primera acción de compilación.

1. Seleccione **Cargar** para ver el progreso de la segunda acción de compilación.

1. Cuando finalice la acción **Cargar**, haga lo siguiente:
   + Si la ejecución del flujo de trabajo se realizó correctamente, vaya al siguiente procedimiento.
   + Si se produjo un error en la ejecución del flujo de trabajo, seleccione **Registros** para solucionar el problema.

## Paso 5: verificación de los resultados
<a name="build-deploy.s3.verify"></a>

Cuando se ejecute el flujo de trabajo, vaya al servicio Amazon S3 y busque en su *codecatalyst-artifact-bucket* bucket. Ahora debería incluir los siguientes archivos y carpetas:

```
.
|— .aws/
|— .git/
|Goodbye.txt
|Hello.txt
|REAME.md
```

Los archivos `Goodbye.txt` y `Hello.txt` se han cargado porque formaban parte del artefacto `codecatalystArtifact`. Los archivos `.aws/`, `.git/` y `README.md` se ha cargado porque estaban en su repositorio de código fuente.

## Limpieza
<a name="deploy-tut-lambda-cfn-clean-up"></a>

Limpie CodeCatalyst y evite AWS que le cobren por estos servicios.

**Para limpiar en CodeCatalyst**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elimine el repositorio de código fuente `codecatalyst-artifact-source-repository`.

1. Elimine el flujo de trabajo `codecatalyst-artifact-workflow`.

**Para limpiar en AWS**

1. Limpie Amazon S3 de la siguiente manera:

   1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   1. Elimine los archivos del bucket `codecatalyst-artifact-bucket`.

   1. Elimine el bucket `codecatalyst-artifact-bucket`.

1. Limpie IAM de la siguiente manera:

   1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Elimine la `codecatalyst-s3-build-policy`.

   1. Elimine la `codecatalyst-s3-build-role`.

# Acciones de compilación y prueba de YAML
<a name="build-action-ref"></a><a name="test-action-ref"></a>

A continuación, se incluye la definición de YAML de las acciones de compilación y prueba. Hay una sola referencia para las dos acciones porque sus propiedades de YAML son muy similares.

Esta definición de acción existe como una sección dentro de un archivo de definición de flujo de trabajo más amplio. Para obtener más información acerca de este archivo, consulte [Definición de flujo de trabajo en YAML](workflow-reference.md).

Elija una propiedad de YAML en el código siguiente para ver su descripción.

**nota**  
La mayoría de las propiedades de YAML que se muestran a continuación tienen elementos de interfaz de usuario correspondientes en el editor visual. Para buscar un elemento de la interfaz de usuario, use **Ctrl\$1F**. El elemento aparecerá en la lista con su propiedad de YAML asociada.

```
# The workflow definition starts here.
# See Propiedades de nivel superior for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.
  action-name:
    Identifier: aws/build@v1 | aws/managed-test@v1
    DependsOn:
      - dependent-action-name-1
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Caching:  
      FileCaching:
        key-name-1:
          Path: file1.txt
          RestoreKeys:
            - restore-key-1
    Inputs:
      Sources:
        - source-name-1
        - source-name-2
      Artifacts:
        - artifact-name
      Variables:
        - Name: variable-name-1
          Value: variable-value-1
        - Name: variable-name-2
          Value: variable-value-2   
    Outputs:
      Artifacts:
        - Name: output-artifact-1
          Files: 
            - build-output/artifact-1.jar
            - "build-output/build*"
        - Name: output-artifact-2
          Files:
            - build-output/artifact-2.1.jar
            - build-output/artifact-2.2.jar
      Variables:
        - variable-name-1
        - variable-name-2
      AutoDiscoverReports:
        Enabled: true | false
        ReportNamePrefix: AutoDiscovered
        IncludePaths:
          - "**/*"
        ExcludePaths:
          - node_modules/cdk/junit.xml
        SuccessCriteria:
          PassRate: percent
          LineCoverage: percent
          BranchCoverage: percent
          Vulnerabilities:
            Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
            Number: whole-number
          StaticAnalysisBug:
            Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
            Number: whole-number
          StaticAnalysisSecurity:
            Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
            Number: whole-number
          StaticAnalysisQuality:
            Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
            Number: whole-number
          StaticAnalysisFinding:
            Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
            Number: whole-number
      Reports:
        report-name-1:
          Format: format
          IncludePaths:
            - "*.xml"
          ExcludePaths:
            - report2.xml
            - report3.xml
          SuccessCriteria:
            PassRate: percent
            LineCoverage: percent
            BranchCoverage: percent
            Vulnerabilities:
              Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
              Number: whole-number
            StaticAnalysisBug:
                Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
                Number: whole-number
            StaticAnalysisSecurity:
                Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
                Number: whole-number
            StaticAnalysisQuality:
                Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
                Number: whole-number
            StaticAnalysisFinding:
                Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
                Number: whole-number
    Configuration:
      Container:
        Registry: registry
        Image: image
      Steps:
        - Run: "step 1"
        - Run: "step 2"
      Packages:
        NpmConfiguration:
          PackageRegistries:
            - PackagesRepository: package-repository
              Scopes:
                - "@scope"
        ExportAuthorizationToken: true | false
```

## action-name
<a name="build.name"></a>

(Obligatorio)

Especifique el nombre de la acción. Todos los nombres de las acciones deben ser únicos dentro del flujo de trabajo. Los nombres de las acciones están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de las acciones.

Interfaz de usuario correspondiente: pestaña Configuración/**Nombre de la acción**

## Identifier
<a name="build.identifier"></a>

(*action-name*/**Identifier**)

Identifica la acción. No cambie esta propiedad a menos que desee cambiar la versión. Para obtener más información, consulte [Especificación de la versión de la acción que se va a utilizar](workflows-action-versions.md).

Use `aws/build@v1` para las acciones de compilación.

Use `aws/managed-test@v1` para las acciones de prueba.

Interfaz de usuario correspondiente: diagrama de flujo de trabajo/nombre de acción/etiqueta *aws/build@v1\$1aws/managed-test@v1*

## DependsOn
<a name="build.depends-on"></a>

(*action-name*/**DependsOn**)

(Opcional)

Especifique la acción, el grupo de acciones o la puerta que debe ejecutarse correctamente para que esta acción se ejecute.

Para obtener más información sobre la funcionalidad “depende de”, consulte [Secuenciación de acciones](workflows-depends-on.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Depende de (opcional)**

## Compute
<a name="build.computename"></a>

(*action-name*/**Compute**)

(Opcional)

El motor de computación utilizado para ejecutar las acciones del flujo de trabajo. Puede especificar el motor de computación en el nivel del flujo de trabajo o en el nivel de acción, pero no en ambos. Cuando se especifica en el nivel de flujo de trabajo, la configuración del motor de computación se aplica a todas las acciones definidas en el flujo de trabajo. En el nivel de flujo de trabajo, también puede ejecutar varias acciones en la misma instancia. Para obtener más información, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md).

Interfaz de usuario correspondiente: *ninguna*

## Type
<a name="build.computetype"></a>

*action-name*/Compute/**(**Tipo)

(Obligatorio si se incluye [Compute](#build.computename))

El tipo de motor de computación. Puede utilizar uno de los siguientes valores:
+ **EC2** (editor visual) o `EC2` (editor de YAML)

  Optimizado para ofrecer flexibilidad durante las ejecuciones de acciones.
+ **Lambda** (editor visual) o `Lambda` (editor de YAML)

  Velocidades de inicio de acciones optimizadas.

Para obtener más información sobre los tipos de computación, consulte [Tipos de computación](workflows-working-compute.md#compute.types).

Interfaz de usuario correspondiente: pestaña Configuración/**Tipo de computación**

## Fleet
<a name="build.computefleet"></a>

(*action-name*/Compute/**Fleet**)

(Opcional)

Especifique la máquina o la flota que ejecutará el flujo de trabajo o las acciones del flujo de trabajo. Con las flotas bajo demanda, cuando se inicia una acción, el flujo de trabajo aprovisiona los recursos que necesita y las máquinas se destruyen cuando finaliza la acción. Ejemplos de flotas bajo demanda: `Linux.x86-64.Large`, `Linux.x86-64.XLarge`. Para obtener más información sobre las flotas bajo demanda, consulte [Propiedades de las flotas bajo demanda](workflows-working-compute.md#compute.on-demand).

Con las flotas aprovisionadas, configura un conjunto de máquinas dedicadas para ejecutar las acciones del flujo de trabajo. Estas máquinas permanecen inactivas, listas para procesar acciones de forma inmediata. Para obtener más información sobre las flotas aprovisionadas, consulte [Propiedades de flotas aprovisionadas](workflows-working-compute.md#compute.provisioned-fleets).

Si `Fleet` se omite, el valor predeterminado es `Linux.x86-64.Large`.

Interfaz de usuario correspondiente: pestaña Configuración/**Flota de computación**

## Timeout
<a name="build.timeout"></a>

(*action-name*/**Timeout**)

(Opcional)

Especifique la cantidad de tiempo en minutos (editor YAML) o en horas y minutos (editor visual) que la acción puede ejecutarse antes de que CodeCatalyst finalice la acción. El mínimo es 5 minutos y el máximo se describe en [Cuotas para flujos de trabajo en CodeCatalyst](workflows-quotas.md). El tiempo de espera predeterminado es el mismo que el tiempo de espera máximo.

Interfaz de usuario correspondiente: pestaña Configuración/**Tiempo de espera (opcional)**

## Environment
<a name="build.environment"></a>

(*action-name*/**Environment**)

(Opcional)

Especifica el CodeCatalyst entorno que se va a usar con la acción. La acción se conecta a Cuenta de AWS la Amazon VPC opcional especificada en el entorno elegido. La acción utiliza la función de IAM predeterminada especificada en el entorno para conectarse a Cuenta de AWS, y utiliza la función de IAM especificada en la [conexión de Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) para conectarse a la Amazon VPC.

**nota**  
Si el rol de IAM predeterminado no tiene los permisos necesarios para la acción, puede configurarla para que utilice un rol diferente. Para obtener más información, consulte [Cambio del rol de IAM de una acción](deploy-environments-switch-role.md).

Para obtener más información sobre los entornos, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md) y [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Name
<a name="build.environment.name"></a>

(*action-name*/Environment/**Name**)

(Opcional)

Especifique el nombre del entorno existente que desea asociar a la acción.

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Connections
<a name="build.environment.connections"></a>

(*action-name*/Environment/**Connections**)

(Opcional)

Especifique la conexión de cuenta que desee asociar a la acción. Puede especificar un máximo de una conexión de cuenta en `Environment`.

Si no especifica una conexión de cuenta:
+ La acción utiliza la Cuenta de AWS conexión y la función de IAM predeterminada especificadas en el entorno de la consola. CodeCatalyst Para obtener información sobre cómo añadir una conexión de cuenta y un rol de IAM predeterminado al entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).
+ El rol de IAM predeterminado debe incluir las políticas y los permisos que requiere la acción. Para determinar cuáles son esas políticas y permisos, consulte la descripción de la propiedad **Role** en la documentación de la definición de YAML de la acción.

Para obtener más información sobre las conexiones de cuenta, consulte [Permitir el acceso a AWS los recursos con conexión Cuentas de AWS](ipa-connect-account.md). Para obtener más información sobre cómo añadir una conexión de cuenta a un entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: ¿tab/Environment/WhatEstá configurada? *my-environment* **/menú de tres puntos/ Cambiar rol**

## Name
<a name="build.environment.connections.name"></a>

(*action-name*/Environment/Connections/**Name**)

(Obligatorio si se incluye [Connections](#build.environment.connections))

Especifique el nombre de la conexión de cuenta.

Interfaz de usuario correspondiente: ¿La configuración está lista? tab/Environment/What *my-environment* **/menú de tres puntos/ Cambiar rol**

## Role
<a name="build.environment.connections.role"></a>

(*action-name*/Environment/Connections/**Role**)

(Obligatorio si se incluye [Connections](#build.environment.connections))

Especifique el nombre del rol de IAM que usa esta acción para acceder a servicios de AWS , como Amazon S3 y Amazon ECR y utilizar estos servicios. Asegúrese de añadir este rol a la conexión de Cuenta de AWS de su espacio. Para añadir un rol de IAM a una conexión de cuenta, consulte [Adición de roles de IAM a las conexiones de cuentas](ipa-connect-account-addroles.md).

[Si no especifica una función de IAM, la acción utilizará la función de IAM predeterminada que aparece en el entorno de la consola.](deploy-environments.md) CodeCatalyst Si usa el rol predeterminado en el entorno, asegúrese de que tenga las siguientes políticas.

**nota**  
Puede usar el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` con esta acción. Para obtener más información acerca de este rol, consulte [Creación del rol **CodeCatalystWorkflowDevelopmentRole-*spaceName*** para su cuenta y su espacio](ipa-iam-roles.md#ipa-iam-roles-service-create). Tenga en cuenta que el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` tiene permisos de acceso total, lo que puede suponer un riesgo para la seguridad. Le recomendamos que utilice este rol solo en tutoriales y situaciones en las que la seguridad no sea un problema. 

**aviso**  
Limite los permisos a los necesarios para las acciones de compilación y prueba. El uso de un rol con permisos más amplios puede suponer un riesgo de seguridad.

Interfaz de usuario correspondiente: ¿tab/Environment/WhatEstá configurada? *my-environment* **/menú de tres puntos/ Cambiar rol**

## Caching
<a name="build.caching"></a>

(*action-name*/**Caching**)

(Opcional)

Una sección en la que puede especificar una memoria caché para guardar los archivos en el disco y restaurarlos desde esa memoria caché en las siguientes ejecuciones del flujo de trabajo.

Para obtener más información acerca del almacenamiento en caché, consulte [Almacenamiento en caché de archivos entre ejecuciones de flujos de trabajo](workflows-caching.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Almacenamiento en caché de archivos (opcional)**

## FileCaching
<a name="build.caching.filecaching"></a>

(*action-name*/Caching/**FileCaching**)

(Opcional)

Una sección que especifica la configuración de una secuencia de cachés.

**Interfaz de usuario correspondiente: almacenamiento en caché de configuración: tab/File opcional/ Agregar caché**

## key-name-1
<a name="build.caching.filecaching.key-name-1"></a>

(*action-name*/Caching/FileCaching/***key-name-1***)

(Opcional)

Especifique el nombre de la propiedad de su caché principal. Los nombres de propiedades de caché deben ser únicos en el flujo de trabajo. Puede haber hasta cinco entradas de cada acción en `FileCaching`.

**Interfaz de usuario correspondiente: almacenamiento en tab/File caché de configuración: opcional/Agregar caché/clave**

## Path
<a name="build.caching.filecaching.key-name-1.path"></a>

(*action-name*/Caching/FileCaching/*key-name-1*/**Path**)

(Opcional)

Especifique la ruta asociada a la memoria caché. 

**Interfaz de usuario correspondiente: almacenamiento en caché de configuración: opcional/Agregar caché/ruta tab/File **

## RestoreKeys
<a name="build.caching.filecaching.key-name-1.restorekeys"></a>

(*action-name*/Caching/FileCaching/*key-name-1*/**RestoreKeys**)

(Opcional)

Especifique la clave de restauración para utilizarla como alternativa cuando no se pueda encontrar la propiedad de caché principal. Los nombres de clave de restauración deben ser únicos en el flujo de trabajo. Puede haber hasta cinco entradas de cada acción en `RestoreKeys`.

**Interfaz de usuario correspondiente: almacenamiento en caché de configuración: opcional, tab/File agregar caché, restaurar claves, opcional**

## Inputs
<a name="build.inputs"></a>

(*action-name*/**Inputs**)

(Opcional)

La sección `Inputs` define los datos que necesita una acción durante la ejecución de un flujo de trabajo.

**nota**  
Se permite un máximo de cuatro entradas (un origen y tres artefactos) en cada acción de compilación o prueba. Las variables no se contabilizan en este total.

Si necesita hacer referencia a archivos que se encuentran en entradas diferentes (por ejemplo, un código fuente y un artefacto), la entrada de código fuente es la entrada principal y el artefacto es la entrada secundaria. Las referencias a los archivos en las entradas secundarias llevan un prefijo especial para distinguirlas de las principales. Para obtener más información, consulte [Ejemplo: Referencia a archivos en varios artefactos](workflows-working-artifacts-ex.md#workflows-working-artifacts-ex-ref-file).

Interfaz de usuario correspondiente: pestaña **Entradas**

## Sources
<a name="build.inputs.sources"></a>

(*action-name*/Inputs/**Sources**)

(Opcional)

Especifique las etiquetas que representan los repositorios de código fuente que necesitará la acción. Actualmente, la única etiqueta admitida es `WorkflowSource`, que representa el repositorio de código fuente en el que se almacena el archivo de definición de flujo de trabajo.

Si omite un origen, debe especificar al menos un artefacto de entrada en `action-name/Inputs/Artifacts`.

Para obtener más información sobre orígenes, consulte [Conexión de repositorios de código fuente a flujos de trabajo](workflows-sources.md).

Interfaz de usuario correspondiente: *ninguna*

## Artifacts - input
<a name="build.inputs.artifacts"></a>

(*action-name*/Inputs/**Artifacts**)

(Opcional)

Especifique los artefactos de acciones anteriores que desee proporcionar como entrada a esta acción. Estos artefactos ya deben estar definidos como artefactos de salida en acciones anteriores.

Si no especifica ningún artefacto de entrada, debe especificar al menos un repositorio de código fuente en `action-name/Inputs/Sources`.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

**nota**  
Si la lista desplegable **Artefactos: opcional** no está disponible (editor visual) o si se producen errores al validar el código de YAML (editor de YAML), es posible que la acción solo admita una entrada. En este caso, intente eliminar la entrada de código fuente.

Interfaz de usuario correspondiente: pestaña Entradas/**Artefactos (opcional)**

## Variables - input
<a name="build.inputs.variables"></a>

(*action-name*/Inputs/**Variables**)

(Opcional)

Especifique una secuencia de name/value pares que defina las variables de entrada que desea poner a disposición de la acción. Los nombres de variables están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de variables.

Para obtener más información sobre las variables, incluidos ejemplos, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Variables (opcional)**

## Outputs
<a name="build.outputs"></a>

(*action-name*/**Outputs**)

(Opcional)

Define los datos que necesita una acción durante la ejecución de un flujo de trabajo.

Interfaz de usuario correspondiente: pestaña **Salidas**

## Artifacts - output
<a name="build.outputs.artifacts"></a>

(*action-name*/Outputs/**Artifacts**)

(Opcional)

Especifique el nombre de un artefacto generado por la acción. Los nombres de los artefactos deben ser únicos en un flujo de trabajo y están limitados a caracteres alfanuméricos (a-z, A-Z, 0-9) y guiones bajos (\$1). No se admiten espacios, guiones (-) ni otros caracteres especiales. No puede utilizar comillas para permitir espacios, guiones y otros caracteres especiales en los nombres de los artefactos de salida.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: pestaña Salidas/**Artefactos**

## Name
<a name="build.outputs.artifacts.name"></a>

(*action-name*/Outputs/Artifacts/**Name**)

(Obligatorio si se incluye [Artifacts - output](#build.outputs.artifacts))

Especifique el nombre de un artefacto generado por la acción. Los nombres de los artefactos deben ser únicos en un flujo de trabajo y están limitados a caracteres alfanuméricos (a-z, A-Z, 0-9) y guiones bajos (\$1). No se admiten espacios, guiones (-) ni otros caracteres especiales. No puede utilizar comillas para permitir espacios, guiones y otros caracteres especiales en los nombres de los artefactos de salida.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: tab/Artifacts/New salida o **crea el nombre del artefacto**

## Files
<a name="build.outputs.artifacts.files"></a>

(*action-name*/Outputs/Artifacts/**Files**)

(Obligatorio si se incluye [Artifacts - output](#build.outputs.artifacts))

Especifique los archivos que se CodeCatalyst incluyen en el artefacto que genera la acción. Estos archivos los genera la acción del flujo de trabajo cuando se ejecuta y también están disponibles en el repositorio de código fuente. Las rutas de los archivos pueden residir en un repositorio de código fuente o en un artefacto de una acción anterior, y son relativas a la raíz del repositorio de código fuente o del artefacto. Puede utilizar patrones glob para especificar las rutas. Ejemplos:
+ Para especificar un único archivo que esté en la raíz de la ubicación de compilación o de la ubicación del repositorio de código fuente, utilice `my-file.jar`.
+ Para especificar un único archivo en un subdirectorio, use `directory/my-file.jar` o `directory/subdirectory/my-file.jar`.
+ Para especificar todos los archivos, utilice `"**/*"`. El patrón glob de `**` indica que debe coincidir con cualquier número de subdirectorios.
+ Para especificar todos los archivos y directorios de un directorio denominado `directory`, utilice `"directory/**/*"`. El patrón glob de `**` indica que debe coincidir con cualquier número de subdirectorios.
+ Para especificar todos los archivos de un directorio denominado `directory`, pero no ninguno de sus subdirectorios, utilice `"directory/*"`. 

**nota**  
Si la ruta del archivo incluye uno o más asteriscos (`*`) u otro carácter especial, escriba la ruta entre comillas dobles (`""`). Para obtener más información sobre los caracteres especiales, consulte [Pautas y convenciones de sintaxis](workflow-reference.md#workflow.terms.syntax.conv).

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

**nota**  
Puede que tenga que añadir un prefijo a la ruta del archivo para indicar en qué artefacto u origen debe encontrarlo. Para obtener más información, consulte [Referencia a los archivos del repositorio de código fuente](workflows-sources-reference-files.md) y [Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

Interfaz de usuario correspondiente: genera la tab/Artifacts/New salida o los **archivos** producidos por la compilación

## Variables - output
<a name="build.outputs.variables"></a>

(*action-name*/Outputs/**Variables**)

(Opcional)

Especifique las variables que desea que exporte la acción para que estén disponibles para su uso en acciones posteriores.

Para obtener más información sobre las variables, incluidos ejemplos, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

Interfaz de usuario correspondiente: pestaña Salidas/Variables/**Agregar variable**

## variable-name-1
<a name="build.outputs.variables.name"></a>

(*action-name*/Outputs/Variables/*variable-name-1*)

(Opcional)

Especifique el nombre de la variable que desee que exporte la acción. Esta variable ya debe estar definida en la sección `Inputs` o `Steps` de la misma acción.

Para obtener más información sobre las variables, incluidos ejemplos, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

**Interfaz de usuario correspondiente: Variable/nombre de salida tab/Variables/Add**

## AutoDiscoverReports
<a name="build.outputs.autodiscover"></a>

(*action-name*/Outputs/**AutoDiscoverReports**)

(Opcional)

Define la configuración de la característica de detección automática.

Al habilitar la detección automática, CodeCatalyst busca todos los archivos `Inputs` transferidos a la acción, así como todos los archivos generados por la propia acción, buscando informes de pruebas, cobertura de código y análisis de composición de software (SCA). Para cada informe que se encuentre, lo CodeCatalyst transforma en un CodeCatalyst informe. Un *CodeCatalyst informe* es un informe que está totalmente integrado en el CodeCatalyst servicio y se puede ver y manipular a través de la CodeCatalyst consola.

**nota**  
De forma predeterminada, la característica de detección automática inspecciona todos los archivos. Puede limitar los archivos que se inspeccionan mediante las propiedades [IncludePaths](#build.reports.includepaths) o [ExcludePaths](#build.reports.excludepaths). 

Interfaz de usuario correspondiente: pestaña Salidas/informes/**Informes de detección automática**

## Enabled
<a name="build.outputs.autodiscover.enabled"></a>

(*action-name*/Outputs/AutoDiscoverReports/**Enabled**)

(Opcional)

Active o desactive la característica de detección automática.

Los valores válidos son `true` o `false`.

Si `Enabled` se omite, el valor predeterminado es `true`.

Interfaz de usuario correspondiente: pestaña Salidas/informes/**Informes de detección automática**

## ReportNamePrefix
<a name="build.outputs.autodiscover.reportnameprefix"></a>

(*action-name*/Outputs/AutoDiscoverReports/**ReportNamePrefix**)

(Obligatorio si [AutoDiscoverReports](#build.outputs.autodiscover) está incluido y activado)

Especifique un prefijo que CodeCatalyst preceda a todos los informes que encuentre para asignar un nombre a los informes asociados. CodeCatalyst Por ejemplo, si especifica un prefijo de `AutoDiscovered` y CodeCatalyst descubre automáticamente dos informes de pruebas `TestSuiteOne.xml` y`TestSuiteTwo.xml`, los CodeCatalyst informes asociados se `AutoDiscoveredTestSuiteOne` denominarán y. `AutoDiscoveredTestSuiteTwo`

Interfaz de usuario correspondiente: pestaña Salidas/Informes/**Nombre de prefijo**

## IncludePaths
<a name="build.reports.includepaths"></a>

(*action-name*/Outputs/AutoDiscoverReports/**IncludePaths**)

O

(*action-name*/Outputs/Reports/*report-name-1*/**IncludePaths**)

(Obligatorio si [AutoDiscoverReports](#build.outputs.autodiscover) está incluido y activado, o si se incluye [Reports](#test.configuration.reports))

Especifique los archivos y las rutas de archivo que se CodeCatalyst incluyen al buscar informes sin procesar. Por ejemplo, si lo especificas`"/test/report/*"`, CodeCatalyst busca en el `/test/report/*` directorio toda la [imagen de compilación](build-images.md) utilizada por la acción. Cuando encuentra ese directorio, CodeCatalyst busca los informes en ese directorio.

**nota**  
Si la ruta del archivo incluye uno o más asteriscos (`*`) u otros caracteres especiales, escriba la ruta entre comillas dobles (`""`). Para obtener más información sobre los caracteres especiales, consulte [Pautas y convenciones de sintaxis](workflow-reference.md#workflow.terms.syntax.conv).

Si se omite esta propiedad, el valor predeterminado es `"**/*"`, lo que significa que la búsqueda incluye todos los archivos de todas las rutas.

**nota**  
En el caso de los informes configurados manualmente, `IncludePaths` debe ser un patrón glob que coincida con un único archivo.

Interfaz de usuario correspondiente:
+ **Rutas de salida o tab/Reports/Auto-discover reports/Include/exclude incluye rutas**
+ **Las salidas tab/Reports/Manually configuran informes/ /include/Exclude rutas/ Incluyen rutas *report-name-1***

## ExcludePaths
<a name="build.reports.excludepaths"></a>

(*action-name*/Outputs/AutoDiscoverReports/**ExcludePaths**)

O

(*action-name*/Outputs/Reports/*report-name-1*/**ExcludePaths**)

(Opcional)

Especifique los archivos y las rutas de archivo que CodeCatalyst se excluyen al buscar informes sin procesar. Por ejemplo, si lo especifica`"/test/my-reports/**/*"`, no CodeCatalyst buscará archivos en el `/test/my-reports/` directorio. Para ignorar todos los archivos de un directorio, utilice el patrón glob `**/*`.

**nota**  
Si la ruta del archivo incluye uno o más asteriscos (`*`) u otros caracteres especiales, escriba la ruta entre comillas dobles (`""`). Para obtener más información sobre los caracteres especiales, consulte [Pautas y convenciones de sintaxis](workflow-reference.md#workflow.terms.syntax.conv).

Interfaz de usuario correspondiente:
+ **Rutas de salida o tab/Reports/Auto-discover reports/Include/exclude excluyen rutas**
+ **Las salidas tab/Reports/Manually configuran informes/ /include/Exclude rutas/ Excluir rutas *report-name-1***

## SuccessCriteria
<a name="build.reports.successcriteria"></a>

(*action-name*/Outputs/AutoDiscoverReports/**SuccessCriteria**)

O

(*action-name*/Outputs/Reports/*report-name-1*/**SuccessCriteria**)

(Opcional)

Especifique los criterios de éxito de los informes de prueba, cobertura del código, análisis de composición de software (SCA) y análisis estático (SA).

Para obtener más información, consulte [Configuración de los criterios de éxito de los informes](test-config-action.md#test.success-criteria).

Interfaz de usuario correspondiente: pestaña Salida/Informes/**Criterios de éxito**

## PassRate
<a name="build.reports.successcriteria.passrate"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**PassRate**)

O

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**PassRate**)

(Opcional)

Especifique el porcentaje de pruebas en un informe de prueba que deben aprobarse para que el informe asociado CodeCatalyst se marque como aprobado. Los valores válidos son números decimales. Por ejemplo: `50`, `60.5`. Los criterios del índice de aprobación se aplican únicamente a los informes de pruebas. Para obtener más información sobre los informes de pruebas, consulte [Informes de pruebas](test-workflow-actions.md#test-reports).

**Interfaz de usuario correspondiente: tab/Reports/Success criterios de salida/tasa de aprobación**

## LineCoverage
<a name="build.reports.successcriteria.linecoverage"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**LineCoverage**)

O

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**LineCoverage**)

(Opcional)

Especifique el porcentaje de líneas de un informe de cobertura de código que deben cubrirse para que el CodeCatalyst informe asociado se marque como aprobado. Los valores válidos son números decimales. Por ejemplo: `50`, `60.5`. Los criterios de cobertura de línea se aplican únicamente a los informes de cobertura de código. Para obtener más información sobre los informes de cobertura de código, consulte [Informes de cobertura de código](test-workflow-actions.md#test-code-coverage-reports).

**Interfaz de usuario correspondiente: tab/Reports/Success criterios de salida/cobertura de línea**

## BranchCoverage
<a name="build.reports.successcriteria.branchcoverage"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**BranchCoverage**)

O

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**BranchCoverage**)

(Opcional)

Especifique el porcentaje de ramas en un informe de cobertura de código que deben cubrirse para que el CodeCatalyst informe asociado se marque como aprobado. Los valores válidos son números decimales. Por ejemplo: `50`, `60.5`. Los criterios de cobertura de ramificaciones se aplican únicamente a los informes de cobertura de código. Para obtener más información sobre los informes de cobertura de código, consulte [Informes de cobertura de código](test-workflow-actions.md#test-code-coverage-reports).

**Interfaz de usuario correspondiente: tab/Reports/Success criterios de salida/cobertura de sucursales**

## Vulnerabilities
<a name="build.reports.successcriteria.vulnerabilities"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**Vulnerabilities**)

O

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**Vulnerabilities**)

(Opcional)

Especifique el número máximo y la gravedad de las vulnerabilidades permitidas en el informe de la SCA para que el CodeCatalyst informe asociado se marque como aprobado. Para especificar las vulnerabilidades, debe especificar lo siguiente:
+ La gravedad mínima de las vulnerabilidades que desea incluir en el recuento. Los valores válidos, desde el más al menos grave, son `CRITICAL`, `HIGH`, `MEDIUM`, `LOW` y `INFORMATIONAL`.

  Por ejemplo, si elige `HIGH`, se contabilizan las vulnerabilidades `HIGH` y `CRITICAL`.
+ El número máximo de vulnerabilidades de la gravedad especificada que desea permitir. Si se supera este número, el CodeCatalyst informe se marca como fallido. Los valores válidos son números enteros.

Los criterios de vulnerabilidad se aplican únicamente a los informes de SCA. Para obtener más información acerca de los informes de SCA, consulte [Informes de análisis de composición de software](test-workflow-actions.md#test-sca-reports).

Para especificar la gravedad mínima, utilice la propiedad `Severity`. Para especificar el número máximo de vulnerabilidades, utilice la propiedad `Number`.

**Interfaz de usuario correspondiente: tab/Reports/Success criterios de salida o vulnerabilidades**

## StaticAnalysisBug
<a name="build.reports.successcriteria.bugs"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**StaticAnalysisBug**)

O

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**StaticAnalysisBug**)

(Opcional)

Especifique el número máximo y la gravedad de los errores permitidos en el informe de la SA para que el CodeCatalyst informe asociado se marque como aprobado. Para especificar errores, debe especificar lo siguiente:
+ La gravedad mínima de los errores que desea incluir en el recuento. Los valores válidos, desde el más al menos grave, son `CRITICAL`, `HIGH`, `MEDIUM`, `LOW` y `INFORMATIONAL`.

  Por ejemplo, si elige `HIGH`, se contabilizan los errores `HIGH` y `CRITICAL`.
+ El número máximo de errores de la gravedad especificada que desea permitir. Si se supera este número, el CodeCatalyst informe se marcará como fallido. Los valores válidos son números enteros.

Los criterios de errores se aplican únicamente a PyLint los informes de ESLint SA. Para obtener más información acerca de los informes de SA, consulte [Informes de análisis estático](test-workflow-actions.md#test-static-analysis-reports).

Para especificar la gravedad mínima, utilice la propiedad `Severity`. Para especificar el número máximo de vulnerabilidades, utilice la propiedad `Number`.

**Interfaz de usuario correspondiente: tab/Reports/Success Criterios de salida o errores**

## StaticAnalysisSecurity
<a name="build.reports.successcriteria.securityvulnerabilities"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**StaticAnalysisSecurity**)

O

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**StaticAnalysisSecurity**)

(Opcional)

Especifique el número máximo y la gravedad de las vulnerabilidades de seguridad permitidas en el informe de la SA para que el CodeCatalyst informe asociado se marque como aprobado. Para especificar las vulnerabilidades de seguridad, debe especificar lo siguiente:
+ La gravedad mínima de las vulnerabilidades de seguridad que desea incluir en el recuento. Los valores válidos, desde el más al menos grave, son `CRITICAL`, `HIGH`, `MEDIUM`, `LOW` y `INFORMATIONAL`.

  Por ejemplo, si elige `HIGH`, se contabilizan las vulnerabilidades de seguridad `HIGH` y `CRITICAL`.
+ El número máximo de vulnerabilidades de seguridad de la gravedad especificada que desea permitir. Si se supera este número, el CodeCatalyst informe se marca como fallido. Los valores válidos son números enteros.

Los criterios de vulnerabilidad de seguridad se aplican únicamente a PyLint los informes de ESLint SA. Para obtener más información acerca de los informes de SA, consulte [Informes de análisis estático](test-workflow-actions.md#test-static-analysis-reports).

Para especificar la gravedad mínima, utilice la propiedad `Severity`. Para especificar el número máximo de vulnerabilidades, utilice la propiedad `Number`.

**Interfaz de usuario correspondiente: tab/Reports/Success criterios de salida o vulnerabilidades de seguridad**

## StaticAnalysisQuality
<a name="build.reports.successcriteria.qualityissues"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**StaticAnalysisQuality**)

O

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**StaticAnalysisQuality**)

(Opcional)

Especifique el número máximo y la gravedad de los problemas de calidad permitidos en el informe de la SA para que el CodeCatalyst informe asociado se marque como aprobado. Para especificar problemas de calidad, debe especificar lo siguiente:
+ La gravedad mínima de los problemas de calidad que desea incluir en el recuento. Los valores válidos, desde el más al menos grave, son `CRITICAL`, `HIGH`, `MEDIUM`, `LOW` y `INFORMATIONAL`.

  Por ejemplo, si elige `HIGH`, se contabilizan los problemas de calidad `HIGH` y `CRITICAL`.
+ El número máximo de problemas de calidad de la gravedad especificada que desea permitir. Si se supera este número, el CodeCatalyst informe se marca como fallido. Los valores válidos son números enteros.

Los criterios de calidad se aplican únicamente a PyLint los informes ESLint SA. Para obtener más información acerca de los informes de SA, consulte [Informes de análisis estático](test-workflow-actions.md#test-static-analysis-reports).

Para especificar la gravedad mínima, utilice la propiedad `Severity`. Para especificar el número máximo de vulnerabilidades, utilice la propiedad `Number`.

**Interfaz de usuario correspondiente: tab/Reports/Success criterios de producción/problemas de calidad**

## StaticAnalysisFinding
<a name="build.reports.successcriteria.findings"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**StaticAnalysisFinding**)

O

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**StaticAnalysisFinding**)

(Opcional)

Especifique el número máximo y la gravedad de las conclusiones permitidas en el informe de la SA para que el CodeCatalyst informe asociado se marque como aprobado. Para especificar los resultados, debe especificar lo siguiente:
+ La gravedad mínima de los resultados que desea incluir en el recuento. Los valores válidos, desde el más al menos grave, son `CRITICAL`, `HIGH`, `MEDIUM`, `LOW` y `INFORMATIONAL`.

  Por ejemplo, si elige `HIGH`, se contabilizan los resultados `HIGH` y `CRITICAL`.
+ El número máximo de resultados de la gravedad especificada que desea permitir. Si se supera este número, el CodeCatalyst informe se marca como fallido. Los valores válidos son números enteros.

Los resultados se aplican únicamente a los informes de SA de SARIF. Para obtener más información acerca de los informes de SA, consulte [Informes de análisis estático](test-workflow-actions.md#test-static-analysis-reports).

Para especificar la gravedad mínima, utilice la propiedad `Severity`. Para especificar el número máximo de vulnerabilidades, utilice la propiedad `Number`.

**Interfaz de usuario correspondiente: tab/Reports/Success criterios de salida y resultados**

## Reports
<a name="test.configuration.reports"></a>

(*action-name*/Outputs/**Reports** )

(Opcional)

Una sección que especifica la configuración de los informes de prueba.

Interfaz de usuario correspondiente: pestaña Salidas/**Informes**

## report-name-1
<a name="test.configuration.reports.report-name-1"></a>

**(nombre-de-informe-1) *action-name* /Outputs/Reports/**

(Obligatorio si se incluye [Reports](#test.configuration.reports))

El nombre que desea asignar al CodeCatalyst informe que se generará a partir de los informes sin procesar.

**Interfaz de usuario correspondiente: los resultados tab/Reports/Manually configuran los informes o el nombre del informe**

## Format
<a name="test.configuration.reports.name.testresults.format"></a>

(*action-name*/Outputs/Reports/*report-name-1*/**Format**)

(Obligatorio si se incluye [Reports](#test.configuration.reports))

Especifique el formato de archivo que va a utilizar para sus informes. Los valores posibles son los siguientes.
+ Para los informes de prueba:
  + Para Cucumber JSON, especifique **Cucumber** (editor visual) o `CUCUMBERJSON` (editor de YAML).
  + Para JUnit XML, especifique **JUnit**(editor visual) o `JUNITXML` (editor YAML).
  + Para NUnit XML, especifique **NUnit**(editor visual) o `NUNITXML` (editor YAML).
  + Para NUnit 3 XML, especifique **NUnit3**(editor visual) o `NUNIT3XML` (editor YAML).
  + Para Visual Studio TRX, especifique **Visual Studio TRX** (editor visual) o `VISUALSTUDIOTRX` (editor de YAML).
  + Para TestNG XML, especifique **TestNG** (editor visual) o `TESTNGXML` (editor de YAML).
+ Para los informes de cobertura de código:
  + Para Clover XML, especifique **Clover** (editor visual) o `CLOVERXML` (editor de YAML).
  + Para Cobertura XML, especifique **Cobertura** (editor visual) o `COBERTURAXML` (editor de YAML).
  + Para JaCoCo XML, especifique **JaCoCo**(editor visual) o `JACOCOXML` (editor YAML).
  + Para el SimpleCov JSON generado por [simplecov, no por simplecov-json](https://github.com/simplecov-ruby/simplecov)[, especifique **Simplecov**](https://github.com/vicentllongo/simplecov-json) (editor visual) o (editor YAML). `SIMPLECOV`
+ Para los informes de análisis de composición de software (SCA):
  + Para SARIF, especifique **SARIF** (editor visual) o `SARIFSCA` (editor de YAML).

****Interfaz de usuario correspondiente: genera informes//Tipo de informe y formato de informe tab/Reports/Manually configure reports/Add/configure *report-name-1*****

## Configuration
<a name="build.configuration"></a>

(*action-name*/**Configuration**)

(Obligatorio) Una sección en la que puede definir las propiedades de configuración de la acción. 

Interfaz de usuario correspondiente: pestaña **Configuración**

## Container
<a name="build.configuration.container"></a>

(*action-name*/Configuration/**Container**)

(Opcional)

Especifique la imagen de Docker, o el *contenedor*, que utilizará la acción para completar su procesamiento. Puede especificar una de las [imágenes activas](build-images.md#build-curated-images) incluidas o puede usar la suya propia. CodeCatalyst Si decide usar su propia imagen, esta puede residir en Amazon ECR, Docker Hub u otro registro. Si no especifica una imagen de Docker, la acción utilizará una de las imágenes activas para su procesamiento. Para obtener más información sobre qué imagen activa se usa de forma predeterminada, consulte [Imágenes activas](build-images.md#build-curated-images).

Para obtener más información sobre cómo especificar su propia imagen de Docker, consulte [Asignación de una imagen de Docker de un entorno en tiempo de ejecución personalizada a una acción](build-images.md#build-images-specify).

Interfaz de usuario correspondiente: **Imagen de Docker del entorno en tiempo de ejecución (opcional)**

## Registry
<a name="build.configuration.container.registry"></a>

(*action-name*/Configuration/Container/**Registry**)

(Obligatorio si se incluye `Container`)

Especifique el registro en el que la imagen está almacenada. Los valores válidos son:
+ `CODECATALYST` (editor de YAML)

  La imagen se guarda en el CodeCatalyst registro.
+ **Docker Hub** (editor visual) o `DockerHub` (editor de YAML)

  La imagen está almacenada en el registro de imágenes de Docker Hub.
+ **Otro registro** (editor visual) o `Other` (editor de YAML)

  La imagen está almacenada en un registro de imágenes personalizado. Se puede utilizar cualquier registro disponible públicamente.
+ **Amazon Elastic Container Registry** (editor visual) o `ECR` (editor de YAML)

  La imagen está almacenada en un repositorio de imágenes de Amazon Elastic Container Registry. Para usar una imagen de un repositorio de Amazon ECR, esta acción necesita acceso a Amazon ECR. Para habilitar este acceso, debe crear un [rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que incluya los siguientes permisos y una política de confianza personalizada. (Si lo desea, puede modificar un rol existente para incluir los permisos y la política).

  El rol de IAM debe incluir los siguientes permisos en su política de rol:
  + `ecr:BatchCheckLayerAvailability`
  + `ecr:BatchGetImage`
  + `ecr:GetAuthorizationToken`
  + `ecr:GetDownloadUrlForLayer`

  El rol de IAM debe incluir la siguiente política de confianza personalizada:

  Para obtener más información sobre cómo crear roles de IAM, consulte [Crear un rol mediante políticas de confianza personalizadas (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) en la *Guía del usuario de IAM*.

  Una vez que haya creado el rol, debe asignarlo a la acción a través de un entorno. Para obtener más información, consulte [Asociación de un entorno a una acción](deploy-environments-add-app-to-environment.md).

Interfaz de usuario correspondiente: **Amazon Elastic Container Registry**, **Docker Hub** y opciones **Otro registro**

## Image
<a name="build.configuration.container.image"></a>

(*action-name*/Configuration/Container/**Image**)

(Obligatorio si se incluye `Container`)

Especifique uno de los siguientes valores:
+ Si utiliza un registro de `CODECATALYST`, establezca la imagen en una de las siguientes [imágenes activas](build-images.md#build-curated-images):
  + `CodeCatalystLinux_x86_64:2024_03`
  + `CodeCatalystLinux_x86_64:2022_11`
  + `CodeCatalystLinux_Arm64:2024_03`
  + `CodeCatalystLinux_Arm64:2022_11`
  + `CodeCatalystLinuxLambda_x86_64:2024_03`
  + `CodeCatalystLinuxLambda_x86_64:2022_11`
  + `CodeCatalystLinuxLambda_Arm64:2024_03`
  + `CodeCatalystLinuxLambda_Arm64:2022_11`
  + `CodeCatalystWindows_x86_64:2022_11`
+ Si utiliza un registro de Docker Hub, establezca la imagen con el nombre de la imagen de Docker Hub y la etiqueta opcional.

  Ejemplo: `postgres:latest`
+ Si utiliza un registro de Amazon ECR, establezca la imagen en el URI del registro de Amazon ECR.

  Ejemplo: `111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo`
+ Si utiliza un registro personalizado, establezca la imagen en el valor esperado por el registro personalizado.

Interfaz de usuario correspondiente: **Imagen de docker del entorno en tiempo de ejecución** (si el registro es `CODECATALYST`), **Imagen de Docker Hub** (si el registro es **Docker Hub**), **URL de imagen de ECR** (si el registro es **Amazon Elastic Container Registry**) y **URL de imagen** (si el registro es **Otro registro**).

## Steps
<a name="build.configuration.steps"></a>

(*action-name*/Configuration/**Steps**)

(Obligatorio) 

Especifique los comandos del intérprete de comandos que desea ejecutar durante la acción para instalar, configurar y ejecutar las herramientas de compilación.

A continuación, se muestra un ejemplo de cómo crear un proyecto de npm:

```
Steps:
  - Run: npm install
  - Run: npm run build
```

A continuación, se muestra un ejemplo de cómo especificar rutas de archivos:

```
Steps:
  - Run: cd $ACTION_BUILD_SOURCE_PATH_WorkflowSource/app  && cat file2.txt
  - Run: cd $ACTION_BUILD_SOURCE_PATH_MyBuildArtifact/build-output/  && cat file.txt
```

Para obtener más información sobre cómo especificar rutas de archivos, consulte [Referencia a los archivos del repositorio de código fuente](workflows-sources-reference-files.md) y [Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Comandos del intérprete de comandos**

## Packages
<a name="build.configuration.packages"></a>

(*action-name*/Configuration/**Packages**)

(Opcional) 

Una sección en la que puede especificar un repositorio de paquetes que la acción utilizará para resolver las dependencias. Los paquetes le permiten almacenar y compartir de forma segura los paquetes de software que se usan en el desarrollo de aplicaciones.

Para obtener más información sobre los paquetes, consulte [Publica y comparte paquetes de software en CodeCatalyst](packages.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Paquetes**

## NpmConfiguration
<a name="build.configuration.packages.npm"></a>

(*action-name*/Configuration/Packages/**NpmConfiguration**)

(Obligatorio si se incluye [Packages](#build.configuration.packages))

Una sección que define la configuración del formato del paquete npm. Una acción utiliza esta configuración durante la ejecución de un flujo de trabajo.

Para obtener más información sobre la configuración de paquetes npm, consulte [Con npm](packages-npm.md).

**Interfaz de usuario correspondiente: Configuration tab/Packages/Add configuration/ npm**

## PackageRegistries
<a name="build.configuration.packages.registry"></a>

(*action-name*/Configuration/Packages/NpmConfiguration/**PackageRegistries**)

(Obligatorio si se incluye [Packages](#build.configuration.packages))

Una sección en la que puede definir las propiedades de configuración de una secuencia de repositorios de paquetes.

**Interfaz de usuario correspondiente: Configuracióntab/Packages/Add configuration/npm/Agregar repositorio de paquetes**

## PackagesRepository
<a name="build.configuration.packages.repository"></a>

(*action-name*/Configuration/Packages/NpmConfiguration/PackageRegistries/**PackagesRepository**)

(Obligatorio si se incluye [Packages](#build.configuration.packages))

Especifique el nombre del *repositorio de CodeCatalyst paquetes* que desea que utilice la acción.

Si especifica varios repositorios predeterminados, el último repositorio tendrá prioridad.

Para obtener más información sobre los repositorios de paquetes, consulte [Repositorios de paquetes](packages-concepts.md#packages-concepts-repository).

**Interfaz de usuario correspondiente: repositorio de tab/Packages/Add configuration/npm/Add paquetes de configuración/repositorio de paquetes**

## Scopes
<a name="build.configuration.packages.scope"></a>

(*action-name*/Configuration/Packages/NpmConfiguration/PackageRegistries/**Scopes**)

(Opcional) 

Especifique la secuencia de *ámbitos* que desee definir en el registro de paquetes. Al definir los ámbitos, el repositorio de paquetes especificado se configura como el registro de todos los ámbitos de la lista. Si se solicita un paquete con ese ámbito a través del cliente npm, se utilizará ese repositorio en lugar del predeterminado. El nombre de cada ámbito debe tener el prefijo “@”.

Si incluye ámbitos solapados, el último repositorio tendrá prioridad.

Si `Scopes` se omite, el repositorio de paquetes especificado se configura como el registro predeterminado para todos los paquetes utilizados por la acción.

Para obtener más información sobre los ámbitos, consulte [Espacios de nombres en paquetes](packages-concepts.md#packages-concepts-package-namespaces) y [Scoped packages](https://docs.npmjs.com/cli/v10/using-npm/scope).

**Interfaz de usuario correspondiente: repositorio/ámbitos de tab/Packages/Add configuration/npm/Add paquetes de configuración: opcional**

## ExportAuthorizationToken
<a name="build.configuration.packages.exportauthtoken"></a>

(*action-name*/Configuration/Packages/**ExportAuthorizationToken**)

(Opcional) 

Activa o desactiva la característica de token de autorización de exportación. Si están habilitados, los tokens de autorización exportados se pueden usar para configurar manualmente un administrador de paquetes para autenticarse en los repositorios de paquetes. CodeCatalyst Puede usar el token como una variable de entorno a la que puede hacer referencia en sus acciones.

Los valores válidos son `true` o `false`.

Si `ExportAuthorizationToken` se omite, el valor predeterminado es `false`.

Para obtener más información sobre el token de autorización de exportación, consulte [Uso de tokens de autorización en acciones del flujo de trabajo](workflows-package-export-token.md).

Interfaz de usuario correspondiente: pestaña Configuración/Paquetes/**Token de autorización de exportación**

# Pruebas con flujos de trabajo
<a name="test-workflow-actions"></a>

En CodeCatalyst, puede ejecutar pruebas como parte de diferentes acciones de flujo de trabajo, como compilar y probar. Todas estas acciones del flujo de trabajo pueden generar informes de calidad. Una *acción de prueba* es una acción de flujo de trabajo que produce informes de prueba, cobertura de código, análisis de composición del software y análisis estático. Estos informes se muestran en la CodeCatalyst consola.

**Topics**
+ [

## Tipos de informes de calidad
](#test-reporting)
+ [

# Cómo añadir la acción de prueba
](test-add-action.md)
+ [

# Visualización de los resultados de una acción de prueba
](test-view-results.md)
+ [

# Omisión de las pruebas fallidas en una acción
](test.error-handling.md)
+ [

# Integrating universal-test-runner with
](test.universal-test-runner.md)
+ [

# Configuración de informes de calidad en una acción
](test-config-action.md)
+ [

# Prácticas recomendadas para las pruebas
](test-best-practices.md)
+ [

# Propiedades de SARIF admitidas
](test.sarif.md)

## Tipos de informes de calidad
<a name="test-reporting"></a>

La acción CodeCatalyst de prueba de Amazon admite los siguientes tipos de informes de calidad. Para ver un ejemplo sobre cómo dar formato a estos informes en YAML, consulte [Ejemplo de informes de calidad en YAML](test-config-action.md#test.success-criteria-example).

**Topics**
+ [

### Informes de pruebas
](#test-reports)
+ [

### Informes de cobertura de código
](#test-code-coverage-reports)
+ [

### Informes de análisis de composición de software
](#test-sca-reports)
+ [

### Informes de análisis estático
](#test-static-analysis-reports)

### Informes de pruebas
<a name="test-reports"></a>

En CodeCatalyst, puedes configurar las pruebas unitarias, las pruebas de integración y las pruebas del sistema que se ejecutan durante las compilaciones. A continuación, CodeCatalyst puede crear informes que contengan los resultados de sus pruebas.

Puede utilizar un informe de prueba para solucionar los problemas relacionados con las pruebas. Si tiene muchos informes de pruebas de varias compilaciones, puede utilizar los informes de pruebas para ver los índices de error para optimizar mejor las compilaciones.

Puede utilizar los siguientes formatos de archivos de informes de pruebas:
+ Cucumber JSON (.json)
+ JUnit XML (.xml)
+ NUnit XML (.xml)
+ NUnit3 XML (.xml)
+ TestNG XML (.xml)
+ Visual Studio TRX (.trx, .xml)

### Informes de cobertura de código
<a name="test-code-coverage-reports"></a>

En CodeCatalyst, puedes generar informes de cobertura de código para tus pruebas. CodeCatalyst proporciona las siguientes métricas de cobertura de código:

Cobertura de línea  
Mide el número de instrucciones cubiertas por las pruebas. Solo comprende una sola instrucción, sin contar comentarios.  
`line coverage = (total lines covered)/(total number of lines)`

Cobertura de ramificación  
Mide cuántas ramificaciones cubren las pruebas de cada ramificación posible de una estructura de control, como una instrucción `if` o `case`.  
`branch coverage = (total branches covered)/(total number of branches)`

Se admiten los siguientes formatos de archivo de informe de cobertura de código:
+ JaCoCo XML (.xml)
+ SimpleCov [JSON (generado por [simplecov, no por simplecov-json](https://github.com/simplecov-ruby/simplecov), .json)](https://github.com/vicentllongo/simplecov-json)
+ Clover XML (versión 3, .xml)
+ Cobertura XML (.xml)
+ LCOV (.info)

### Informes de análisis de composición de software
<a name="test-sca-reports"></a>

En CodeCatalyst, puede utilizar las herramientas de análisis de composición de software (SCA) para analizar los componentes de su aplicación y comprobar si hay vulnerabilidades de seguridad conocidas. Puede detectar y analizar informes de SARIF que detallen las vulnerabilidades de diversa gravedad y las formas de solucionarlas. Los valores de gravedad válidos, desde el más al menos grave, son `CRITICAL`, `HIGH`, `MEDIUM`, `LOW` y `INFORMATIONAL`.

Se admiten los siguientes formatos de archivo de informe de SCA:
+ SARIF (.sarif, .json)

### Informes de análisis estático
<a name="test-static-analysis-reports"></a>

Puede utilizar los informes de análisis estático (SA) para identificar los defectos del código fuente. En CodeCatalyst, puede generar informes de SA para ayudar a resolver problemas en su código antes de implementarlo. Entre estos problemas se incluyen errores, vulnerabilidades de seguridad, problemas de calidad y otras vulnerabilidades. Los valores de gravedad válidos, desde el más al menos grave, son `CRITICAL`, `HIGH`, `MEDIUM`, `LOW` y `INFORMATIONAL`.

CodeCatalyst proporciona las siguientes métricas de SA:

Errores  
Identifica una serie de posibles errores encontrados en su código fuente. Estos errores pueden incluir problemas relacionados con la seguridad de la memoria. A continuación se muestra un ejemplo de un error.  

```
// The while loop will inadvertently index into array x out-of-bounds
int x[64];
while (int n = 0; n <= 64; n++) {
  x[n] = 0;
}
```

Vulnerabilidades de seguridad  
Identifica una serie de posibles vulnerabilidades de seguridad encontradas en su código fuente. Estas vulnerabilidades de seguridad pueden incluir problemas como el almacenamiento de los tokens secretos en texto sin formato.

Problemas de calidad  
Identifica una serie de posibles problemas de calidad encontrados en su código fuente. Entre estos problemas de calidad pueden incluirse problemas relacionados con las convenciones de estilo. A continuación presentamos un ejemplo de un problema de calidad.  

```
// The function name doesn't adhere to the style convention of camelCase
int SUBTRACT(int x, int y) {
  return x-y
}
```

Otras vulnerabilidades  
Identifica una serie de otras posibles vulnerabilidades encontradas en su código fuente.

CodeCatalyst admite los siguientes formatos de archivo de informes de SA:
+ PyLint (.py)
+ ESLint (.js, .jsx, .ts, .tsx)
+ SARIF (.sarif, .json)

# Cómo añadir la acción de prueba
<a name="test-add-action"></a>

Utilice el siguiente procedimiento para añadir una acción de prueba a su CodeCatalyst flujo de trabajo. 

------
#### [ Visual ]

**Adición de una acción de prueba mediante el editor visual**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. Elija **Acciones**.

1. En **Acciones**, elija **Probar**. 

1. En las pestañas **Entradas** y **Configuración**, complete los campos según sus necesidades. Para obtener una descripción de cada uno de los campos, consulte la [Acciones de compilación y prueba de YAML](build-action-ref.md). Esta referencia proporciona información detallada sobre cada campo (y el valor de la propiedad de YAML correspondiente) tal como aparece en el editor visual y el de YAML.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Adición de una acción de compilación mediante el editor de YAML**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. Elija **Acciones**.

1. En **Acciones**, elija **Probar**.

1. Modifique las propiedades del código de YAML en función de sus necesidades. Encontrará una explicación de todas las propiedades disponibles en la [Acciones de compilación y prueba de YAML](build-action-ref.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

## Definición de la acción de prueba
<a name="test-add-action-definition"></a>

La acción de prueba se define como un conjunto de propiedades de YAML dentro del archivo de definición del flujo de trabajo. Para obtener más información sobre estas propiedades, consulte [Acciones de compilación y prueba de YAML](build-action-ref.md) en la [Definición de flujo de trabajo en YAML](workflow-reference.md).

# Visualización de los resultados de una acción de prueba
<a name="test-view-results"></a>

Utilice las instrucciones siguientes para ver los resultados de una acción de prueba, incluidos los registros, los informes y las variables generados.

**Visualización de los resultados de una acción de prueba**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. En el diagrama de flujo de trabajo, elija el nombre de la acción de prueba, por ejemplo, **Prueba**.

1. Para ver los registros generados por una acción, seleccione **Registros**. Se muestran los registros de las distintas fases de acción. Puede expandir o contraer los registros según sea necesario.

1. Para ver los informes de prueba generados por la acción de prueba, seleccione **Informes** o, en el panel de navegación, elija **Informes**. Para obtener más información, consulte [Tipos de informes de calidad](test-workflow-actions.md#test-reporting).

1. Para ver la configuración de una acción de prueba, elija **Configuración**. Para obtener más información, consulte [Cómo añadir la acción de prueba](test-add-action.md).

1. Para ver las variables utilizadas por la acción de prueba, elija **Variables**. Para obtener más información, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

# Omisión de las pruebas fallidas en una acción
<a name="test.error-handling"></a>

Si la acción tiene más de un comando de prueba, puede permitir que los siguientes comandos de prueba de la acción se ejecuten incluso aunque se produzca un error en uno de los comandos anteriores. Por ejemplo, en los siguientes comandos, puede que quiera que `test2` se ejecute siempre, incluso aunque `test1` falle.

```
Steps:
- Run: npm install
- Run: npm run test1
- Run: npm run test2
```

Normalmente, cuando un paso devuelve un error, Amazon CodeCatalyst detiene la acción del flujo de trabajo y la marca como fallida. Puede permitir que los pasos de la acción continúen ejecutándose redirigiendo el resultado del error a `null`. Puede hacerlo agregando `2>/dev/null` al comando. Con esta modificación, el ejemplo anterior tendría el siguiente aspecto.

```
Steps:
- Run: npm install
- Run: npm run test1 2>/dev/null
- Run: npm run test2
```

En el segundo fragmento de código, se respetará el estado del comando `npm install`, pero se ignorará cualquier error que devuelva el comando `npm run test1`. Como resultado, se ejecuta el comando `npm run test2`. De este modo, podrá ver ambos informes a la vez, independientemente de si se produce un error o no.

# Integrating universal-test-runner with
<a name="test.universal-test-runner"></a>

Las acciones de prueba se integran con la herramienta de línea de comandos de código abierto `universal-test-runner`. `universal-test-runner` utiliza el [protocolo de ejecución de pruebas](https://github.com/aws/universal-test-runner/blob/main/protocol/README.md) para ejecutar las pruebas en cualquier lenguaje de un marco determinado. `universal-test-runner` es compatible con los siguientes marcos:
+ [Gradle](https://gradle.org/)
+ [Jest](https://jestjs.io/)
+ [Maven](https://maven.apache.org/)
+ [pytest](https://pytest.org)
+ [.NET](https://learn.microsoft.com/en-us/dotnet/core/tools/)

`universal-test-runner` se instala solo en las imágenes seleccionadas para realizar acciones de prueba. Si configura una acción de prueba para usar un Docker Hub o Amazon ECR personalizados, debe instalar manualmente `universal-test-runner` para habilitar las características de prueba avanzadas. Para ello, instale Node.js (versión 14 o superior) en la imagen y después instale `universal-test-runner` mediante `npm` con el comando del intérprete de comandos `- Run: npm install -g @aws/universal-test-runner`. Para obtener más información sobre cómo instalar Node.js en el contenedor mediante comandos del intérprete de comandos, consulte [Installing and Updating Node Version Manager](https://github.com/nvm-sh/nvm#install--update-script).

Para obtener más información acerca del `universal-test-runner`, consulte [¿Qué es el universal-test-runner?](https://github.com/aws/universal-test-runner#-what-is-universal-test-runner)

------
#### [ Visual ]

**Para usar universal-test-runner en el editor visual**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. Elija **Acciones**.

1. En **Acciones**, elija **Probar**. 

1. En la pestaña **Configuración**, complete el campo de **Comandos del intérprete de comandos** actualizando el código de ejemplo con los marcos compatibles que haya elegido. Por ejemplo, para usar un marco compatible, debería usar un comando `Run` similar al siguiente.

   ```
   - Run: run-tests <framework>
   ```

   Si el marco que quiere usar no es compatible, considere la posibilidad de añadir un adaptador o un ejecutor personalizados. Para obtener una descripción del campo **Comandos del intérprete de comandos**, consulte [Steps](build-action-ref.md#build.configuration.steps).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Para usar universal-test-runner en el editor YAML**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. Elija **Acciones**.

1. En **Acciones**, elija **Probar**.

1. Modifique el código de YAML en función de sus necesidades. Por ejemplo, para usar un marco compatible, debería usar un comando `Run` similar al siguiente.

   ```
   Configuration:
     Steps:
       - Run: run-tests <framework>
   ```

   Si el marco que quiere usar no es compatible, considere la posibilidad de añadir un adaptador o un ejecutor personalizados. Para ver una descripción de la propiedad **Pasos**, consulte [Steps](build-action-ref.md#build.configuration.steps).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Configuración de informes de calidad en una acción
<a name="test-config-action"></a>

En esta sección se describe cómo configurar un informe de calidad en una acción.

**Topics**
+ [

## Detección automática e informes manuales
](#test.auto-discovery)
+ [

## Configuración de los criterios de éxito de los informes
](#test.success-criteria)
+ [

## Ejemplo de informes de calidad en YAML
](#test.success-criteria-example)

## Detección automática e informes manuales
<a name="test.auto-discovery"></a>

Cuando la detección automática está habilitada, CodeCatalyst busca en todas las entradas transferidas a la acción y en todos los archivos generados por la propia acción, buscando informes de pruebas, cobertura de código, análisis de composición de software (SCA) y análisis estático (SA). Puede ver y manipular cada uno de estos informes en. CodeCatalyst

También puede configurar manualmente los informes que se generan. Puede especificar el tipo de informe que desea generar, así como el formato de archivo. Para obtener más información, consulte [Tipos de informes de calidad](test-workflow-actions.md#test-reporting).

## Configuración de los criterios de éxito de los informes
<a name="test.success-criteria"></a>

Puede establecer los valores que determinan los criterios de éxito de un informe de prueba, cobertura de código, análisis de composición de software (SCA) o análisis estático (SA).

Los criterios de éxito son umbrales que determinan si un informe se aprueba o no. CodeCatalyst primero genera el informe, que puede ser un informe de prueba, de cobertura de código, de SCA o SA, y, a continuación, aplica los criterios de éxito a los informes generados. A continuación, muestra si se han cumplido los criterios de éxito y en qué medida. Si algún informe no cumple los criterios de éxito especificados, la CodeCatalyst acción que especificó los criterios de éxito fallará.

Por ejemplo, al establecer los criterios de éxito del informe de SCA, los valores de vulnerabilidad válidos, que van del más al menos grave, son: `CRITICAL`, `HIGH`, `MEDIUM`, `LOW` y `INFORMATIONAL`. Si establece los criterios para buscar una vulnerabilidad de gravedad `HIGH`, el informe fallará si hay al menos una vulnerabilidad de gravedad `HIGH` o no hay ninguna vulnerabilidad de gravedad `HIGH`, pero hay al menos una vulnerabilidad de un nivel de gravedad superior, como una vulnerabilidad de gravedad `CRITICAL`.

Si no especifica los criterios de éxito, ocurrirá lo siguiente:
+ El CodeCatalyst informe que se genere a partir de sus informes sin procesar no mostrará los criterios de éxito.
+ Los criterios correctos no se utilizarán para determinar si la acción de flujo de trabajo asociada se aprueba o no.

------
#### [ Visual ]

**Configuración de los criterios de éxito**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija un flujo de trabajo que contenga una acción que genere un informe. Este es el informe al que quiera aplicar los criterios de éxito. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, elija la acción que ha configurado para generar CodeCatalyst informes.

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

1. En **Informes de detección automática** o en **Configurar informes manualmente**, elija **Criterios de éxito**.

   Aparecen los criterios de éxito. En función de las selecciones anteriores, podría ver alguna de estas opciones o todas ellas:

   **Índice de aprobación**

   Especifique el porcentaje de pruebas en un informe de prueba que deben aprobarse para que el CodeCatalyst informe asociado se marque como aprobado. Los valores válidos son números decimales. Por ejemplo: `50`, `60.5`. Los criterios del índice de aprobación se aplican únicamente a los informes de pruebas. Para obtener más información sobre los informes de pruebas, consulte [Informes de pruebas](test-workflow-actions.md#test-reports).

   **Cobertura de línea**

   Especifique el porcentaje de líneas de un informe de cobertura de código que deben cubrirse para que el CodeCatalyst informe asociado se marque como aprobado. Los valores válidos son números decimales. Por ejemplo: `50`, `60.5`. Los criterios de cobertura de línea se aplican únicamente a los informes de cobertura de código. Para obtener más información sobre los informes de cobertura de código, consulte [Informes de cobertura de código](test-workflow-actions.md#test-code-coverage-reports).

   **Cobertura de ramificación**

   Especifique el porcentaje de ramificaciones de un informe de cobertura de código que deben cubrirse para que el CodeCatalyst informe asociado se marque como aprobado. Los valores válidos son números decimales. Por ejemplo: `50`, `60.5`. Los criterios de cobertura de ramificaciones se aplican únicamente a los informes de cobertura de código. Para obtener más información sobre los informes de cobertura de código, consulte [Informes de cobertura de código](test-workflow-actions.md#test-code-coverage-reports).

   **Vulnerabilidades (SCA)**

   Especifique el número máximo y la gravedad de las vulnerabilidades permitidas en el informe de la SCA para que el CodeCatalyst informe asociado se marque como aprobado. Para especificar las vulnerabilidades, debe especificar lo siguiente:
   + La gravedad mínima de las vulnerabilidades que desea incluir en el recuento. Los valores válidos, desde el más al menos grave, son `CRITICAL`, `HIGH`, `MEDIUM`, `LOW` y `INFORMATIONAL`.

     Por ejemplo, si elige `HIGH`, se contabilizan las vulnerabilidades `HIGH` y `CRITICAL`.
   + El número máximo de vulnerabilidades de la gravedad especificada que desea permitir. Si se supera este número, el CodeCatalyst informe se marca como fallido. Los valores válidos son números enteros.

   Los criterios de vulnerabilidad se aplican únicamente a los informes de SCA. Para obtener más información acerca de los informes de SCA, consulte [Informes de análisis de composición de software](test-workflow-actions.md#test-sca-reports).

   **Errores**

   Especifique el número máximo y la gravedad de los errores permitidos en el informe de SA para que el CodeCatalyst informe asociado se marque como aprobado. Para especificar errores, debe especificar lo siguiente:
   + La gravedad mínima de los errores que desea incluir en el recuento. Los valores válidos, desde el más al menos grave, son `CRITICAL`, `HIGH`, `MEDIUM`, `LOW` y `INFORMATIONAL`.

     Por ejemplo, si elige `HIGH`, se contabilizan los errores `HIGH` y `CRITICAL`.
   + El número máximo de errores de la gravedad especificada que desea permitir. Si se supera este número, el CodeCatalyst informe se marcará como fallido. Los valores válidos son números enteros.

   Los criterios de errores se aplican únicamente a PyLint los informes de ESLint SA. Para obtener más información acerca de los informes de SA, consulte [Informes de análisis estático](test-workflow-actions.md#test-static-analysis-reports).

   **Vulnerabilidades de seguridad**

   Especifique el número máximo y la gravedad de las vulnerabilidades de seguridad permitidas en el informe de SA para que el CodeCatalyst informe asociado se marque como aprobado. Para especificar las vulnerabilidades de seguridad, debe especificar lo siguiente:
   + La gravedad mínima de las vulnerabilidades de seguridad que desea incluir en el recuento. Los valores válidos, desde el más al menos grave, son `CRITICAL`, `HIGH`, `MEDIUM`, `LOW` y `INFORMATIONAL`.

     Por ejemplo, si elige `HIGH`, se contabilizan las vulnerabilidades de seguridad `HIGH` y `CRITICAL`.
   + El número máximo de vulnerabilidades de seguridad de la gravedad especificada que desea permitir. Si se supera este número, el CodeCatalyst informe se marca como fallido. Los valores válidos son números enteros.

   Los criterios de vulnerabilidad de seguridad se aplican únicamente a PyLint los informes de ESLint SA. Para obtener más información acerca de los informes de SA, consulte [Informes de análisis estático](test-workflow-actions.md#test-static-analysis-reports).

   **Problemas de calidad**

   Especifique el número máximo y la gravedad de los problemas de calidad permitidos en el informe de SA para que el CodeCatalyst informe asociado se marque como aprobado. Para especificar problemas de calidad, debe especificar lo siguiente:
   + La gravedad mínima de los problemas de calidad que desea incluir en el recuento. Los valores válidos, desde el más al menos grave, son `CRITICAL`, `HIGH`, `MEDIUM`, `LOW` y `INFORMATIONAL`.

     Por ejemplo, si elige `HIGH`, se contabilizan los problemas de calidad `HIGH` y `CRITICAL`.
   + El número máximo de problemas de calidad de la gravedad especificada que desea permitir. Si se supera este número, el CodeCatalyst informe se marca como fallido. Los valores válidos son números enteros.

   Los criterios de calidad se aplican únicamente a PyLint los informes ESLint SA. Para obtener más información acerca de los informes de SA, consulte [Informes de análisis estático](test-workflow-actions.md#test-static-analysis-reports).

1. Elija **Confirmar**.

1. Ejecute su flujo de trabajo para CodeCatalyst aplicar los criterios de éxito a sus informes sin procesar y regenere los CodeCatalyst informes asociados con la información sobre los criterios de éxito incluida. Para obtener más información, consulte [Inicio manual de la ejecución de un flujo de trabajo](workflows-manually-start.md).

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

**Configuración de los criterios de éxito**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija un flujo de trabajo que contenga una acción que genere un informe. Este es el informe al que quiera aplicar los criterios de éxito. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En el diagrama de flujo de trabajo, elija la acción que ha configurado para generar CodeCatalyst informes.

1. En el panel de detalles, seleccione la pestaña **Salidas**.

1. En la acción, en la `AutoDiscoverReports` sección o en la `Reports` sección, añada una **SuccessCriteria**propiedad junto con `PassRate` `LineCoverage``BranchCoverage`,`Vulnerabilities`,`StaticAnalysisBug`,`StaticAnalysisSecurity`, y `StaticAnalysisQuality` propiedades.

   Para obtener una explicación de cada una de estas propiedades, consulte la [Acciones de compilación y prueba de YAML](build-action-ref.md).

1. Elija **Confirmar**.

1. Ejecute su flujo de trabajo para CodeCatalyst aplicar los criterios de éxito a sus informes sin procesar y regenere los CodeCatalyst informes asociados con la información sobre los criterios de éxito incluida. Para obtener más información acerca del inicio de un flujo de trabajo, consulte [Inicio manual de la ejecución de un flujo de trabajo](workflows-manually-start.md).

------

## Ejemplo de informes de calidad en YAML
<a name="test.success-criteria-example"></a>

 El siguiente ejemplo muestra cómo configurar manualmente cuatro informes: un informe de prueba, un informe de cobertura de código, un informe de análisis de composición de software y un informe de análisis estático.

```
Reports:
  MyTestReport:
    Format: JUNITXML
    IncludePaths:
      - "*.xml"
    ExcludePaths:
      - report1.xml
      SuccessCriteria:
        PassRate: 90
  MyCoverageReport:
    Format: CLOVERXML
    IncludePaths:
      - output/coverage/jest/clover.xml
      SuccessCriteria:
        LineCoverage: 75
        BranchCoverage: 75
  MySCAReport:
    Format: SARIFSCA
    IncludePaths:
      - output/sca/reports.xml
      SuccessCriteria:
        Vulnerabilities:
          Number: 5
          Severity: HIGH
  MySAReport:
    Format: ESLINTJSON
    IncludePaths:
      - output/static/eslint.xml
      SuccessCriteria:
        StaticAnalysisBug:
          Number: 10
          Severity: MEDIUM
        StaticAnalysisSecurity:
          Number: 5
          Severity: CRITICAL
        StaticAnalysisQuality:
          Number: 0
          Severity: INFORMATIONAL
```

# Prácticas recomendadas para las pruebas
<a name="test-best-practices"></a>

Cuando utilices las funciones de prueba que ofrece CodeCatalyst, te recomendamos que sigas estas prácticas recomendadas.

**Topics**
+ [

## Detección automática
](#test.best-auto-discovery)
+ [

## Criterios de éxito
](#test.best-success-criteria)
+ [

## Inclusión/exclusión de rutas
](#test.best-include-exclude)

## Detección automática
<a name="test.best-auto-discovery"></a>

Al configurar las acciones en CodeCatalyst, la detección automática le permite descubrir automáticamente los resultados de varias herramientas, como los informes de JUnit pruebas, y generar CodeCatalyst informes relevantes a partir de ellos. La detección automática ayuda a garantizar que los informes se sigan generando aunque cambien los nombres o las rutas de acceso a los resultados detectados. Cuando se añaden nuevos archivos, los descubre CodeCatalyst automáticamente y genera los informes pertinentes. Sin embargo, si utiliza la detección automática, es importante tener en cuenta algunos de los siguientes aspectos de esta característica:
+ Cuando se activa la detección automática en una acción, todos los informes del mismo tipo detectados automáticamente compartirán los mismos criterios de éxito. Por ejemplo, un criterio compartido, como un índice mínimo de aprobación, se aplicaría a todos los informes de pruebas detectados automáticamente. Si necesita criterios diferentes para informes del mismo tipo, debe configurar cada uno de estos informes de forma explícita.
+ La detección automática también puede encontrar los informes generados por sus dependencias y, si se han configurado criterios de éxito, es posible que la acción falle en estos informes. Este problema se puede solucionar actualizando la configuración de la ruta de exclusión.
+ No está garantizado que la detección automática produzca siempre la misma lista de informes, ya que analiza la acción en tiempo de ejecución. En el caso de que desee que siempre se genere un informe en particular, debe configurar los informes de forma explícita. Por ejemplo, si las pruebas se dejasen de ejecutar como parte de la compilación, el marco de pruebas no generaría ningún resultado y, en consecuencia, no se generaría ningún informe de prueba y la acción podría tener éxito. Si quiere que el éxito de la acción dependa de esa prueba en particular, debe configurar ese informe de forma explícita.

**sugerencia**  
Al comenzar con un proyecto nuevo o existente, use la detección automática para todo el directorio del proyecto (incluya `**/*`). Esto invoca la generación de informes en todos los archivos del proyecto, incluidos los que se encuentren en los subdirectorios.

Para obtener más información, consulte [Configuración de informes de calidad en una acción](test-config-action.md).

## Criterios de éxito
<a name="test.best-success-criteria"></a>

Puede imponer umbrales de calidad en sus informes configurando criterios de éxito. Por ejemplo, si se han detectado automáticamente dos informes de cobertura de código, uno con una cobertura de línea del 80 % y el otro con una cobertura de línea del 60 %, tiene las siguientes opciones:
+ Establecer los criterios de éxito de la detección automática para la cobertura de la línea en un 80 %. Esto provocaría que se aprobara el primer informe y que el segundo no, lo que provocaría un error en la acción en general. Para desbloquear el flujo de trabajo, añada nuevas pruebas a su proyecto hasta que la cobertura de línea del segundo informe supere el 80 %.
+ Establecer los criterios de éxito de la detección automática para la cobertura de la línea en un 60 %. Esto haría que ambos informes se aprobaran, lo que provocaría que la acción tuviese éxito. A continuación, podría trabajar para aumentar la cobertura del código en el segundo informe. Sin embargo, con este enfoque, no se puede garantizar que la cobertura del primer informe no caiga por debajo del 80 %.
+ Configure de forma explícita uno o ambos informes mediante el editor visual o agregando una sección y una ruta de YAML explícitas para cada informe. Esto le permitiría configurar criterios de éxito independientes y nombres personalizados para cada informe. Sin embargo, con este enfoque, la acción podría fallar si las rutas de los informes cambian.

Para obtener más información, consulte [Configuración de los criterios de éxito de los informes](test-config-action.md#test.success-criteria).

## Inclusión/exclusión de rutas
<a name="test.best-include-exclude"></a>

Al revisar los resultados de las acciones, puede ajustar la lista de informes generados CodeCatalyst mediante la configuración `IncludePaths` y`ExcludePaths`.
+ `IncludePaths`Utilícelo para especificar los archivos y las rutas de archivo CodeCatalyst que desea incluir al buscar informes. Por ejemplo, si lo especifica`"/test/report/*"`, CodeCatalyst busca en el `/test/report/` directorio toda la imagen de creación utilizada por la acción. Cuando encuentra ese directorio, CodeCatalyst busca los informes en ese directorio.
**nota**  
En el caso de los informes configurados manualmente, `IncludePaths` debe ser un patrón glob que coincida con un único archivo.
+ `ExcludePaths`Utilícelo para especificar los archivos y las rutas de archivo CodeCatalyst que desea excluir al buscar informes. Por ejemplo, si lo especifica`"/test/reports/**/*"`, no CodeCatalyst buscará archivos en el `/test/reports/` directorio. Para ignorar todos los archivos de un directorio, utilice el patrón glob `**/*`.

A continuación se muestran ejemplos de posibles patrones glob.


| Patrón | Description (Descripción) | 
| --- | --- | 
|  `*.*`  |  Coincide con todos los nombres de objetos en el directorio actual que contienen un punto  | 
|  `*.xml`  |  Coincide con todos los nombres de objetos en el directorio actual que terminan en `.xml`  | 
|  `*.{xml,txt}`  |  Coincide con todos los nombres de objetos en el directorio actual que terminan en `.xml` o `.txt`  | 
|  `**/*.xml`  |  Coincide con los nombres de objetos de todos los directorios que terminan en `.xml`  | 
|  `testFolder`  |  Coincide con un objeto llamado `testFolder` y lo trata como un archivo  | 
|  `testFolder/*`  |  Coincide con los objetos en un nivel de subcarpeta desde `testFolder`, como `testFolder/file.xml`  | 
|  `testFolder/*/*`  |  Coincide con los objetos en dos niveles de subcarpeta desde `testFolder`, como `testFolder/reportsFolder/file.xml`  | 
|  `testFolder/**`  |  Coincide con la subcarpeta `testFolder` así como con los archivos debajo de `testFolder`, como `testFolder/file.xml` y `testFolder/otherFolder/file.xml`  | 

CodeCatalyst interpreta los patrones globales de la siguiente manera:
+ El carácter de barra diagonal (`/`) separa los directorios en las rutas de los archivos.
+ El carácter asterisco (`*`) coincide con cero o varios caracteres de un componente de nombre sin superar límites de carpeta.
+ Un asterisco doble (`**`) coincide con cero o más caracteres de un componente de nombre en todos los directorios.

**nota**  
`ExcludePaths` tiene prioridad sobre `IncludePaths`. Si tanto `IncludePaths` como `ExcludePaths` incluyen la misma carpeta, esa carpeta no se escanea en busca de informes.

# Propiedades de SARIF admitidas
<a name="test.sarif"></a>

El formato de intercambio de resultados de análisis estático (SARIF) es un formato de archivo de salida que está disponible en los informes de análisis de composición de software (SCA) y análisis estático en Amazon. CodeCatalyst En el siguiente ejemplo se muestra cómo configurar SARIF de forma manual en un informe de análisis estático:

```
Reports:
MySAReport:
Format: SARIFSA
IncludePaths:
    - output/sa_report.json
SuccessCriteria:
    StaticAnalysisFinding:
    Number: 25
    Severity: HIGH
```

CodeCatalyst admite las siguientes propiedades del SARIF, que se pueden utilizar para optimizar la forma en que aparecerán los resultados del análisis en sus informes.

**Topics**
+ [

## Objeto `sarifLog`
](#test.sarif.sarifLog)
+ [

## Objeto `run`
](#test.sarif.run)
+ [

## Objeto `toolComponent`
](#test.sarif.toolComponent)
+ [

## Objeto `reportingDescriptor`
](#test.sarif.reportingDescriptor)
+ [

## Objeto `result`
](#test.sarif.result)
+ [

## Objeto `location`
](#test.sarif.location)
+ [

## Objeto `physicalLocation`
](#test.sarif.physicalLocation)
+ [

## Objeto `logicalLocation`
](#test.sarif.logicalLocation)
+ [

## Objeto `fix`
](#test.sarif.fix)

## Objeto `sarifLog`
<a name="test.sarif.sarifLog"></a>


| Name | Obligatorio | Descripción | 
| --- | --- | --- | 
|  `$schema`  |  Sí  |  El URI del esquema JSON de SARIF para la versión [2.1.0](https://json.schemastore.org/sarif-2.1.0.json).  | 
|  `version`  |  Sí  |  CodeCatalyst solo es compatible con la versión 2.1.0 de SARIF.  | 
|  `runs[]`  |  Sí  |  Un archivo SARIF contiene una matriz de una o varias ejecuciones, en la que cada cual representa una ejecución única de la herramienta de análisis.  | 

## Objeto `run`
<a name="test.sarif.run"></a>


| Name | Obligatorio | Descripción | 
| --- | --- | --- | 
|  `tool.driver`  |  Sí  |  Un objeto `toolComponent` que describe la herramienta de análisis.  | 
|  `tool.name`  |  No  |  Una propiedad que indica el nombre de la herramienta utilizada para realizar el análisis.  | 
|  `results[]`  |  Sí  |  Los resultados de la herramienta de análisis que se muestran en. CodeCatalyst  | 

## Objeto `toolComponent`
<a name="test.sarif.toolComponent"></a>


| Name | Obligatorio | Descripción | 
| --- | --- | --- | 
|  `name`  |  Sí  |  El nombre de la herramienta de análisis.  | 
|  `properties.artifactScanned`  |  No  |  Número total de artefactos analizados por la herramienta.  | 
|  `rules[]`  |  Sí  |  Una matriz de objetos `reportingDescriptor` que representan reglas. Según estas reglas, la herramienta de análisis encuentra problemas en el código que se analiza.  | 

## Objeto `reportingDescriptor`
<a name="test.sarif.reportingDescriptor"></a>


| Name | Obligatorio | Descripción | 
| --- | --- | --- | 
|  `id`  |  Sí  |  El identificador único de la regla que se utiliza para hacer referencia a un resultado. Longitud máxima: 1024 caracteres  | 
|  `name`  |  No  |  Nombre de visualización de la regla. Longitud máxima: 1024 caracteres  | 
|  `shortDescription.text`  |  No  |  Descripción abreviada de la regla. Longitud máxima: 3000 caracteres  | 
|  `fullDescription.text`  |  No  |  Descripción completa de la regla. Longitud máxima: 3000 caracteres  | 
|  `helpUri`  |  No  |  Cadena que se puede localizar para que contenga el URI absoluto de la documentación principal de la regla. Longitud máxima: 3000 caracteres  | 
|  `properties.unscore`  |  No  |  Un indicador que señala si se ha puntuado el resultado del análisis.  | 
|  `properties.score.severity`  |  No  |  Un conjunto fijo de cadenas que especifican el nivel de gravedad del resultado. Longitud máxima: 1024 caracteres  | 
|  `properties.cvssv3_baseSeverity`  |  No  |  Una calificación cualitativa de la gravedad según el [Common Vulnerability Scoring System v3.1](https://www.first.org/cvss/v3.1/specification-document).  | 
|  `properties.cvssv3_baseScore`  |  No  |  Una puntuación base de CVSS v3 que oscila entre [0.0 y 10.0](https://nvd.nist.gov/vuln-metrics/cvss).  | 
|  `properties.cvssv2_severity`  |  No  |  Si los valores de CVSS v3 no están disponibles, CodeCatalyst busca los valores de CVSS v2.  | 
|  `properties.cvssv2_score`  |  No  |  Una puntuación base de CVSS v2 que oscila entre [0.0 y 10.0](https://nvd.nist.gov/vuln-metrics/cvss).  | 
|  `properties.severity`  |  No  |  Un conjunto fijo de cadenas que especifican el nivel de gravedad del resultado. Longitud máxima: 1024 caracteres  | 
|  `defaultConfiguration.level`  |  No  |  La gravedad predeterminada de una regla.  | 

## Objeto `result`
<a name="test.sarif.result"></a>


| Name | Obligatorio | Descripción | 
| --- | --- | --- | 
|  `ruleId`  |  Sí  |  El identificador único de la regla que se utiliza para hacer referencia a un resultado. Longitud máxima: 1024 caracteres  | 
|  `ruleIndex`  |  Sí  |  El índice de la regla asociada en el componente de la herramienta `rules[]`.  | 
|  `message.text`  |  Sí  |  Un mensaje que describe el resultado y muestra el mensaje de cada resultado. Longitud máxima: 3000 caracteres  | 
|  `rank`  |  No  |  Un valor comprendido entre 0.0 y 100.0, ambos inclusive, que representa la prioridad o la importancia del resultado. En esta escala se valora 0.0 como la prioridad más baja y 100.0 como la prioridad más alta.  | 
|  `level`  |  No  |  La gravedad del resultado. Longitud máxima: 1024 caracteres  | 
|  `properties.unscore`  |  No  |  Un indicador que señala si se ha puntuado el resultado del análisis.  | 
|  `properties.score.severity`  |  No  |  Un conjunto fijo de cadenas que especifican el nivel de gravedad del resultado. Longitud máxima: 1024 caracteres  | 
|  `properties.cvssv3_baseSeverity`  |  No  |  Una calificación cualitativa de la gravedad según el [Common Vulnerability Scoring System v3.1](https://www.first.org/cvss/v3.1/specification-document).  | 
|  `properties.cvssv3_baseScore`  |  No  |  Una puntuación base de CVSS v3 que oscila entre [0.0 y 10.0](https://nvd.nist.gov/vuln-metrics/cvss).  | 
|  `properties.cvssv2_severity`  |  No  |  Si los valores de CVSS v3 no están disponibles, CodeCatalyst busca los valores de CVSS v2.  | 
|  `properties.cvssv2_score`  |  No  |  Una puntuación base de CVSS v2 que oscila entre [0.0 y 10.0](https://nvd.nist.gov/vuln-metrics/cvss).  | 
|  `properties.severity`  |  No  |  Un conjunto fijo de cadenas que especifican el nivel de gravedad del resultado. Longitud máxima: 1024 caracteres  | 
|  `locations[]`  |  Sí  |  El conjunto de ubicaciones en las que se detectó el resultado. Solo se debe incluir una ubicación, a menos que el problema solo se pueda corregir realizando un cambio en cada ubicación especificada. CodeCatalyst utiliza el primer valor de la matriz de ubicaciones para anotar el resultado. Número máximo de objetos `location`: 10  | 
|  `relatedLocations[]`  |  No  |  Una lista de ubicaciones adicionales a las que se hace referencia en el resultado. Número máximo de objetos `location`: 50  | 
|  `fixes[]`  |  No  |  Matriz de `fix` objetos que representan la recomendación proporcionada por la herramienta de digitalización. CodeCatalyst utiliza la primera recomendación de la `fixes` matriz.  | 

## Objeto `location`
<a name="test.sarif.location"></a>


| Name | Obligatorio | Descripción | 
| --- | --- | --- | 
|  `physicalLocation`  |  Sí  |  Identifica el artefacto y la región.  | 
|  `logicalLocations[]`  |  No  |  El conjunto de ubicaciones descritas por su nombre sin hacer referencia al artefacto.  | 

## Objeto `physicalLocation`
<a name="test.sarif.physicalLocation"></a>


| Name | Obligatorio | Descripción | 
| --- | --- | --- | 
|  `artifactLocation.uri`  |  Sí  |  El URI que indica la ubicación de un artefacto, normalmente un archivo en el repositorio o generado durante una compilación.  | 
|  `fileLocation.uri`  |  No  |  El URI alternativo que indica la ubicación del archivo. Se usa si se devuelve `artifactLocation.uri` vacío.  | 
|  `region.startLine`  |  Sí  |  El número de línea del primer carácter de la región.  | 
|  `region.startColumn`  |  Sí  |  El número de columna del primer carácter de la región.  | 
|  `region.endLine`  |  Sí  |  El número de línea del último carácter de la región.  | 
|  `region.endColumn`  |  Sí  |  El número de columna del último carácter de la región.  | 

## Objeto `logicalLocation`
<a name="test.sarif.logicalLocation"></a>


| Name | Obligatorio | Description (Descripción) | 
| --- | --- | --- | 
|  `fullyQualifiedName`  |  No  |  Información adicional que describe la ubicación del resultado. Longitud máxima: 1024 caracteres  | 

## Objeto `fix`
<a name="test.sarif.fix"></a>


| Name | Obligatorio | Description (Descripción) | 
| --- | --- | --- | 
|  `description.text`  |  No  |  Un mensaje que muestra una recomendación para cada resultado. Longitud máxima: 3000 caracteres  | 
|  `artifactChanges.[0].artifactLocation.uri`  |  No  |  El URI que indica la ubicación del artefacto que se debe actualizar.  | 

# Implementación con flujos de trabajo
<a name="deploy"></a>



Con [CodeCatalyst los flujos de trabajo](workflow.md), puede implementar aplicaciones y otros recursos en varios objetivos AWS Lambda, como Amazon ECS y más. 

## ¿Cómo implemento una aplicación?
<a name="deploy-concepts"></a>

Para implementar una aplicación o un recurso CodeCatalyst, primero debe crear un flujo de trabajo y, a continuación, especificar una acción de implementación dentro del mismo. Una *acción de despliegue* es un componente básico del flujo de trabajo que define *qué* es lo que se quiere implementar, *dónde* se quiere implementar y *cómo* se quiere implementar (por ejemplo, mediante un blue/green esquema). Puedes añadir una acción de despliegue a tu flujo de trabajo mediante el editor visual de la CodeCatalyst consola o el editor YAML.

Los pasos generales para implementar una aplicación o recurso son los siguientes.

**Implementación de una aplicación (tareas generales)**

1. En tu CodeCatalyst proyecto, **agregas el código fuente** de la aplicación que deseas implementar. Para obtener más información, consulte [Almacenar el código fuente en los repositorios de un proyecto en CodeCatalyst](source-repositories.md).

1. En su CodeCatalyst proyecto, debe **añadir un entorno** que defina el objetivo Cuenta de AWS y la Amazon Virtual Private Cloud (VPC) opcional en la que desea realizar la implementación. Para obtener más información, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md).

1. En su CodeCatalyst proyecto, **crea un flujo** de trabajo. El flujo de trabajo es el lugar en el que puede definir cómo compilar, probar e implementar la aplicación. Para obtener más información, consulte [Introducción a los flujos de trabajo](workflows-getting-started.md).

1. En el flujo de trabajo, **añada un desencadenador**, una **acción de compilación** y, de forma opcional, una **acción de prueba**. Para obtener más información, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md), [Cómo añadir la acción de compilación](build-add-action.md) y [Cómo añadir la acción de prueba](test-add-action.md).

1. En el flujo de trabajo, **añada una acción de implementación**. Puede elegir entre varias acciones de implementación CodeCatalyst proporcionadas para su aplicación en diferentes destinos, como Amazon ECS. (También puede usar una acción de compilación o una GitHub acción para implementar la aplicación. Para obtener más información sobre la acción de creación y GitHub las acciones, consulte[Alternativas a las acciones de implementación](#deploy-concepts-alternatives).)

1. **Inicie el flujo de trabajo** de forma manual o automática mediante un desencadenador. El flujo de trabajo ejecuta las acciones de compilación, prueba e implementación por orden para implementar la aplicación y los recursos en el destino. Para obtener más información, consulte [Inicio manual de la ejecución de un flujo de trabajo](workflows-manually-start.md).

## Lista de acciones de implementación
<a name="deploy-concepts-action-supported"></a>

Están disponibles las siguientes acciones de implementación:
+ Implementar CloudFormation pila: esta acción crea una CloudFormation pila en AWS función de una [CloudFormation plantilla](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html) o [AWS Serverless Application Model plantilla](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) que proporciones. Para obtener más información, consulte [Implementación de una CloudFormation pila](deploy-action-cfn.md).
+ Implementar en Amazon ECS: esta acción registra un archivo de [definición de tareas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions) que usted proporciona. Para obtener más información, consulte [Implementación en Amazon ECS con un flujo de trabajo](deploy-action-ecs.md).
+ Implementar en clúster de Kubernetes: esta acción implementa una aplicación en un clúster de Amazon Elastic Kubernetes Service. Para obtener más información, consulte [Implementación en Amazon EKS con un flujo de trabajo](deploy-action-eks.md).
+ AWS CDK implementar: esta acción implementa una [AWS CDK aplicación](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_concepts) en AWS. Para obtener más información, consulte [Implementación de una AWS CDK aplicación con un flujo de trabajo](cdk-dep-action.md).

**nota**  
Existen otras CodeCatalyst acciones que pueden implementar recursos; sin embargo, no se consideran acciones de *implementación* porque su información de implementación no aparece en la página **Entornos.** Para obtener más información sobre la página **Entornos** y sobre cómo ver las implementaciones, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md) y [Consulta de la información de implementación](deploy-view-deployment-info.md).

## Ventajas de las acciones de implementación
<a name="deploy-concepts-why-use"></a>

El uso de acciones de implementación en un flujo de trabajo tiene las siguientes ventajas:
+ **Historial de implementación**: consulte un historial de sus implementaciones para ayudarlo a administrar y comunicar los cambios en el software implementado. 
+ **Trazabilidad**: realice un seguimiento del estado de sus despliegues a través de la CodeCatalyst consola y compruebe cuándo y dónde se implementó cada revisión de la aplicación.
+ **Reversiones:** revierta las implementaciones automáticamente si hay errores. También puede configurar alarmas para activar las reversiones de implementación.
+ **Supervisión**: observe su implementación a medida que avanza por las distintas etapas de su flujo de trabajo.
+ **Integración con otras CodeCatalyst funciones**: almacene el código fuente y, a continuación, compruébelo, pruébelo e impleméntelo, todo desde una sola aplicación.

## Alternativas a las acciones de implementación
<a name="deploy-concepts-alternatives"></a>

No es necesario utilizar las acciones de implementación, si bien se recomiendan porque ofrecen las ventajas descritas en la sección anterior. En su lugar, puede utilizar las siguientes [CodeCatalyst acciones](workflows-actions.md#workflows-actions-types-cc):
+ Una acción de **compilación**.

  Por lo general, las acciones de compilación se utilizan si se quiere realizar la implementación en un destino para el que no existe la acción de implementación correspondiente o si se desea tener más control sobre el procedimiento de implementación. Para obtener más información sobre el uso de acciones de implementación para implementar recursos, consulte [Compilación con flujos de trabajo](build-workflow-actions.md).
+ Una **GitHub acción**.

  Puede usar una [GitHub acción](workflows-actions.md#workflows-actions-types-github) dentro de un CodeCatalyst flujo de trabajo para implementar aplicaciones y recursos (en lugar de una CodeCatalyst acción). Para obtener información sobre cómo utilizar GitHub las acciones dentro de un CodeCatalyst flujo de trabajo, consulte [Integración con GitHub acciones](integrations-github-actions.md)

También puedes usar los siguientes AWS servicios para implementar tu aplicación, si no quieres usar un CodeCatalyst flujo de trabajo para hacerlo:
+ AWS CodeDeploy — consulte [¿Qué es CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)
+ AWS CodeBuild y AWS CodePipeline — consulte [¿Qué es AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) y [¿Qué es AWS CodePipeline?](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ CloudFormation — ver [¿Qué es CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)

Uso CodeDeploy CodeBuild y CodePipeline CloudFormation servicios para despliegues empresariales complejos.

**Topics**
+ [

## ¿Cómo implemento una aplicación?
](#deploy-concepts)
+ [

## Lista de acciones de implementación
](#deploy-concepts-action-supported)
+ [

## Ventajas de las acciones de implementación
](#deploy-concepts-why-use)
+ [

## Alternativas a las acciones de implementación
](#deploy-concepts-alternatives)
+ [

# Implementación en Amazon ECS con un flujo de trabajo
](deploy-action-ecs.md)
+ [

# Implementación en Amazon EKS con un flujo de trabajo
](deploy-action-eks.md)
+ [

# Implementación de una CloudFormation pila
](deploy-action-cfn.md)
+ [

# Implementación de una AWS CDK aplicación con un flujo de trabajo
](cdk-dep-action.md)
+ [

# Cómo iniciar una AWS CDK aplicación con un flujo de trabajo
](cdk-boot-action.md)
+ [

# Publicación de archivos en Amazon S3 con un flujo de trabajo
](s3-pub-action.md)
+ [

# Implementación en Cuentas de AWS y VPCs
](deploy-environments.md)
+ [

# Visualización de la URL de la aplicación en el diagrama de flujo de trabajo
](deploy-app-url.md)
+ [

# Eliminación de un destino de implementación
](deploy-remove-target.md)
+ [

# Seguimiento del estado de la implementación por confirmación
](track-changes.md)
+ [

# Visualización de los registros de implementación
](deploy-deployment-logs.md)
+ [

# Consulta de la información de implementación
](deploy-view-deployment-info.md)

# Implementación en Amazon ECS con un flujo de trabajo
<a name="deploy-action-ecs"></a>

En esta sección se describe cómo implementar una aplicación contenerizada en un clúster de Amazon Elastic Container Service mediante un CodeCatalyst flujo de trabajo. Para ello, debe añadir la acción **Implementar en Amazon ECS** a su flujo de trabajo. Esta acción registra un archivo de [definición de tareas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions) que usted proporciona. Tras el registro, el [servicio de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) que se ejecuta en el [clúster de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-clusters) crea una instancia de la definición de la tarea. “Crear una instancia de una definición de tarea” equivale a implementar una aplicación en Amazon ECS.

Para utilizar esta acción, debe tener preparado un archivo de definición de tareas, servicio y clúster de Amazon ECS.

Para obtener más información sobre Amazon ECS, consulte la *Guía para desarrolladores de Amazon Elastic Container Service*.

**sugerencia**  
Para ver un tutorial que muestra cómo utilizar la acción **Implementar en Amazon ECS**, consulte [Tutorial: implementación de una aplicación en Amazon ECS](deploy-tut-ecs.md).

**sugerencia**  
Para ver un ejemplo práctico de la acción **Implementar en Amazon ECS**, cree un proyecto con el esquema de la **API para Node.js con AWS Fargate** o la **API para Java con AWS Fargate**. Para obtener más información, consulte [Creación de un proyecto con un esquema](projects-create.md#projects-create-console-template).

**Topics**
+ [

## Imagen del entorno en tiempo de ejecución utilizada por la acción 'Implementar en Amazon ECS'
](#deploy-action-ecs-runtime)
+ [

# Tutorial: implementación de una aplicación en Amazon ECS
](deploy-tut-ecs.md)
+ [

# Incorporación de la acción 'Implementar en Amazon ECS'
](deploy-action-ecs-adding.md)
+ [

# Variables de “Implementar en Amazon ECS”
](deploy-action-ecs-variables.md)
+ [

# Acción 'Implementar en Amazon ECS' de YAML
](deploy-action-ref-ecs.md)

## Imagen del entorno en tiempo de ejecución utilizada por la acción 'Implementar en Amazon ECS'
<a name="deploy-action-ecs-runtime"></a>

La acción **Implementar en Amazon ECS** se ejecuta en una [imagen de noviembre de 2022](build-images.md#build.previous-image). Para obtener más información, consulte [Imágenes activas](build-images.md#build-curated-images).

# Tutorial: implementación de una aplicación en Amazon ECS
<a name="deploy-tut-ecs"></a>

En este tutorial, aprenderá a implementar una aplicación sin servidor en Amazon Elastic Container Service (Amazon ECS) mediante un flujo de trabajo, Amazon ECS y algunos otros servicios. AWS La aplicación implementada es un sencillo sitio web Hello World creado a partir de una imagen de Docker del servidor web de Apache. El tutorial explica el trabajo de preparación necesario, como la configuración de un clúster, y luego describe cómo crear un flujo de trabajo para crear e implementar la aplicación.

**sugerencia**  
En lugar de seguir este tutorial, puede utilizar un esquema que realice una configuración completa de Amazon ECS por usted. Deberá utilizar el esquema de **API para Node.js con AWS Fargate** o **API para Java con AWS Fargate**. Para obtener más información, consulte [Creación de un proyecto con un esquema](projects-create.md#projects-create-console-template).

**Topics**
+ [

## Requisitos previos
](#deploy-tut-ecs-prereqs)
+ [

## Paso 1: Configura un AWS usuario y AWS CloudShell
](#deploy-tut-ecs-user-cloudshell)
+ [

## Paso 2: implementación de una aplicación de marcador de posición en Amazon ECS
](#deploy-tut-ecs-placeholder)
+ [

## Paso 3: creación de un repositorio de imágenes de Amazon ECR
](#deploy-tut-ecs-ecr)
+ [

## Paso 4: Crear roles AWS
](#deploy-tut-ecs-build-deploy-roles)
+ [

## Paso 5: Añadir AWS funciones a CodeCatalyst
](#deploy-tut-ecs-import-roles)
+ [

## Paso 6: creación de un repositorio de código fuente
](#deploy-tut-ecs-source-repo)
+ [

## Paso 7: incorporación de archivos de código fuente
](#deploy-tut-ecs-source-files)
+ [

## Paso 8: creación y ejecución de un flujo de trabajo
](#deploy-tut-ecs-workflow)
+ [

## Paso 9: realización de un cambio en los archivos de código fuente
](#deploy-tut-ecs-change)
+ [

## Limpieza
](#deploy-tut-ecs-cleanup)

## Requisitos previos
<a name="deploy-tut-ecs-prereqs"></a>

Antes de empezar:
+ Necesita un CodeCatalyst **espacio** con una AWS cuenta conectada. Para obtener más información, consulte [Creación de un espacio](spaces-create.md).
+ En su espacio, necesita un proyecto vacío llamado:

  ```
  codecatalyst-ecs-project
  ```

  Use la opción **Empezar desde cero** para crear este proyecto.

  Para obtener más información, consulte [Crear un proyecto vacío en Amazon CodeCatalyst](projects-create.md#projects-create-empty).
+ En tu proyecto, necesitas un CodeCatalyst **entorno** llamado:

  ```
  codecatalyst-ecs-environment
  ```

  Configure este entorno de la siguiente manera:
  + Elija cualquier tipo, como **Sin producción**.
  + Conecta tu AWS cuenta a ella.
  + En **Rol de IAM predeterminado**, elija cualquier rol. Especificará un rol diferente más adelante.

  Para obtener más información, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md).

## Paso 1: Configura un AWS usuario y AWS CloudShell
<a name="deploy-tut-ecs-user-cloudshell"></a>

El primer paso de este tutorial consiste en AWS IAM Identity Center crear un usuario y lanzar una AWS CloudShell instancia como este usuario. Durante este tutorial, CloudShell es tu ordenador de desarrollo y es donde configuras AWS los recursos y servicios. Elimine este usuario después de completar el tutorial.

**nota**  
No utilice el usuario raíz para este tutorial. Debe crear un usuario independiente o, de lo contrario, podría tener problemas al realizar acciones en la AWS Command Line Interface (CLI) más adelante.

Para obtener más información sobre los usuarios del IAM Identity Center CloudShell, consulte la Guía del *AWS IAM Identity Center usuario y la Guía AWS CloudShell * *del usuario*. 

**Creación de un rol de IAM Identity Center**

1. Inicie sesión en Consola de administración de AWS y abra la AWS IAM Identity Center consola en [https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/).
**nota**  
Asegúrate de iniciar sesión con el Cuenta de AWS que está conectado a tu CodeCatalyst espacio. Para comprobar qué cuenta está conectada, vaya a su espacio y elija la pestaña **Cuentas de AWS**. Para obtener más información, consulte [Creación de un espacio](spaces-create.md).

1. En el panel de navegación, elija **Users** y luego elija la opción **Add user**.

1. En **Nombre de usuario**, escriba:

   ```
   CodeCatalystECSUser
   ```

1. En **Contraseña**, elija **Generar una contraseña de un solo uso que pueda compartir con este usuario**.

1. En **Dirección de correo electrónico** y **Confirmar dirección de correo electrónico**, introduzca una dirección de correo electrónico que no exista aún en IAM Identity Center.

1. En **Nombre** y **Apellidos**, introduzca:

   ```
   CodeCatalystECSUser
   ```

1. En **Nombre de visualización**, mantenga el nombre generado automáticamente:

   ```
   CodeCatalystECSUser CodeCatalystECSUser
   ```

1. Elija **Siguiente**.

1. En la página **Agregar usuarios a grupos**, elija **Siguiente**.

1. En la página **Revisar y agregar usuario**, compruebe la información que ha introducido y seleccione **Agregar usuario**.

   Aparece el cuadro de diálogo **Contraseña de un solo uso**.

1. Seleccione **Copiar** y, a continuación, pegue la información de inicio de sesión, incluida la URL del portal de acceso de AWS y la contraseña de un solo uso.

1. Seleccione **Cerrar**.

**Creación de un conjunto de permisos**

Asignará este conjunto de permisos a `CodeCatalystECSUser` más adelante.

1. En el panel de navegación, elija **Conjuntos de permisos** y, a continuación, elija **Crear conjunto de permisos**.

1. Elija un conjunto de **permisos predefinido** y, a continuación, seleccione **AdministratorAccess**. Esta política concede permisos completos a todos los Servicios de AWS. 

1. Elija **Siguiente**.

1. En **Nombre del conjunto de permisos**, introduzca:

   ```
   CodeCatalystECSPermissionSet
   ```

1. Elija **Siguiente**.

1. En la página **Revisión**, revise la información y, a continuación, elija **Crear grupo**.

**Para asignar el conjunto de permisos a CodeCatalyst ECSUser**

1. En el panel de navegación, elija y **Cuentas de AWS**, a continuación, active la casilla de verificación situada junto a la casilla en la Cuenta de AWS que ha iniciado sesión actualmente.

1. Seleccione **Asignar usuarios o grupos**.

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

1. Seleccione la casilla situada junto a `CodeCatalystECSUser`.

1. Elija **Siguiente**.

1. Seleccione la casilla situada junto a `CodeCatalystECSPermissionSet`.

1. Elija **Siguiente**.

1. Revise la información y seleccione **Enviar**.

   Ahora tienes asignada `CodeCatalystECSUser` y `CodeCatalystECSPermissionSet` a la tuya Cuenta de AWS, uniéndolas.

**Para cerrar sesión y volver a iniciarla como CodeCatalyst ECSUser**

1. Antes de cerrar sesión, asegúrese de tener la URL del portal de AWS acceso, así como el nombre de usuario y la contraseña de un solo uso`CodeCatalystECSUser`. Debería haber copiado esta información en un editor de texto anteriormente.
**nota**  
Si no dispone de esta información, vaya a la página de detalles de `CodeCatalystECSUser` en IAM Identity Center, elija **Restablecer contraseña**, **Generar una contraseña de un solo uso [...]** y de nuevo **Restablecer contraseña** para que aparezca la información en la pantalla.

1. Cerrar sesión en AWS.

1. Pegue la URL del portal de AWS acceso en la barra de direcciones del navegador.

1. Inicie sesión con el nombre de usuario y la contraseña de un solo uso de `CodeCatalystECSUser`.

1. En **Nueva contraseña**, introduzca una contraseña y elija **Establecer nueva contraseña**.

   Aparece un cuadro de **Cuenta de AWS** en la pantalla.

1. Elija y **Cuenta de AWS**, a continuación, elija el nombre del usuario Cuenta de AWS al que ha asignado el conjunto de permisos y el `CodeCatalystECSUser` usuario.

1. Junto a `CodeCatalystECSPermissionSet`, seleccione **Consola de administración**.

    Consola de administración de AWS Aparece el. Ahora ha iniciado sesión como `CodeCatalystECSUser` con los permisos correspondientes.

**Para lanzar una AWS CloudShell instancia**

1. Pues `CodeCatalystECSUser` bien, en la barra de navegación superior, selecciona el AWS icono (![\[AWS icon\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/images/deploy/aws-logo.png)).

    Consola de administración de AWS Aparece la página principal del.

1. En la barra de navegación superior, selecciona el AWS CloudShell icono (![\[CloudShell icon\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/images/deploy/CloudShell.png)).

   CloudShell se abre. Espere a que se cree el CloudShell entorno.
**nota**  
Si no ves el CloudShell icono, asegúrate de que estás en una [región compatible con CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/faq-list.html#regions-available). En este tutorial se da por sentado que está en la región de Oeste de EE. UU. (Oregón).

**Para comprobar que AWS CLI está instalado**

1. En la CloudShell terminal, introduzca:

   ```
   aws --version
   ```

1. Compruebe que aparezca una versión.

   El ya AWS CLI está configurado para el usuario actual`CodeCatalystECSUser`, por lo que no es necesario configurar AWS CLI claves y credenciales, como suele ser el caso.

## Paso 2: implementación de una aplicación de marcador de posición en Amazon ECS
<a name="deploy-tut-ecs-placeholder"></a>

En esta sección, implementará manualmente una aplicación de marcador de posición en Amazon ECS. Esta aplicación de marcador de posición se sustituirá por la aplicación Hello World implementada en su flujo de trabajo. La aplicación de marcador de posición es Apache Web Server.

Para obtener más información sobre Amazon ECS, consulte la *Guía para desarrolladores de Amazon Elastic Container Service*.

Realice la siguiente serie de procedimientos para implementar la aplicación de marcador de posición.<a name="deploy-tut-ecs-create-task-execution-role"></a>

**Creación del rol de ejecución de tareas**

Esta función otorga a Amazon ECS AWS Fargate permiso para realizar llamadas a la API en su nombre. 

1. Cree una política de confianza:

   1. En AWS CloudShell, introduzca el siguiente comando:

      ```
      cat > codecatalyst-ecs-trust-policy.json
      ```

      Aparece un mensaje parpadeante en la CloudShell terminal.

   1. En la línea de comandos, escriba el código siguiente:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
              "Service": "ecs-tasks.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

------

   1. Coloque el cursor después del último corchete (`}`).

   1. Pulse **Enter** y, a continuación, **Ctrl\$1d** para guardar el archivo y salir de cat.

1. Cree un rol de ejecución de tareas:

   ```
   aws iam create-role \
         --role-name codecatalyst-ecs-task-execution-role \
         --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
   ```

1. Adjunte la `AmazonECSTaskExecutionRolePolicy` política AWS gestionada al rol:

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-ecs-task-execution-role \
         --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
   ```

1. Muestre los detalles del rol:

   ```
   aws iam get-role \
         --role-name codecatalyst-ecs-task-execution-role
   ```

1. Anote el valor de `"Arn":` del rol (por ejemplo, `arn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role`). Necesitará este Nombre de recurso de Amazon (ARN) más adelante.

**Creación de un clúster de Amazon ECS**

Este clúster contendrá la aplicación de marcador de posición de Apache y, más adelante, la aplicación Hello World. 

1. Como`CodeCatalystECSUser`, en AWS CloudShell, crear un clúster vacío:

   ```
   aws ecs create-cluster --cluster-name codecatalyst-ecs-cluster
   ```

1. (Opcional) Compruebe que el clúster se haya creado correctamente:

   ```
   aws ecs list-clusters
   ```

   El ARN del clúster de `codecatalyst-ecs-cluster` debe aparecer en la lista, lo que indica que la creación se ha realizado correctamente.

**Creación de un nuevo archivo de definición de tareas**

El archivo de definición de tareas indica que se debe ejecutar la imagen Docker (`httpd:2.4`) [del servidor web Apache 2.4](https://hub.docker.com/_/httpd), de la que se extrae DockerHub.

1. Como`CodeCatalystECSUser`, en AWS CloudShell, crear un archivo de definición de tareas:

   ```
   cat > taskdef.json
   ```

1. En la línea de comandos, pegue el código siguiente:

   ```
   {
       "executionRoleArn": "arn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role",
       "containerDefinitions": [
           {
               "name": "codecatalyst-ecs-container",
               "image": "httpd:2.4",
               "essential": true,
               "portMappings": [
                   {
                       "hostPort": 80,
                       "protocol": "tcp",
                       "containerPort": 80
                   }
               ]
           }
       ],
       "requiresCompatibilities": [
           "FARGATE"
       ],
       "cpu": "256",
       "family": "codecatalyst-ecs-task-def",
       "memory": "512",
       "networkMode": "awsvpc"
   }
   ```

   En el código anterior, sustituya *arn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role*

   por el ARN del rol de ejecución de tareas que anotó en [Creación del rol de ejecución de tareas](#deploy-tut-ecs-create-task-execution-role).

1. Coloque el cursor después del último corchete (`}`).

1. Pulse **Enter** y, a continuación, **Ctrl\$1d** para guardar el archivo y salir de cat.

**Registro del archivo de definición de tareas con Amazon ECS**

1. Como`CodeCatalystECSUser`, en AWS CloudShell, registre la definición de la tarea:

   ```
   aws ecs register-task-definition \
       --cli-input-json file://taskdef.json
   ```

1. (Opcional) Compruebe que se haya registrado la definición de la tareas:

   ```
   aws ecs list-task-definitions
   ```

   La definición de tareas `codecatalyst-ecs-task-def` debe aparecer en la lista.

**Creación de un servicio de Amazon ECS**

El servicio Amazon ECS ejecuta las tareas (y los contenedores de Docker asociados) de la aplicación de marcador de posición Apache y, posteriormente, de la aplicación Hello World.

1. Como `CodeCatalystECSUser`, cambie a la consola de Amazon Elastic Container Service si aún no lo ha hecho.

1. Elija el clúster que creó anteriormente, `codecatalyst-ecs-cluster`.

1. En la pestaña **Servicios**, elija **Crear**.

1. En la página **Crear**, haga lo siguiente:

   1. Mantenga todas las opciones predeterminadas excepto las que se indican a continuación.

   1. En **Launch type (Tipo de lanzamiento)**, elija **FARGATE**.

   1. En **Definición de tarea**, en la lista desplegable **Familia**, elija:

      `codecatalyst-ecs-task-def`

   1. En **Nombre del servicio**, escriba:

      ```
      codecatalyst-ecs-service
      ```

   1. En **Tareas deseadas**, escriba:

      ```
      3
      ```

      En este tutorial, cada tarea lanza un único contenedor de Docker.

   1. Expanda la sección **Redes**.

   1. En **VPC**, elija cualquier VPC.

   1. En **Subredes**, elija cualquier subred.
**nota**  
Especifique solo una subred. Eso es todo lo que se necesita para este tutorial.
**nota**  
Si no dispone de una VPC ni una subred, créelas. Consulte [Crear una VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#Create-VPC) y [Crear una subred en la VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet) en la *Guía del usuario de Amazon VPC*.

   1. En **Grupo de seguridad**, elija **Crear un nuevo grupo de seguridad** y, a continuación, haga lo siguiente:

      1. En **Nombre del grupo de seguridad**, introduzca:

         ```
         codecatalyst-ecs-security-group
         ```

      1. En **Descripción del grupo de seguridad**, introduzca:

         ```
         CodeCatalyst ECS security group
         ```

      1. Seleccione **Agregar regla**. En **Tipo**, elija **HTTP** y, en **Origen**, elija **Cualquier lugar**.

   1. En la parte inferior, elija **Crear**.

   1. Espere a que se cree el servicio. Puede que tarde unos minutos.

1. Elija la pestaña **Tareas** y, a continuación, elija el botón Actualizar. Compruebe que la columna **Último estado** de las tres tareas esté establecida en **En ejecución**.

**(Opcional) Comprobación de que la aplicación de marcador de posición de Apache se esté ejecutando**

1. En la pestaña **Tareas**, elija una de las tres tareas.

1. En el campo **IP pública**, elija **dirección abierta**.

   Aparecerá una página `It Works!` Esto indica que el servicio de Amazon ECS inició correctamente una tarea que lanzó un contenedor de Docker con la imagen de Apache.

   En este punto del tutorial, ha implementado manualmente un clúster, un servicio y una definición de tareas de Amazon ECS, además de una aplicación de marcador de posición de Apache. Con todos estos elementos listos, ya puede crear un flujo de trabajo que sustituya la aplicación de marcador de posición de Apache por la aplicación Hello World del tutorial.

## Paso 3: creación de un repositorio de imágenes de Amazon ECR
<a name="deploy-tut-ecs-ecr"></a>

En esta sección, creará un repositorio de imágenes privado en Amazon Elastic Container Registry (Amazon ECR). Este repositorio almacena la imagen de Docker del tutorial, que sustituirá a la imagen de marcador de posición de Apache que implementó anteriormente. 

Para obtener más información sobre Amazon ECR, consulte la *Guía del usuario de Amazon Elastic Container Registry*.

**Creación de un repositorio de imágenes en Amazon ECR**

1. Como`CodeCatalystECSUser`, en AWS CloudShell, crear un repositorio vacío en Amazon ECR:

   ```
   aws ecr create-repository --repository-name codecatalyst-ecs-image-repo
   ```

1. Muestre los detalles del repositorio de Amazon ECR:

   ```
   aws ecr describe-repositories \
         --repository-names codecatalyst-ecs-image-repo
   ```

1. Anote el valor de `“repositoryUri”:` (por ejemplo, `111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo`).

   Lo necesitará más adelante cuando añada el repositorio a su flujo de trabajo. 

## Paso 4: Crear roles AWS
<a name="deploy-tut-ecs-build-deploy-roles"></a>

En esta sección, creará las funciones de AWS IAM que necesitará su CodeCatalyst flujo de trabajo para funcionar. Estos roles son:
+ **Función de creación**: concede a la acción de CodeCatalyst creación (en el flujo de trabajo) permiso para acceder a su AWS cuenta y escribir en Amazon ECR y Amazon EC2.
+ **Función de implementación**: otorga **a la acción CodeCatalyst Implementar en ECS** (en el flujo de trabajo) el permiso para acceder a su AWS cuenta, Amazon ECS y algunos otros AWS servicios.

Para obtener más información sobre los roles de IAM, consulte [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) en la *Guía del usuario de AWS Identity and Access Management *.

**nota**  
Para ahorrar tiempo, puede crear un único rol, denominado rol `CodeCatalystWorkflowDevelopmentRole-spaceName`, en lugar de los dos roles indicados anteriormente. Para obtener más información, consulte [Creación del rol **CodeCatalystWorkflowDevelopmentRole-*spaceName*** para su cuenta y su espacio](ipa-iam-roles.md#ipa-iam-roles-service-create). Tenga en cuenta que el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` tiene permisos muy amplios, lo que puede suponer un riesgo para la seguridad. Le recomendamos que utilice este rol solo en tutoriales y situaciones en las que la seguridad no sea un problema. En este tutorial se presupone que va a crear los dos roles indicados anteriormente.

Para crear las funciones de creación e implementación, puede utilizar las funciones Consola de administración de AWS o las AWS CLI.

------
#### [ Consola de administración de AWS ]

Para crear los roles de compilación e implementación, realice la siguiente serie de procedimientos.

**Creación de un rol de compilación**

1. Cree una política para el rol del modo siguiente:

   1. Inicie sesión en AWS.

   1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. En el panel de navegación, seleccione **Políticas**.

   1. Elija **Crear política**.

   1. Seleccione la pestaña **JSON**.

   1. Elimine el código existente.

   1. Pegue el siguiente código:

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "ecr:*",
                      "ec2:*"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------
**nota**  
La primera vez que utilice el rol para ejecutar acciones de flujo de trabajo, use el comodín en la instrucción de política de recursos y, a continuación, precise el ámbito de la política con el nombre del recurso cuando esté disponible.  

      ```
      "Resource": "*"
      ```

   1. Elija **Siguiente: Etiquetas**.

   1. Elija **Siguiente: Revisar**.

   1. En **Nombre**, escriba:

      ```
      codecatalyst-ecs-build-policy
      ```

   1. Elija **Crear política**.

      Ahora ha creado una política de permisos.

1. Cree el rol de compilación de la siguiente manera:

   1. En el panel de navegación, seleccione **Roles** y luego seleccione **Crear rol**.

   1. Elija **Política de confianza personalizada**.

   1. Elimine la política de confianza personalizada existente.

   1. Añada la siguiente política de confianza personalizada:

   1. Elija **Siguiente**.

   1. En **Políticas de permisos**, busque `codecatalyst-ecs-build-policy` y active su casilla de verificación.

   1. Elija **Siguiente**.

   1. En **Nombre del rol**, escriba:

      ```
      codecatalyst-ecs-build-role
      ```

   1. En **Descripción del rol**, escriba:

      ```
      CodeCatalyst ECS build role
      ```

   1. Elija **Crear rol**.

   Ahora ha creado un rol de compilación con una política de permisos y una política de confianza.

1. Obtenga el ARN del rol de compilación de la siguiente manera:

   1. Seleccione **Roles** en el panel de navegación.

   1. En el cuadro de búsqueda, introduzca el nombre del rol que acaba de crear (`codecatalyst-ecs-build-role`).

   1. Elija el rol de la lista.

      Aparece la página **Resumen** del rol.

   1. En la parte superior, copie el valor de **ARN**. Lo necesitará más adelante.

**Creación de un rol de implementación**

1. Cree una política para el rol del modo siguiente:

   1. Inicie sesión en AWS.

   1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. En el panel de navegación, seleccione **Políticas**.

   1. Seleccione **Crear política**.

   1. Seleccione la pestaña **JSON**.

   1. Elimine el código existente.

   1. Pegue el siguiente código:

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [{
          "Action":[
            "ecs:DescribeServices",
            "ecs:CreateTaskSet",
            "ecs:DeleteTaskSet",
            "ecs:ListClusters",
            "ecs:RegisterTaskDefinition",
            "ecs:UpdateServicePrimaryTaskSet",
            "ecs:UpdateService",
            "elasticloadbalancing:DescribeTargetGroups",
            "elasticloadbalancing:DescribeListeners",
            "elasticloadbalancing:ModifyListener",
            "elasticloadbalancing:DescribeRules",
            "elasticloadbalancing:ModifyRule",
            "lambda:InvokeFunction",
            "lambda:ListFunctions",
            "cloudwatch:DescribeAlarms",
            "sns:Publish",
            "sns:ListTopics", 
            "s3:GetObject",
            "s3:GetObjectVersion",
            "codedeploy:CreateApplication", 
            "codedeploy:CreateDeployment", 
            "codedeploy:CreateDeploymentGroup", 
            "codedeploy:GetApplication", 
            "codedeploy:GetDeployment", 
            "codedeploy:GetDeploymentGroup", 
            "codedeploy:ListApplications", 
            "codedeploy:ListDeploymentGroups", 
            "codedeploy:ListDeployments", 
            "codedeploy:StopDeployment", 
            "codedeploy:GetDeploymentTarget", 
            "codedeploy:ListDeploymentTargets", 
            "codedeploy:GetDeploymentConfig", 
            "codedeploy:GetApplicationRevision", 
            "codedeploy:RegisterApplicationRevision", 
            "codedeploy:BatchGetApplicationRevisions", 
            "codedeploy:BatchGetDeploymentGroups", 
            "codedeploy:BatchGetDeployments", 
            "codedeploy:BatchGetApplications", 
            "codedeploy:ListApplicationRevisions", 
            "codedeploy:ListDeploymentConfigs", 
            "codedeploy:ContinueDeployment"           
         ],
         "Resource":"*",
         "Effect":"Allow"
      },{"Action":[
            "iam:PassRole"
         ],
         "Effect":"Allow",
         "Resource":"*",
         "Condition":{"StringLike":{"iam:PassedToService":[
                  "ecs-tasks.amazonaws.com",
                  "codedeploy.amazonaws.com"
               ]
            }
         }
      }]
      }
      ```

------
**nota**  
La primera vez que utilice el rol para ejecutar acciones de flujo de trabajo, use el comodín en la instrucción de política de recursos. A continuación, puede delimitar la política con el nombre del recurso una vez que esté disponible.  

      ```
      "Resource": "*"
      ```

   1. Elija **Siguiente: Etiquetas**.

   1. Elija **Siguiente: Revisar**.

   1. En **Nombre**, escriba:

      ```
      codecatalyst-ecs-deploy-policy
      ```

   1. Elija **Crear política**.

      Ahora ha creado una política de permisos.

1. Cree el rol de implementación de la siguiente manera:

   1. En el panel de navegación, seleccione **Roles** y luego seleccione **Crear rol**.

   1. Elija **Política de confianza personalizada**.

   1. Elimine la política de confianza personalizada existente.

   1. Añada la siguiente política de confianza personalizada:

   1. Elija **Siguiente**.

   1. En **Políticas de permisos**, busque `codecatalyst-ecs-deploy-policy` y active su casilla de verificación.

   1. Elija **Siguiente**.

   1. En **Nombre del rol**, escriba:

      ```
      codecatalyst-ecs-deploy-role
      ```

   1. En **Descripción del rol**, escriba:

      ```
      CodeCatalyst ECS deploy role
      ```

   1. Elija **Crear rol**.

   Ahora ha creado un rol de implementación con una política de confianza.

1. Obtenga el ARN del rol de implementación de la siguiente manera:

   1. Seleccione **Roles** en el panel de navegación.

   1. En el cuadro de búsqueda, introduzca el nombre del rol que acaba de crear (`codecatalyst-ecs-deploy-role`).

   1. Elija el rol de la lista.

      Aparece la página **Resumen** del rol.

   1. En la parte superior, copie el valor de **ARN**. Lo necesitará más adelante.

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

Para crear los roles de compilación e implementación, realice la siguiente serie de procedimientos.

**Creación de una política de confianza para ambos roles**

Al `CodeCatalystECSUser` iniciar sesión AWS CloudShell, cree un archivo de política de confianza:

1. Cree el archivo:

   ```
   cat > codecatalyst-ecs-trust-policy.json
   ```

1. En la línea de comandos del terminal, pegue el código siguiente:

1. Coloque el cursor después del último corchete (`}`).

1. Pulse **Enter** y, a continuación, **Ctrl\$1d** para guardar el archivo y salir de cat.

**Creación de la política y el rol de compilación**

1. Cree la política de compilación:

   1. Como`CodeCatalystECSUser`, en AWS CloudShell, crea un archivo de políticas de compilación:

      ```
      cat > codecatalyst-ecs-build-policy.json
      ```

   1. En la línea de comandos, escriba el código siguiente:

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "ecr:*",
                      "ec2:*"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. Coloque el cursor después del último corchete (`}`).

   1. Pulse **Enter** y, a continuación, **Ctrl\$1d** para guardar el archivo y salir de cat.

1. Añada la política de compilación a AWS:

   ```
   aws iam create-policy \
       --policy-name codecatalyst-ecs-build-policy \
       --policy-document file://codecatalyst-ecs-build-policy.json
   ```

1. En el resultado del comando, anote el valor de `"arn":` (por ejemplo, `arn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy`). Necesitará este ARN más adelante.

1. Cree un rol de compilación y asóciele una política de confianza:

   ```
   aws iam create-role \
         --role-name codecatalyst-ecs-build-role \
         --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
   ```

1. Asocie la política de compilación al rol de compilación:

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-ecs-build-role \
         --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy
   ```

   Where *arn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy* se sustituye por el ARN de la política de construcción que mencionaste anteriormente.

1. Muestre los detalles del rol de compilación:

   ```
   aws iam get-role \
         --role-name codecatalyst-ecs-build-role
   ```

1. Anote el valor de `"Arn":` del rol (por ejemplo, `arn:aws:iam::111122223333:role/codecatalyst-ecs-build-role`). Necesitará este ARN más adelante.

**Creación de una política y un rol de implementación**

1. Cree una política de implementación:

   1. En AWS CloudShell, cree un archivo de política de despliegue:

      ```
      cat > codecatalyst-ecs-deploy-policy.json
      ```

   1. En la línea de comandos, escriba el código siguiente:

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [{
          "Action":[
            "ecs:DescribeServices",
            "ecs:CreateTaskSet",
            "ecs:DeleteTaskSet",
            "ecs:ListClusters",
            "ecs:RegisterTaskDefinition",
            "ecs:UpdateServicePrimaryTaskSet",
            "ecs:UpdateService",
            "elasticloadbalancing:DescribeTargetGroups",
            "elasticloadbalancing:DescribeListeners",
            "elasticloadbalancing:ModifyListener",
            "elasticloadbalancing:DescribeRules",
            "elasticloadbalancing:ModifyRule",
            "lambda:InvokeFunction",
            "lambda:ListFunctions",
            "cloudwatch:DescribeAlarms",
            "sns:Publish",
            "sns:ListTopics", 
            "s3:GetObject",
            "s3:GetObjectVersion",
            "codedeploy:CreateApplication", 
            "codedeploy:CreateDeployment", 
            "codedeploy:CreateDeploymentGroup", 
            "codedeploy:GetApplication", 
            "codedeploy:GetDeployment", 
            "codedeploy:GetDeploymentGroup", 
            "codedeploy:ListApplications", 
            "codedeploy:ListDeploymentGroups", 
            "codedeploy:ListDeployments", 
            "codedeploy:StopDeployment", 
            "codedeploy:GetDeploymentTarget", 
            "codedeploy:ListDeploymentTargets", 
            "codedeploy:GetDeploymentConfig", 
            "codedeploy:GetApplicationRevision", 
            "codedeploy:RegisterApplicationRevision", 
            "codedeploy:BatchGetApplicationRevisions", 
            "codedeploy:BatchGetDeploymentGroups", 
            "codedeploy:BatchGetDeployments", 
            "codedeploy:BatchGetApplications", 
            "codedeploy:ListApplicationRevisions", 
            "codedeploy:ListDeploymentConfigs", 
            "codedeploy:ContinueDeployment"           
         ],
         "Resource":"*",
         "Effect":"Allow"
      },{"Action":[
            "iam:PassRole"
         ],
         "Effect":"Allow",
         "Resource":"*",
         "Condition":{"StringLike":{"iam:PassedToService":[
                  "ecs-tasks.amazonaws.com",
                  "codedeploy.amazonaws.com"
               ]
            }
         }
      }]
      }
      ```

------
**nota**  
La primera vez que utilice el rol para ejecutar acciones de flujo de trabajo, use el comodín en la instrucción de política de recursos y, a continuación, precise el ámbito de la política con el nombre del recurso cuando esté disponible.  

      ```
      "Resource": "*"
      ```

   1. Coloque el cursor después del último corchete (`}`).

   1. Pulse **Enter** y, a continuación, **Ctrl\$1d** para guardar el archivo y salir de cat.

1. Añada la política de despliegue a AWS:

   ```
   aws iam create-policy \
       --policy-name codecatalyst-ecs-deploy-policy \
       --policy-document file://codecatalyst-ecs-deploy-policy.json
   ```

1. En el resultado del comando, anote el valor de `"arn":` de la política de implementación (por ejemplo, `arn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy`). Necesitará este ARN más adelante.

1. Cree un rol de implementación y asóciele una política de confianza:

   ```
   aws iam create-role \
         --role-name codecatalyst-ecs-deploy-role \
         --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
   ```

1. Adjunte la política de implementación a la función de implementación, donde *arn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy* se reemplaza por el ARN de la política de implementación que indicó anteriormente.

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-ecs-deploy-role \
         --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy
   ```

1. Muestre los detalles del rol de implementación:

   ```
   aws iam get-role \
         --role-name codecatalyst-ecs-deploy-role
   ```

1. Anote el valor de `"Arn":` del rol (por ejemplo, `arn:aws:iam::111122223333:role/codecatalyst-ecs-deploy-role`). Necesitará este ARN más adelante.

------

## Paso 5: Añadir AWS funciones a CodeCatalyst
<a name="deploy-tut-ecs-import-roles"></a>

En este paso, debe añadir el rol de compilación (`codecatalyst-ecs-build-role`) y el rol de implementación (`codecatalyst-ecs-deploy-role`) a la conexión de CodeCatalyst cuentas de su espacio.

**Incorporación de roles de compilación e implementación a la conexión de cuenta**

1. En CodeCatalyst, navega hasta tu espacio.

1. Elija **Cuentas de AWS **. Aparecerá una lista de conexiones de cuenta.

1. Elija la conexión de cuenta que represente la AWS cuenta en la que creó sus funciones de creación e implementación.

1. Seleccione **Administrar roles en la consola de AWS administración**.

   Aparece la página **Añadir función de IAM a Amazon CodeCatalyst Space**. Es posible que tenga que iniciar sesión para acceder a la página.

1. Seleccione **Agregar un rol existente que haya creado en IAM**.

   Se muestra una lista desplegable. La lista muestra todos los roles de IAM con una política de confianza que incluye las entidades principales de los servicios `codecatalyst-runner.amazonaws.com` y `codecatalyst.amazonaws.com`.

1. En la lista desplegable, elija `codecatalyst-ecs-build-role` y, a continuación, elija **Agregar rol**.
**nota**  
Si aparece `The security token included in the request is invalid`, es posible que se deba a que no tiene los permisos adecuados. Para solucionar este problema, cierra sesión AWS como vuelve a iniciar sesión con la AWS cuenta que utilizaste al crear tu CodeCatalyst espacio.

1. Seleccione **Agregar rol de IAM**, seleccione **Agregar un rol existente que haya creado en IAM** y, en la lista desplegable, elija `codecatalyst-ecs-deploy-role`. Seleccione **Add role (Añadir rol)**.

   Ahora ha añadido los roles de compilación e implementación a su espacio.

1. Copia el valor del **nombre CodeCatalyst mostrado de Amazon**. Necesitará este valor más adelante, cuando cree el flujo de trabajo.

## Paso 6: creación de un repositorio de código fuente
<a name="deploy-tut-ecs-source-repo"></a>

En este paso, crearás un repositorio de origen en CodeCatalyst. Este repositorio almacena los archivos de código fuente del tutorial, como el archivo de definición de tareas.

Para obtener más información sobre los repositorios de código fuente, consulte [Creación de un repositorio de código fuente](source-repositories-create.md).

**Creación de un repositorio de código fuente**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Vaya a su proyecto, `codecatalyst-ecs-project`.

1. En el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**. 

1. Elija **Agregar repositorio** y, a continuación, elija **Crear repositorio**.

1. En **Nombre del repositorio**, escriba:

   ```
   codecatalyst-ecs-source-repository
   ```

1. Seleccione **Crear**.

## Paso 7: incorporación de archivos de código fuente
<a name="deploy-tut-ecs-source-files"></a>

En esta sección, agregas los archivos fuente de Hello World a tu CodeCatalyst repositorio,`codecatalyst-ecs-source-repository`. Constan de:
+ Un archivo `index.html`: muestra un mensaje Hello World en el navegador. 
+ Un Dockerfile: describe la imagen base que se va a usar para la imagen de Docker y los comandos de Docker que se le aplicarán. 
+ Un archivo `taskdef.json`: define la imagen de Docker que se utilizará al lanzar tareas en el clúster.

La estructura de carpetas es la siguiente:

```
.
|— public-html
|  |— index.html
|— Dockerfile
|— taskdef.json
```

**nota**  
Las siguientes instrucciones le muestran cómo añadir los archivos mediante la CodeCatalyst consola, pero puede utilizar Git si lo prefiere. Para obtener más información, consulte [Clonación de un repositorio de código fuente](source-repositories-clone.md). 

**Topics**
+ [

### index.html
](#deploy-tut-ecs-source-files-index)
+ [

### Dockerfile
](#deploy-tut-ecs-source-files-dockerfile)
+ [

### taskdef.json
](#deploy-tut-ecs-source-files-taskdef)

### index.html
<a name="deploy-tut-ecs-source-files-index"></a>

El archivo `index.html` muestra un mensaje Hello World en el navegador. 

**Adición del archivo index.html**

1. En la CodeCatalyst consola, ve a tu repositorio de código fuente,`codecatalyst-ecs-source-repository`.

1. En **Archivos**, elija **Crear archivo**.

1. En **Nombre del archivo**, escriba:

   ```
   public-html/index.html
   ```
**importante**  
Asegúrese de incluir el prefijo `public-html/` para crear una carpeta con el mismo nombre. Se espera que el archivo `index.html` esté en esta carpeta.

1. En el cuadro de texto, introduzca el siguiente código:

   ```
   <html>
     <head>
       <title>Hello World</title>
       <style>
         body {
         background-color: black;
         text-align: center;
         color: white;
         font-family: Arial, Helvetica, sans-serif;
         }  
       </style>
     </head>
     <body>
       <h1>Hello World</h1>
     </body>
   </html>
   ```

1. Seleccione **Confirmar** y, a continuación, vuelva a seleccionar **Confirmar**.

   El archivo `index.html` se añade al repositorio en una carpeta `public-html`. 

### Dockerfile
<a name="deploy-tut-ecs-source-files-dockerfile"></a>

El Dockerfile describe la imagen base que se va a usar para la imagen de Docker y los comandos de Docker que se le aplicarán. Para obtener más información acerca del Dockerfile, consulte la [Referencia de Dockerfile](https://docs.docker.com/engine/reference/builder/).

El Dockerfile especificado aquí indica que se debe usar la imagen base de Apache 2.4 (`httpd`). También incluye instrucciones para copiar un archivo de código fuente llamado `index.html` en una carpeta del servidor de Apache que sirve páginas web. La instrucción `EXPOSE` del Dockerfile indica a Docker que el contenedor está escuchando en el puerto 80.

**Adición del Dockerfile**

1. En el repositorio de código fuente, seleccione **Crear archivo**.

1. En **Nombre del archivo**, escriba:

   ```
   Dockerfile
   ```

   No incluya la extensión del archivo.
**importante**  
El Dockerfile debe residir en la carpeta raíz de su repositorio. El comando `Docker build` del flujo de trabajo espera que esté ahí.

1. En el cuadro de texto, introduzca el siguiente código:

   ```
   FROM httpd:2.4
   COPY ./public-html/index.html /usr/local/apache2/htdocs/index.html
   EXPOSE 80
   ```

1. Seleccione **Confirmar** y, a continuación, vuelva a seleccionar **Confirmar**.

   El Dockerfile se añade a su repositorio. 

### taskdef.json
<a name="deploy-tut-ecs-source-files-taskdef"></a>

El archivo `taskdef.json` que añade en este paso es el mismo que ya especificó en [Paso 2: implementación de una aplicación de marcador de posición en Amazon ECS](#deploy-tut-ecs-placeholder) con la siguiente diferencia:

En lugar de especificar un nombre de imagen de Docker codificado en el campo `image:` (`httpd:2.4`), la definición de tarea utiliza aquí un par de variables para indicar la imagen: `$REPOSITORY_URI` y `$IMAGE_TAG`. Estas variables se sustituirán por valores reales generados por la acción de compilación del flujo de trabajo cuando ejecute el flujo de trabajo en un paso posterior.

Para obtener información detallada sobre los parámetros de definición de tareas, consulte [Parámetros de definición de tareas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

**Adición del archivo taskdef.json**

1. En el repositorio de código fuente, seleccione **Crear archivo**.

1. En **Nombre del archivo**, escriba:

   ```
   taskdef.json
   ```

1. En el cuadro de texto, introduzca el siguiente código:

   ```
   {
       "executionRoleArn": "arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role",
       "containerDefinitions": [
           {
               "name": "codecatalyst-ecs-container",
               # The $REPOSITORY_URI and $IMAGE_TAG variables will be replaced 
               # by the workflow at build time (see the build action in the 
               # workflow)
               "image": $REPOSITORY_URI:$IMAGE_TAG,
               "essential": true,
               "portMappings": [
                   {
                       "hostPort": 80,
                       "protocol": "tcp",
                       "containerPort": 80
                   }
               ]
           }
       ],
       "requiresCompatibilities": [
           "FARGATE"
       ],
       "networkMode": "awsvpc",
       "cpu": "256",
       "memory": "512",
       "family": "codecatalyst-ecs-task-def"
   }
   ```

   En el código anterior, sustituya:

   *arn:aws:iam::account\$1ID:role/codecatalyst-ecs-task-execution-role*

   por el ARN del rol de ejecución de tareas que anotó en [Creación del rol de ejecución de tareas](#deploy-tut-ecs-create-task-execution-role).

1. Seleccione **Confirmar** y, a continuación, vuelva a seleccionar **Confirmar**.

   El archivo `taskdef.json` se añade a su repositorio. 

## Paso 8: creación y ejecución de un flujo de trabajo
<a name="deploy-tut-ecs-workflow"></a>

En este paso, creará un flujo de trabajo que toma los archivos de código fuente, los compila en una imagen de Docker y, a continuación, implementa la imagen en su clúster de Amazon ECS. Esta implementación reemplaza a la aplicación de marcador de posición de Apache existente.

El flujo de trabajo consta de los siguientes componentes que se ejecutarán en orden:
+ Un desencadenador: este desencadenador inicia la ejecución automática del flujo de trabajo cuando se introduce un cambio en el repositorio de código fuente. Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).
+ Una acción de compilación (`BuildBackend`): al activarse, la acción crea la imagen de Docker mediante el Dockerfile y envía la imagen a Amazon ECR. La acción de compilación también actualiza el `image` con el valor del campo `taskdef.json` correcto y, a continuación, crea un artefacto de salida de este archivo. Este artefacto se utiliza como entrada para la acción de implementación, que es la siguiente.

  Para obtener más información sobre la acción de compilación, consulte [Compilación con flujos de trabajo](build-workflow-actions.md).
+ Una acción de implementación (`DeployToECS`): al completarse la acción de compilación, la acción de implementación busca el artefacto de salida generado por la acción de compilación (`TaskDefArtifact`), encuentra el archivo `taskdef.json` que contiene y lo registra en el servicio de Amazon ECS. A continuación, el servicio sigue las instrucciones del archivo `taskdef.json` para ejecutar las tres tareas de Amazon ECS (y los contenedores de Docker de Hello World asociados) dentro del clúster de Amazon ECS. 

**Creación de un flujo de trabajo**

1. **En la CodeCatalyst consola, en el panel de navegación, elija **CI/CD** y, a continuación, elija Flujos de trabajo.**

1. Seleccione **Crear flujo de trabajo**.

1. En **Repositorio de código fuente**, elija `codecatalyst-ecs-source-repository`.

1. En **Ramificación**, elija `main`.

1. Seleccione **Crear**.

1. Elimine el código de ejemplo de YAML.

1. Añada el código de YAML siguiente:
**nota**  
En el código de YAML que se muestra a continuación, puede omitir las secciones `Connections:` si lo desea. Si omite estas secciones, debe asegurarse de que el rol especificado en el campo **Rol de IAM predeterminado** del entorno incluya los permisos y las políticas de confianza de ambos roles que se describen en [Paso 5: Añadir AWS funciones a CodeCatalyst](#deploy-tut-ecs-import-roles). Para obtener más información sobre cómo configurar un entorno con un rol de IAM predeterminado, consulte [Creación de un entorno](deploy-environments-creating-environment.md).

   ```
   Name: codecatalyst-ecs-workflow
   SchemaVersion: 1.0
   
   Triggers:
     - Type: PUSH
       Branches:
         - main
   Actions:
     BuildBackend:
       Identifier: aws/build@v1
       Environment:
         Name: codecatalyst-ecs-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-ecs-build-role
       Inputs:
         Sources:
           - WorkflowSource
         Variables:
           - Name: REPOSITORY_URI
             Value: 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo
           - Name: IMAGE_TAG
             Value: ${WorkflowSource.CommitId}
       Configuration:
         Steps:
           #pre_build:
           - Run: echo Logging in to Amazon ECR...
           - Run: aws --version
           - Run: aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-west-2.amazonaws.com
           #build:
           - Run: echo Build started on `date`
           - Run: echo Building the Docker image...
           - Run: docker build -t $REPOSITORY_URI:latest .
           - Run: docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
           #post_build:
           - Run: echo Build completed on `date`
           - Run: echo Pushing the Docker images...
           - Run: docker push $REPOSITORY_URI:latest
           - Run: docker push $REPOSITORY_URI:$IMAGE_TAG
           # Replace the variables in taskdef.json
           - Run: find taskdef.json -type f | xargs sed -i "s|\$REPOSITORY_URI|$REPOSITORY_URI|g"
           - Run: find taskdef.json -type f | xargs sed -i "s|\$IMAGE_TAG|$IMAGE_TAG|g"
           - Run: cat taskdef.json
           # The output artifact will be a zip file that contains a task definition file.
       Outputs:
         Artifacts:
           - Name: TaskDefArtifact
             Files: 
               - taskdef.json
     DeployToECS:
       DependsOn: 
         - BuildBackend
       Identifier: aws/ecs-deploy@v1
       Environment:
         Name: codecatalyst-ecs-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-ecs-deploy-role
       Inputs:
         Sources: []
         Artifacts:
           - TaskDefArtifact
       Configuration:
         region: us-west-2
         cluster: codecatalyst-ecs-cluster
         service: codecatalyst-ecs-service
         task-definition: taskdef.json
   ```

   En el código anterior, sustituya:
   + Ambas instancias o *codecatalyst-ecs-environment* con el nombre del entorno en el que creó. [Requisitos previos](#deploy-tut-ecs-prereqs)
   + Ambas instancias *codecatalyst-account-connection* con el nombre visible de la conexión de su cuenta. El nombre de visualización puede ser un número. Para obtener más información, consulte [Paso 5: Añadir AWS funciones a CodeCatalyst](#deploy-tut-ecs-import-roles).
   + *codecatalyst-ecs-build-role*con el nombre del rol de compilación en el que creaste[Paso 4: Crear roles AWS](#deploy-tut-ecs-build-deploy-roles).
   + *111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo*(en la `Value:` propiedad) con el URI del repositorio de Amazon ECR en [Paso 3: creación de un repositorio de imágenes de Amazon ECR](#deploy-tut-ecs-ecr) el que lo creó.
   + *111122223333.dkr.ecr.us-west-2.amazonaws.com*(en el `Run: aws ecr` comando) con el URI del repositorio de Amazon ECR sin el sufijo de imagen ()`/codecatalyst-ecs-image-repo`.
   + *codecatalyst-ecs-deploy-role*con el nombre de la función de implementación en la que creó. [Paso 4: Crear roles AWS](#deploy-tut-ecs-build-deploy-roles)
   + Ambas instancias o *us-west-2* con el código de su AWS región. Para obtener una lista de códigos de región, consulte [Puntos de conexión regionales](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints) en la *Referencia general de AWS*.
**nota**  
Si decidió no crear funciones de creación e implementación, *codecatalyst-ecs-build-role* *codecatalyst-ecs-deploy-role* sustitúyalas por el nombre de la `CodeCatalystWorkflowDevelopmentRole-spaceName` función. Para obtener más información acerca de este rol, consulte [Paso 4: Crear roles AWS](#deploy-tut-ecs-build-deploy-roles).
**sugerencia**  
En lugar de utilizar los comandos `sed` y `find` que se muestran en el código del flujo de trabajo anterior para actualizar el repositorio y el nombre de la imagen, puede utilizar la acción **Representar la definición de tareas de Amazon ECS** para este fin. Para obtener más información, consulte [Modificación de una definición de tarea de Amazon ECS](render-ecs-action.md).

1. (Opcional) Seleccione **Validar** para asegurarse de que el código de YAML sea válido antes de confirmarlo.

1. Elija **Confirmar**.

1. En el cuadro de diálogo **Confirmar flujo de trabajo**, escriba lo siguiente:

   1. En **Mensaje de confirmación**, elimine el texto e introduzca:

      ```
      Add first workflow
      ```

   1. En **Repositorio**, elija `codecatalyst-ecs-source-repository`.

   1. En **Nombre de la ramificación**, elija principal.

   1. Elija **Confirmar**.

   Ahora ha creado un flujo de trabajo. La ejecución del flujo de trabajo se inicia automáticamente debido al desencadenador definido en la parte superior del flujo de trabajo. En concreto, cuando confirmó (e incorporó) el archivo `workflow.yaml` en su repositorio de código fuente, el desencadenador inició la ejecución del flujo de trabajo.

**Consulta del progreso de la ejecución del flujo de trabajo**

1. **En el panel de navegación de la CodeCatalyst consola, elija **CI/CD** y, a continuación, elija Flujos de trabajo.**

1. Elija el flujo de trabajo que acaba de crear, `codecatalyst-ecs-workflow`.

1. Elija **BuildBackend**ver el progreso de la compilación.

1. Elija **DeployToECS** para ver el progreso de la implementación.

   Para obtener más información sobre cómo ver los detalles de ejecución, consulte [Visualización del estado y los detalles de la ejecución de un flujo de trabajo](workflows-view-run.md).

**Verificación de la implementación**

1. Abra la consola clásica de Amazon ECS en [https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/).

1. Elija su clúster, `codecatalyst-ecs-cluster`.

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

1. Elija una de las tres tareas.

1. En el campo **IP pública**, elija **dirección abierta**.

   Aparece una página “Hello World” en el navegador, que indica que el servicio de Amazon ECS ha implementado correctamente la aplicación.

## Paso 9: realización de un cambio en los archivos de código fuente
<a name="deploy-tut-ecs-change"></a>

En esta sección, realizará un cambio en el archivo `index.html` de su repositorio de código fuente. Este cambio hace que el flujo de trabajo cree una nueva imagen de Docker, la etiquete con un ID de confirmación, la envíe a Amazon ECR y la implemente en Amazon ECS. 

**Cambio del archivo index.html**

1. En la CodeCatalyst consola, en el panel de navegación, elija **Código**, luego elija **Repositorios de origen** y, a continuación, `codecatalyst-ecs-source-repository` elija su repositorio.

1. Haga clic en `public-html` y luego en `index.html`.

   Aparece el contenido de `index.html`.

1. Elija **Edit (Edición de)**. 

1. En la línea 14, cambie el texto `Hello World` a `Tutorial complete!`

1. Seleccione **Confirmar** y, a continuación, vuelva a seleccionar **Confirmar**.

   La confirmación hace que se inicie una nueva ejecución del flujo de trabajo. 

1. (Opcional) Vaya a la página principal de su repositorio de código fuente, seleccione **Ver confirmaciones** y, a continuación, anote el ID de confirmación del cambio de `index.html`.

1. Observe el progreso de la implementación:

   1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

   1. Elija `codecatalyst-ecs-workflow` para ver la última ejecución.

   1. Elija **BuildBackend**y **DeployToECS** para ver el progreso de la ejecución del flujo de trabajo.

1. Compruebe que la aplicación se haya actualizado de la siguiente manera:

   1. Abra la consola clásica de Amazon ECS en [https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/).

   1. Elija su clúster, `codecatalyst-ecs-cluster`.

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

   1. Elija una de las tres tareas.

   1. En el campo **IP pública**, elija **dirección abierta**.

      Aparece una página `Tutorial complete!`

1. (Opcional) En AWS, cambie a la consola Amazon ECR y compruebe que la nueva imagen de Docker esté etiquetada con el ID de confirmación del paso 6.

## Limpieza
<a name="deploy-tut-ecs-cleanup"></a>

Limpie los archivos y servicios utilizados en este tutorial para evitar que le cobren por ellos.

En el Consola de administración de AWS, límpielo en este orden:

1. En Amazon ECS, haga lo siguiente:

   1. Elimine `codecatalyst-ecs-service`.

   1. Elimine `codecatalyst-ecs-cluster`.

   1. Anular registro `codecatalyst-ecs-task-definition`.

1. En Amazon ECR, elimine `codecatalyst-ecs-image-repo`.

1. En Amazon EC2, elimine `codecatalyst-ecs-security-group`.

1. En IAM Identity Center, elimine:

   1. `CodeCatalystECSUser`

   1. `CodeCatalystECSPermissionSet`

En la CodeCatalyst consola, limpie de la siguiente manera:

1. Elimine `codecatalyst-ecs-workflow`.

1. Elimine `codecatalyst-ecs-environment`.

1. Elimine `codecatalyst-ecs-source-repository`.

1. Elimine `codecatalyst-ecs-project`.

En este tutorial, aprendió a implementar una aplicación en un servicio de Amazon ECS mediante un CodeCatalyst flujo de trabajo y una acción de **implementación en Amazon ECS**.

# Incorporación de la acción 'Implementar en Amazon ECS'
<a name="deploy-action-ecs-adding"></a>

Siga estas instrucciones para añadir la acción **Implementar en Amazon ECS** a su flujo de trabajo. 

------
#### [ Visual ]

**Incorporación de la acción 'Implementar en Amazon ECS' con el editor visual**

1. [Abra la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busque la acción **Implementar en Amazon ECS** y realice una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija **Implementar en Amazon ECS**. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Descargar** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. En las pestañas **Entradas** y **Configuración**, complete los campos según sus necesidades. Para obtener una descripción de cada uno de los campos, consulte la [Acción 'Implementar en Amazon ECS' de YAML](deploy-action-ref-ecs.md). Esta referencia proporciona información detallada sobre cada campo (y el valor de la propiedad de YAML correspondiente) tal como aparece en el editor visual y el de YAML.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Incorporación de la acción 'Implementar en Amazon ECS' con el editor de YAML**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busque la acción **Implementar en Amazon ECS** y realice una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija **Implementar en Amazon ECS**. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Descargar** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. Modifique las propiedades del código de YAML en función de sus necesidades. Encontrará una explicación de todas las propiedades disponibles en la [Acción 'Implementar en Amazon ECS' de YAML](deploy-action-ref-ecs.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Variables de “Implementar en Amazon ECS”
<a name="deploy-action-ecs-variables"></a>

La acción **Implementar en Amazon ECS** produce y establece las siguientes variables en tiempo de ejecución. Se conocen como *variables predefinidas*.

Para obtener información sobre cómo hacer referencia a estas variables en un flujo de trabajo, consulte [Uso de variables predefinidas](workflows-using-predefined-variables.md).


| Clave | Valor | 
| --- | --- | 
|  clúster  |  El nombre del clúster de Amazon ECS en el que se implementó durante la ejecución del flujo de trabajo. Ejemplo: `codecatalyst-ecs-cluster`  | 
|  deployment-platform  |  El nombre de la plataforma de implementación. Codificado en `AWS:ECS`.  | 
|  servicio  |  El nombre del servicio de Amazon ECS en el que se implementó durante la ejecución del flujo de trabajo. Ejemplo: `codecatalyst-ecs-service`  | 
|  task-definition-arn  |  El Nombre de recurso de Amazon (ARN) de la definición de tarea que se registró durante la ejecución del flujo de trabajo. Ejemplo: `arn:aws:ecs:us-west-2:111122223333:task-definition/codecatalyst-task-def:8`El `:8` en el ejemplo anterior indica la revisión que se registró.  | 
|  deployment-url  |  Un enlace a la pestaña **Eventos** de la consola de Amazon ECS, donde puede ver los detalles de la implementación de Amazon ECS asociada a la ejecución del flujo de trabajo. Ejemplo: `https://console.aws.amazon.com/ecs/home?region=us-west-2#/clusters/codecatalyst-ecs-cluster/services/codecatalyst-ecs-service/events`  | 
|  region  |  El código de región en el Región de AWS que se implementó durante la ejecución del flujo de trabajo. Ejemplo: `us-west-2`  | 

# Acción 'Implementar en Amazon ECS' de YAML
<a name="deploy-action-ref-ecs"></a>

La siguiente es la definición en YAML de la acción **Implementar en Amazon ECS**. Para obtener información sobre cómo utilizar esta acción, consulte [Implementación en Amazon ECS con un flujo de trabajo](deploy-action-ecs.md).

Esta definición de acción existe como una sección dentro de un archivo de definición de flujo de trabajo más amplio. Para obtener más información acerca de este archivo, consulte [Definición de flujo de trabajo en YAML](workflow-reference.md).

**nota**  
La mayoría de las propiedades de YAML que se muestran a continuación tienen elementos de interfaz de usuario correspondientes en el editor visual. Para buscar un elemento de la interfaz de usuario, use **Ctrl\$1F**. El elemento aparecerá en la lista con su propiedad de YAML asociada.

```
# The workflow definition starts here.
# See Propiedades de nivel superior for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  ECSDeployAction\$1nn: 
    Identifier: aws/ecs-deploy@v1
    DependsOn:
      - build-action
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - task-definition-artifact
    Configuration: 
      region: us-east-1 
      cluster: ecs-cluster
      service: ecs-service
      task-definition: task-definition-path
      force-new-deployment: false|true
      codedeploy-appspec: app-spec-file-path
      codedeploy-application: application-name
      codedeploy-deployment-group: deployment-group-name
      codedeploy-deployment-description: deployment-description
```

## ECSDeployAction
<a name="deploy.action.ecs.name"></a>

(Obligatorio) 

Especifique el nombre de la acción. Todos los nombres de las acciones deben ser únicos dentro del flujo de trabajo. Los nombres de las acciones están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de las acciones.

Predeterminado: `ECSDeployAction_nn`.

Interfaz de usuario correspondiente: pestaña Configuración/**Nombre de visualización de la acción**

## Identifier
<a name="deploy.action.ecs.identifier"></a>

(*ECSDeployAction*/**Identifier**)

(Obligatorio)

Identifica la acción. No cambie esta propiedad a menos que desee cambiar la versión. Para obtener más información, consulte [Especificación de la versión de la acción que se va a utilizar](workflows-action-versions.md).

Predeterminado: `aws/ecs-deploy@v1`.

**Interfaz de usuario correspondiente: diagrama ECSDeploy de flujo de trabajo/action\$1nn/ aws/ecs-deploy @v1 label**

## DependsOn
<a name="deploy.action.ecs.dependson"></a>

(*ECSDeployAction*/**DependsOn**)

(Opcional)

Especifique la acción, el grupo de acciones o la puerta que debe ejecutarse correctamente para que esta acción se ejecute.

Para obtener más información sobre la funcionalidad “depende de”, consulte [Secuenciación de acciones](workflows-depends-on.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Depende de (opcional)**

## Compute
<a name="deploy.action.ecs.computename"></a>

(*ECSDeployAction*/**Compute**)

(Opcional)

El motor de computación utilizado para ejecutar las acciones del flujo de trabajo. Puede especificar el motor de computación en el nivel del flujo de trabajo o en el nivel de acción, pero no en ambos. Cuando se especifica en el nivel de flujo de trabajo, la configuración del motor de computación se aplica a todas las acciones definidas en el flujo de trabajo. En el nivel de flujo de trabajo, también puede ejecutar varias acciones en la misma instancia. Para obtener más información, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md).

Interfaz de usuario correspondiente: *ninguna*

## Type
<a name="deploy.action.ecs.computetype"></a>

(*ECSDeployAction*/Compute/**Type**)

(Obligatorio si se incluye [Compute](#deploy.action.ecs.computename))

El tipo de motor de computación. Puede utilizar uno de los siguientes valores:
+ **EC2** (editor visual) o `EC2` (editor de YAML)

  Optimizado para ofrecer flexibilidad durante las ejecuciones de acciones.
+ **Lambda** (editor visual) o `Lambda` (editor de YAML)

  Velocidades de inicio de acciones optimizadas.

Para obtener más información sobre los tipos de computación, consulte [Tipos de computación](workflows-working-compute.md#compute.types).

Interfaz de usuario correspondiente: Configuración: **opcional/tipo de** cálculo tab/Advanced 

## Fleet
<a name="deploy.action.ecs.computefleet"></a>

(*ECSDeployAction*/Compute/**Fleet**)

(Opcional)

Especifique la máquina o la flota que ejecutará el flujo de trabajo o las acciones del flujo de trabajo. Con las flotas bajo demanda, cuando se inicia una acción, el flujo de trabajo aprovisiona los recursos que necesita y las máquinas se destruyen cuando finaliza la acción. Ejemplos de flotas bajo demanda: `Linux.x86-64.Large`, `Linux.x86-64.XLarge`. Para obtener más información sobre las flotas bajo demanda, consulte [Propiedades de las flotas bajo demanda](workflows-working-compute.md#compute.on-demand).

Con las flotas aprovisionadas, configura un conjunto de máquinas dedicadas para ejecutar las acciones del flujo de trabajo. Estas máquinas permanecen inactivas, listas para procesar acciones de forma inmediata. Para obtener más información sobre las flotas aprovisionadas, consulte [Propiedades de flotas aprovisionadas](workflows-working-compute.md#compute.provisioned-fleets).

Si `Fleet` se omite, el valor predeterminado es `Linux.x86-64.Large`.

**Interfaz de usuario correspondiente: Configuración: opcional/flota de tab/Advanced cómputo**

## Timeout
<a name="deploy.action.ecs.timeout"></a>

(*ECSDeployAction*/**Timeout**)

(Opcional)

Especifique la cantidad de tiempo en minutos (editor YAML) o en horas y minutos (editor visual) que la acción puede ejecutarse antes de que CodeCatalyst finalice la acción. El mínimo es 5 minutos y el máximo se describe en [Cuotas para flujos de trabajo en CodeCatalyst](workflows-quotas.md). El tiempo de espera predeterminado es el mismo que el tiempo de espera máximo.

Interfaz de usuario correspondiente: pestaña Configuración/**Tiempo de espera (opcional)**

## Environment
<a name="deploy.action.ecs.environment"></a>

(*ECSDeployAction*/**Environment**)

(Obligatorio) 

Especifica el CodeCatalyst entorno que se va a usar con la acción. La acción se conecta a Cuenta de AWS la Amazon VPC opcional especificada en el entorno elegido. La acción utiliza la función de IAM predeterminada especificada en el entorno para conectarse a Cuenta de AWS, y utiliza la función de IAM especificada en la [conexión de Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) para conectarse a la Amazon VPC.

**nota**  
Si el rol de IAM predeterminado no tiene los permisos necesarios para la acción, puede configurarla para que utilice un rol diferente. Para obtener más información, consulte [Cambio del rol de IAM de una acción](deploy-environments-switch-role.md).

Para obtener más información sobre los entornos, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md) y [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Name
<a name="deploy.action.ecs.environment.name"></a>

(*ECSDeployAction*/Environment/**Name**)

(Obligatorio si se incluye [Environment](#deploy.action.ecs.environment))

Especifique el nombre del entorno existente que desea asociar a la acción.

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Connections
<a name="deploy.action.ecs.environment.connections"></a>

(*ECSDeployAction*/Environment/**Connections**)

(Opcional en las versiones más recientes de la acción; obligatorio en las versiones más antiguas)

Especifique la conexión de cuenta que desee asociar a la acción. Puede especificar un máximo de una conexión de cuenta en `Environment`.

Si no especifica una conexión de cuenta:
+ La acción utiliza la Cuenta de AWS conexión y la función de IAM predeterminada especificadas en el entorno de la consola. CodeCatalyst Para obtener información sobre cómo añadir una conexión de cuenta y un rol de IAM predeterminado al entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).
+ El rol de IAM predeterminado debe incluir las políticas y los permisos que requiere la acción. Para determinar cuáles son esas políticas y permisos, consulte la descripción de la propiedad **Role** en la documentación de la definición de YAML de la acción.

Para obtener más información sobre las conexiones de cuenta, consulte [Permitir el acceso a AWS los recursos con conexión Cuentas de AWS](ipa-connect-account.md). Para obtener más información sobre cómo añadir una conexión de cuenta a un entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿tab/Environment/WhatLa configuración está lista? *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ conexión de cuenta Environment/account/role AWS **

## Name
<a name="deploy.action.ecs.environment.connections.name"></a>

(*ECSDeployAction*/Environment/Connections/**Name**)

(Obligatorio si se incluye [Connections](#deploy.action.ecs.environment.connections))

Especifique el nombre de la conexión de cuenta.

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿La configuración está lista? tab/Environment/What *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ conexión de cuenta Environment/account/role AWS **

## Role
<a name="deploy.action.ecs.environment.connections.role"></a>

(*ECSDeployAction*/Environment/Connections/**Role**)

(Obligatorio si se incluye [Connections](#deploy.action.ecs.environment.connections))

Especifique el nombre del rol de IAM que la acción **Implementar en Amazon ECS** utiliza para acceder a AWS. Asegúrese de haber [agregado el rol a su CodeCatalyst espacio](ipa-connect-account-addroles.md) y de que el rol incluya las siguientes políticas.

Si no especifica un rol de IAM, la acción utilizará el rol de IAM predeterminado que aparece en el [entorno](deploy-environments.md) de la consola. CodeCatalyst Si usa el rol predeterminado en el entorno, asegúrese de que tenga las siguientes políticas.
+ La siguiente política de permisos:
**aviso**  
Limite los permisos a los que se muestran en la siguiente política. El uso de un rol con permisos más amplios puede suponer un riesgo de seguridad.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
      "Action":[
        "ecs:DescribeServices",
        "ecs:CreateTaskSet",
        "ecs:DeleteTaskSet",
        "ecs:ListClusters",
        "ecs:RegisterTaskDefinition",
        "ecs:UpdateServicePrimaryTaskSet",
        "ecs:UpdateService",
        "elasticloadbalancing:DescribeTargetGroups",
        "elasticloadbalancing:DescribeListeners",
        "elasticloadbalancing:ModifyListener",
        "elasticloadbalancing:DescribeRules",
        "elasticloadbalancing:ModifyRule",
        "lambda:InvokeFunction",
        "lambda:ListFunctions",
        "cloudwatch:DescribeAlarms",
        "sns:Publish",
        "sns:ListTopics", 
        "s3:GetObject",
        "s3:GetObjectVersion",
        "codedeploy:CreateApplication", 
        "codedeploy:CreateDeployment", 
        "codedeploy:CreateDeploymentGroup", 
        "codedeploy:GetApplication", 
        "codedeploy:GetDeployment", 
        "codedeploy:GetDeploymentGroup", 
        "codedeploy:ListApplications", 
        "codedeploy:ListDeploymentGroups", 
        "codedeploy:ListDeployments", 
        "codedeploy:StopDeployment", 
        "codedeploy:GetDeploymentTarget", 
        "codedeploy:ListDeploymentTargets", 
        "codedeploy:GetDeploymentConfig", 
        "codedeploy:GetApplicationRevision", 
        "codedeploy:RegisterApplicationRevision", 
        "codedeploy:BatchGetApplicationRevisions", 
        "codedeploy:BatchGetDeploymentGroups", 
        "codedeploy:BatchGetDeployments", 
        "codedeploy:BatchGetApplications", 
        "codedeploy:ListApplicationRevisions", 
        "codedeploy:ListDeploymentConfigs", 
        "codedeploy:ContinueDeployment"           
     ],
     "Resource":"*",
     "Effect":"Allow"
  },{"Action":[
        "iam:PassRole"
     ],
     "Effect":"Allow",
     "Resource":"*",
     "Condition":{"StringLike":{"iam:PassedToService":[
              "ecs-tasks.amazonaws.com",
              "codedeploy.amazonaws.com"
           ]
        }
     }
  }]
  }
  ```

------
**nota**  
La primera vez que utilice el rol, use el siguiente comodín en la instrucción de política de recursos y, a continuación, precise el ámbito de la política con el nombre del recurso cuando esté disponible.  

  ```
  "Resource": "*"
  ```
+ La siguiente política de confianza personalizada:

**nota**  
Puede usar el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` con esta acción, si así lo desea. Para obtener más información acerca de este rol, consulte [Creación del rol **CodeCatalystWorkflowDevelopmentRole-*spaceName*** para su cuenta y su espacio](ipa-iam-roles.md#ipa-iam-roles-service-create). Tenga en cuenta que el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` tiene permisos de acceso total, lo que puede suponer un riesgo para la seguridad. Le recomendamos que utilice este rol solo en tutoriales y situaciones en las que la seguridad no sea un problema. 

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿tab/Environment/WhatLa configuración está lista? *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ Rol Environment/account/role**

## Inputs
<a name="deploy.action.ecs.inputs"></a>

(*ECSDeployAction*/**Inputs**)

(Opcional)

La sección `Inputs` define los datos que necesita la acción `ECSDeployAction` durante la ejecución de un flujo de trabajo.

**nota**  
Solo se permite una entrada (ya sea un código fuente o un artefacto) para cada acción **Implementar en Amazon ECS**.

Interfaz de usuario correspondiente: pestaña **Entradas**

## Sources
<a name="deploy.action.ecs.inputs.sources"></a>

(*ECSDeployAction*/Inputs/**Sources**)

(Obligatorio si el archivo de definición de la tarea está almacenado en un repositorio de código fuente)

Si el archivo de definición de la tarea está almacenado en un repositorio de código fuente, especifique la etiqueta de dicho repositorio. Actualmente, la única etiqueta admitida es `WorkflowSource`.

Si el archivo de definición de la tarea no está incluido en un repositorio de código fuente, debe residir en un artefacto generado por otra acción.

Para obtener más información sobre orígenes, consulte [Conexión de repositorios de código fuente a flujos de trabajo](workflows-sources.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Orígenes (opcional)**

## Artifacts - input
<a name="deploy.action.ecs.inputs.artifacts"></a>

(*ECSDeployAction*/Inputs/**Artifacts**)

(Obligatorio si el archivo de definición de la tarea está almacenado en un [artefacto de salida](workflows-working-artifacts-output.md) de una acción anterior)

Si el archivo de definición de la tarea que desea implementar está incluido en un artefacto generado por una acción anterior, especifique ese artefacto aquí. Si el archivo de definición de la tarea no está incluido en un artefacto, debe residir en el repositorio de código fuente.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Artefactos (opcional)**

## Configuration
<a name="deploy.action.ecs.configuration"></a>

(*ECSDeployAction*/**Configuration**)

(Obligatorio)

Una sección en la que puede definir las propiedades de configuración de la acción.

Interfaz de usuario correspondiente: pestaña **Configuración**

## region
<a name="deploy.action.ecs.region"></a>

(Configuration/**region**)

(Obligatorio) 

Especifique la AWS región en la que residen el clúster y el servicio de Amazon ECS. Para obtener una lista de códigos de región, consulte [Puntos de conexión regionales](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints) en la *Referencia general de AWS*.

Interfaz de usuario correspondiente: pestaña Configuración/**Región**

## cluster
<a name="deploy.action.ecs.cluster"></a>

(*ECSDeployAction*/Configuration/**cluster**)

(Obligatorio)

Especifique el nombre de un clúster de Amazon ECS existente. La acción **Implementar en Amazon ECS** implementará la aplicación basada en contenedores como una tarea en este clúster. Para obtener más información sobre los clústeres de Amazon ECS, consulte [Clusters](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-clusters) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

Interfaz de usuario correspondiente: pestaña Configuración/**Clúster**

## service
<a name="deploy.action.ecs.service"></a>

(*ECSDeployAction*/Configuration/**service**)

(Obligatorio)

Especifique el nombre del servicio de Amazon ECS existente que creará la instancia del archivo de definición de la tarea. Este servicio debe residir en el clúster especificado en el campo `cluster`. Para obtener más información sobre los servicios de Amazon ECS, consulte [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

Interfaz de usuario correspondiente: pestaña Configuración/**Servicio**

## task-definition
<a name="deploy.action.ecs.task.definition"></a>

(*ECSDeployAction*/Configuration/**task-definition**)

(Obligatorio)

Especifique la ruta a un archivo de definición de la tarea existente. Si el archivo reside en el repositorio de código fuente, la ruta es relativa a la carpeta raíz del repositorio de código fuente. Si el archivo reside en un artefacto de una acción del flujo de trabajo anterior, la ruta es relativa a la carpeta raíz del artefacto. Para obtener más información sobre los archivos de definición de tareas, consulte [Task definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

Interfaz de usuario correspondiente: pestaña Configuración/**Definición de tarea**

## force-new-deployment
<a name="deploy.action.ecs.forcenewdeployment"></a>

(*ECSDeployAction*/Configuration/**force-new-deployment**)

(Obligatorio)

Si está habilitado, el servicio de Amazon ECS puede iniciar nuevas implementaciones sin cambios en la definición del servicio. Al forzar una implementación, el servicio detiene todas las tareas que se están ejecutando actualmente y lanza nuevas tareas. Para obtener más información sobre cómo forzar nuevas implementaciones, consulte [Updating a service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/update-service.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

Valor predeterminado: `false`

Interfaz de usuario correspondiente: pestaña Configuración/**Forzar una nueva implementación del servicio**

## codedeploy-appspec
<a name="deploy.action.ecs.codedeploy.appspec"></a>

(*ECSDeployAction*/Configuration/**codedeploy-appspec**)

(Obligatorio si ha configurado su servicio Amazon ECS para usar blue/green implementaciones; de lo contrario, omita)

Especifique el nombre y la ruta de un archivo de especificación de CodeDeploy la aplicación (AppSpec) existente. Este archivo debe residir en la raíz del repositorio de CodeCatalyst origen. Para obtener más información sobre AppSpec los archivos, consulte los [archivos de especificación de la CodeDeploy aplicación (AppSpec)](https://docs.aws.amazon.com/codedeploy/latest/userguide/application-specification-files.html) en la *Guía del AWS CodeDeploy usuario*.

**nota**  
Proporcione CodeDeploy información únicamente si ha configurado el servicio Amazon ECS para realizar blue/green despliegues. En el caso de las implementaciones de actualizaciones sucesivas (la opción predeterminada), CodeDeploy omita la información. Para obtener más información sobre las implementaciones de Amazon ECS, consulte [Amazon ECS deployment types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

**nota**  
Es posible que los **CodeDeploy**campos estén ocultos en el editor visual. Para hacer que estén visibles, consulte [¿Por qué faltan CodeDeploy campos en el editor visual?](troubleshooting-workflows.md#troubleshooting-workflows-codedeploy).

Interfaz de usuario correspondiente: pestaña de configuración/ **CodeDeploy AppSpec**

## codedeploy-application
<a name="deploy.action.ecs.codedeploy.application"></a>

(*ECSDeployAction*/Configuration/**codedeploy-application**)

(Obligatorio si se incluye `codedeploy-appspec`)

Especifique el nombre de una CodeDeploy aplicación existente. Para obtener más información sobre CodeDeploy las aplicaciones, consulte [Trabajar con aplicaciones CodeDeploy en](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications.html) la *Guía del AWS CodeDeploy usuario*.

**Interfaz de usuario correspondiente: pestaña de configuración/aplicación CodeDeploy **

## codedeploy-deployment-group
<a name="deploy.action.ecs.codedeploy.deploymentgroup"></a>

(*ECSDeployAction*/Configuration/**codedeploy-deployment-group**)

(Obligatorio si se incluye `codedeploy-appspec`)

Especifique el nombre de un grupo de CodeDeploy implementación existente. Para obtener más información sobre los grupos de CodeDeploy despliegue, consulte [Trabajar con grupos de despliegue CodeDeploy en](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-groups.html) la *Guía del AWS CodeDeploy usuario*.

Interfaz de usuario correspondiente: pestaña de configuración/grupo **CodeDeploy de despliegue**

## codedeploy-deployment-description
<a name="deploy.action.ecs.codedeploy.deploymentdescription"></a>

(*ECSDeployAction*/Configuration/**codedeploy-deployment-description**)

(Opcional)

Especifique una descripción de la implementación que creará esta acción. Para obtener más información, consulte [Trabajar con implementaciones CodeDeploy en](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployments.html) la Guía del *AWS CodeDeploy usuario*.

**Interfaz de usuario correspondiente: pestaña de configuración/descripción CodeDeploy de la implementación**

# Implementación en Amazon EKS con un flujo de trabajo
<a name="deploy-action-eks"></a>

**sugerencia**  
Para ver un tutorial que muestra cómo utilizar la acción **Implementar en clúster de Kubernetes**, consulte [Tutorial: implementación de una aplicación en Amazon EKS](deploy-tut-eks.md).

En esta sección, se describe cómo implementar una aplicación en contenedores en un clúster de Kubernetes mediante un flujo de trabajo. CodeCatalyst Para ello, debe añadir la acción **Implementar en clúster de Kubernetes** a su flujo de trabajo. Esta acción implementa la aplicación en un clúster de Kubernetes que haya configurado en Amazon Elastic Kubernetes Service (EKS) mediante uno o varios archivos de manifiesto de Kubernetes. Para ver un manifiesto de ejemplo, consulte [deployment.yaml](deploy-tut-eks.md#deploy-tut-eks-source-files-deployment-yml) en [Tutorial: implementación de una aplicación en Amazon EKS](deploy-tut-eks.md).

Para obtener más información sobre Kubernetes, consulte la [documentación de Kubernetes](https://kubernetes.io/docs/home/).

Para obtener más información sobre Amazon EKS, consulte [¿Qué es Amazon EKS?](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) en la *Guía del usuario de Amazon EKS*.

**Topics**
+ [

## Cómo funciona la acción 'Implementar en clúster de Kubernetes'
](#deploy-action-eks-howitworks)
+ [

## Imagen del entorno en tiempo de ejecución utilizada por la acción 'Implementar en Amazon EKS'
](#deploy-action-eks-runtime)
+ [

# Tutorial: implementación de una aplicación en Amazon EKS
](deploy-tut-eks.md)
+ [

# Incorporación de la acción 'Implementar en clúster de Kubernetes'
](deploy-action-eks-adding.md)
+ [

# Variables de 'Implementar en clúster de Kubernetes'
](deploy-action-eks-variables.md)
+ [

# Acción 'Implementar en clúster de Kubernetes' de YAML
](deploy-action-ref-eks.md)

## Cómo funciona la acción 'Implementar en clúster de Kubernetes'
<a name="deploy-action-eks-howitworks"></a>

La acción **Implementar en clúster de Kubernetes** funciona de la siguiente manera:

1. En tiempo de ejecución, la acción instala la `kubectl` utilidad Kubernetes en la máquina de procesamiento en la que se ejecuta la acción. CodeCatalyst La acción configura `kubectl` para que apunte al clúster de Amazon EKS que proporcionó al configurar la acción. A continuación, se necesita la utilidad `kubectl` para ejecutar el comando `kubectl apply`.

1. La acción ejecuta el `kubectl apply -f my-manifest.yaml` comando, que ejecuta las instrucciones *my-manifest.yaml* para implementar la aplicación como un conjunto de contenedores y pods en el clúster configurado. Para obtener más información sobre este comando, consulte el tema [kubectl apply](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply) en la *documentación de referencia de Kubernetes*.

## Imagen del entorno en tiempo de ejecución utilizada por la acción 'Implementar en Amazon EKS'
<a name="deploy-action-eks-runtime"></a>

La acción **Implementar en Amazon EKS** se ejecuta en una [imagen de noviembre de 2022](build-images.md#build.previous-image). Para obtener más información, consulte [Imágenes activas](build-images.md#build-curated-images).

# Tutorial: implementación de una aplicación en Amazon EKS
<a name="deploy-tut-eks"></a>

En este tutorial, aprenderá a implementar una aplicación en contenedores en Amazon Elastic Kubernetes Service mediante CodeCatalyst un flujo de trabajo de Amazon, Amazon EKS y algunos otros servicios. AWS La aplicación implementada es un sencillo sitio web “Hello, World\$1” creado a partir de una imagen de Docker del servidor web Apache. El tutorial explica el trabajo de preparación necesario, como la configuración de una máquina de desarrollo y un clúster de Amazon EKS, y luego describe cómo crear un flujo de trabajo para crear la aplicación e implementarla en el clúster.

Una vez completada la implementación inicial, el tutorial le indica cómo realizar un cambio en el código fuente de la aplicación. Este cambio hace que se cree una nueva imagen de Docker y se envíe a su repositorio de imágenes de Docker con la nueva información de revisión. A continuación, la nueva revisión de la imagen de Docker se implementa en Amazon EKS.

**sugerencia**  
En lugar de seguir este tutorial, puede utilizar un esquema que realice una configuración completa de Amazon EKS por usted. Deberá utilizar el esquema **Implementación de aplicaciones de EKS**. Para obtener más información, consulte [Creación de un proyecto con un esquema](projects-create.md#projects-create-console-template).

**Topics**
+ [

## Requisitos previos
](#deploy-tut-eks-prereqs)
+ [

## Paso 1: configuración de la máquina de desarrollo
](#deploy-tut-eks-dev-env-create)
+ [

## Paso 2: creación de un clúster de Amazon EKS
](#deploy-tut-eks-cluster)
+ [

## Paso 3: creación de un repositorio de imágenes de Amazon ECR
](#deploy-tut-eks-ecr)
+ [

## Paso 4: incorporación de archivos de código fuente
](#deploy-tut-eks-source-files)
+ [

## Paso 5: Crear roles AWS
](#deploy-tut-eks-roles)
+ [

## Paso 6: Añadir AWS roles a CodeCatalyst
](#deploy-tut-eks-import-roles)
+ [

## Paso 7: actualice el ConfigMap
](#deploy-tut-eks-configmap)
+ [

## Paso 8: creación y ejecución de un flujo de trabajo
](#deploy-tut-eks-workflow)
+ [

## Paso 9: realización de un cambio en los archivos de código fuente
](#deploy-tut-eks-change)
+ [

## Limpieza
](#deploy-tut-eks-cleanup)

## Requisitos previos
<a name="deploy-tut-eks-prereqs"></a>

Antes de comenzar este tutorial:
+ Necesitas un CodeCatalyst **espacio** en Amazon con una AWS cuenta conectada. Para obtener más información, consulte [Creación de un espacio](spaces-create.md).
+ En su espacio, necesita un proyecto vacío llamado:

  ```
  codecatalyst-eks-project
  ```

  Use la opción **Empezar desde cero** para crear este proyecto.

  Para obtener más información, consulte [Crear un proyecto vacío en Amazon CodeCatalyst](projects-create.md#projects-create-empty).
+ En tu proyecto, necesitas un **repositorio de CodeCatalyst código fuente** vacío llamado:

  ```
  codecatalyst-eks-source-repository
  ```

  Para obtener más información, consulte [Almacene código y colabore en él con los repositorios de código fuente en CodeCatalystAlmacenamiento de código y colaboración con los repositorios de código fuente](source.md).
+ En su proyecto, necesita un entorno de CodeCatalyst CI/CD (no un **entorno** de desarrollo) llamado:

  ```
  codecatalyst-eks-environment
  ```

  Configure este entorno de la siguiente manera:
  + Elija cualquier tipo, como **Sin producción**.
  + Conecta tu AWS cuenta a ella. 
  + En **Rol de IAM predeterminado**, elija cualquier rol. Especificará un rol diferente más adelante.

  Para obtener más información, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md).

## Paso 1: configuración de la máquina de desarrollo
<a name="deploy-tut-eks-dev-env-create"></a>

El primer paso de este tutorial consiste en configurar una máquina de desarrollo con algunas herramientas que utilizará a lo largo de este tutorial. Estos roles son:
+ la utilidad `eksctl`: para la creación del clúster
+ la utilidad `kubectl`: un requisito previo para `eksctl`
+ el AWS CLI ... también es un requisito previo para `eksctl`

Puede instalar estas herramientas en su máquina de desarrollo actual si tiene una, o puede usar un entorno de CodeCatalyst desarrollo, que está basado en la nube. La ventaja de un CodeCatalyst entorno de desarrollo es que es fácil de configurar y desmontar, y está integrado con otros CodeCatalyst servicios, lo que te permite completar este tutorial en menos pasos.

En este tutorial se asume que utilizarás un entorno CodeCatalyst de desarrollo.

Las siguientes instrucciones describen una forma rápida de lanzar un CodeCatalyst entorno de desarrollo y configurarlo con las herramientas necesarias, pero si desea obtener instrucciones detalladas, consulte:
+ [Creación de un entorno de desarrollo](devenvironment-create.md) en esta guía.
+ [Instalación de kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) en la **Guía del usuario de Amazon EKS**.
+ [Instalación o actualización de eksctl](https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html) en la **Guía del usuario de Amazon EKS**.
+ [Instalación o actualización de la versión más reciente de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) en la *Guía del usuario de AWS Command Line Interface *.

**Lanzamiento de un entorno de desarrollo**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Vaya a su proyecto, `codecatalyst-eks-project`.

1. En el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**. 

1. Elija el nombre del repositorio de código fuente, `codecatalyst-eks-source-repository`.

1. Cerca de la parte superior, elija **Crear entorno de desarrollo** y, a continuación, elija **AWS Cloud9 (en el navegador)**.

1. Asegúrese de que estén seleccionadas la opción **Trabajar en una ramificación existente** y la ramificación **principal** y, a continuación, elija **Crear**.

   Su entorno de desarrollo se abre en una nueva pestaña del navegador y el repositorio (`codecatalyst-eks-source-repository`) se clona en él.

**Instalación y configuración de kubectl**

1. En el terminal del entorno de desarrollo, escriba:

   ```
   curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/linux/amd64/kubectl
   ```

1. Escriba:

   ```
   chmod +x ./kubectl
   ```

1. Escriba:

   ```
   mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
   ```

1. Escriba:

   ```
   echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
   ```

1. Escriba:

   ```
   kubectl version --short --client
   ```

1. Compruebe que aparezca una versión.

   Ahora ha instalado `kubectl`.

**Instalación y configuración de eksctl**
**nota**  
`eksctl` no es estrictamente obligatorio porque se puede utilizar `kubectl` en su lugar. Sin embargo, `eksctl` tiene la ventaja de automatizar gran parte de la configuración del clúster y, por lo tanto, es la herramienta recomendada para este tutorial.

1. En el terminal del entorno de desarrollo, escriba:

   ```
   curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
   ```

1. Escriba:

   ```
   sudo cp /tmp/eksctl /usr/bin
   ```

1. Escriba:

   ```
   eksctl version
   ```

1. Compruebe que aparezca una versión.

   Ahora ha instalado `eksctl`.

**Para comprobar que AWS CLI está instalado**

1. En el terminal del entorno de desarrollo, escriba:

   ```
   aws --version
   ```

1. Compruebe que aparezca una versión para comprobar que AWS CLI está instalada.

   Complete los procedimientos restantes para configurarlo AWS CLI con los permisos de acceso necesarios AWS.

**Para configurar el AWS CLI**

Debe configurarlo AWS CLI con claves de acceso y un token de sesión para darle acceso a AWS los servicios. Las siguientes instrucciones proporcionan una forma rápida de configurar las claves y el token, pero si desea obtener instrucciones detalladas, consulte [Configuración de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) en la *Guía del usuario de AWS Command Line Interface *.

1. Cree un usuario de IAM Identity Center del modo siguiente:

   1. Inicie sesión en Consola de administración de AWS y abra la AWS IAM Identity Center consola en [https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/).

      (Puede que tenga que seleccionar **Activar** si nunca ha iniciado sesión en IAM Identity Center con anterioridad).
**nota**  
Asegúrate de iniciar sesión con el Cuenta de AWS que está conectado a tu CodeCatalyst espacio. Para comprobar qué cuenta está conectada, vaya a su espacio y elija la pestaña **Cuentas de AWS**. Para obtener más información, consulte [Creación de un espacio](spaces-create.md).

   1. En el panel de navegación, elija **Users** y luego elija la opción **Add user**.

   1. En **Nombre de usuario**, escriba:

      ```
      codecatalyst-eks-user
      ```

   1. En **Contraseña**, elija **Generar una contraseña de un solo uso que pueda compartir con este usuario**.

   1. En **Dirección de correo electrónico** y **Confirmar dirección de correo electrónico**, introduzca una dirección de correo electrónico que no exista aún en IAM Identity Center.

   1. En **Nombre**, escriba:

      ```
      codecatalyst-eks-user
      ```

   1. En **Apellidos**, escriba:

      ```
      codecatalyst-eks-user
      ```

   1. En **Nombre de visualización**, mantenga:

      ```
      codecatalyst-eks-user codecatalyst-eks-user
      ```

   1. Elija **Siguiente**.

   1. En la página **Agregar usuarios a grupos**, elija **Siguiente**.

   1. En la página **Revisar y agregar usuario**, compruebe la información que ha introducido y seleccione **Agregar usuario**.

      Aparece el cuadro de diálogo **Contraseña de un solo uso**.

   1. Seleccione **Copiar** y, a continuación, pegue la información de inicio de sesión en un archivo de texto. La información de inicio de sesión consta de la URL del portal de AWS acceso, un nombre de usuario y una contraseña de un solo uso.

   1. Seleccione **Cerrar**.

1. Cree un conjunto de permisos de la siguiente manera:

   1. En el panel de navegación, elija **Conjuntos de permisos** y, a continuación, elija **Crear conjunto de permisos**.

   1. Elija un conjunto **de permisos predefinido** y, a continuación, seleccione **AdministratorAccess**. Esta política concede permisos completos a todos los Servicios de AWS. 

   1. Elija **Siguiente**.

   1. En **Nombre del conjunto de permisos**, elimine `AdministratorAccess` e introduzca:

      ```
      codecatalyst-eks-permission-set
      ```

   1. Elija **Siguiente**.

   1. En la página **Revisión**, revise la información y, a continuación, elija **Crear grupo**.

1. Asigne el conjunto de permisos a `codecatalyst-eks-user` de la siguiente manera:

   1. En el panel de navegación, elija y **Cuentas de AWS**, a continuación, active la casilla de verificación situada junto a la casilla en la Cuenta de AWS que ha iniciado sesión actualmente.

   1. Seleccione **Asignar usuarios o grupos**.

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

   1. Seleccione la casilla situada junto a `codecatalyst-eks-user`.

   1. Elija **Siguiente**.

   1. Seleccione la casilla situada junto a `codecatalyst-eks-permission-set`.

   1. Elija **Siguiente**.

   1. Revise la información y seleccione **Enviar**.

      Ahora tienes asignada `codecatalyst-eks-user` y `codecatalyst-eks-permission-set` a la tuya Cuenta de AWS, uniéndolas.

1. Obtenga las claves de acceso de `codecatalyst-eks-user` y el token de sesión de la siguiente manera:

   1. Asegúrese de tener la URL del portal de AWS acceso y el nombre de usuario y la contraseña de un solo uso del mismo`codecatalyst-eks-user`. Debería haber copiado esta información en un editor de texto anteriormente.
**nota**  
Si no dispone de esta información, vaya a la página de detalles de `codecatalyst-eks-user` en IAM Identity Center, elija **Restablecer contraseña**, **Generar una contraseña de un solo uso [...]** y de nuevo **Restablecer contraseña** para que aparezca la información en la pantalla.

   1. Cerrar sesión en AWS.

   1. Pegue la URL del portal de AWS acceso en la barra de direcciones del navegador.

   1. Inicie sesión con:
      + **Nombre de usuario**:

        ```
        codecatalyst-eks-user
        ```
      + **Contraseña**:

        *one-time-password*

   1. En **Establecer nueva contraseña**, introduzca una nueva contraseña y elija **Establecer nueva contraseña**.

      Aparece un cuadro de **Cuenta de AWS** en la pantalla.

   1. Elija **Cuenta de AWS** y, a continuación, elija el nombre de la Cuenta de AWS a la que asignó el usuario `codecatalyst-eks-user` y el conjunto de permisos.

   1. Junto a `codecatalyst-eks-permission-set`, seleccione **Línea de comandos o acceso mediante programación**.

   1. Copie los comandos del centro de la página. Tendrán un aspecto similar al siguiente:

      ```
      export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" 
      export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" 
      export AWS_SESSION_TOKEN="session-token"
      ```

      ... donde *session-token* hay una cadena aleatoria larga.

1. Añada las claves de acceso y el token de sesión al AWS CLI, de la siguiente manera:

   1. Regrese a su CodeCatalyst entorno de desarrollo.

   1. En la línea de comandos del terminal, pegue los comandos que ha copiado. Pulse Intro.

      Ahora lo ha configurado AWS CLI con claves de acceso y un token de sesión. Ahora puede utilizarla AWS CLI para completar las tareas requeridas en este tutorial.
**importante**  
Si en algún momento de este tutorial ve mensajes similares a:  
`Unable to locate credentials. You can configure credentials by running "aws configure".`  
O bien:  
`ExpiredToken: The security token included in the request is expired`  
... es porque tu AWS CLI sesión ha caducado. En este caso, *no* ejecute el comando `aws configure`. En lugar de ello, siga las instrucciones del paso 4 de este procedimiento, que comienza con `Obtain codecatalyst-eks-user's access key and session token` para actualizar la sesión.

## Paso 2: creación de un clúster de Amazon EKS
<a name="deploy-tut-eks-cluster"></a>

En esta sección, creará un clúster en Amazon EKS. En las instrucciones siguientes se describe una forma rápida de crear el clúster mediante `eksctl`, pero si desea obtener instrucciones detalladas, consulte:
+ [Introducción a eksctl](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html) en la **Guía del usuario de Amazon EKS**

  o
+ [Introducción a la consola y a la AWS CLI](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html) en la **Guía del usuario de Amazon EKS** (en este tema se proporcionan instrucciones de `kubectl` para crear el clúster) 

**nota**  
La CodeCatalyst integración con Amazon EKS no admite [clústeres privados](https://docs.aws.amazon.com/eks/latest/userguide/private-clusters.html).

**Antes de empezar**

Asegúrese de haber realizado las siguientes tareas en su máquina de desarrollo:
+ Ha instalado la utilidad `eksctl`.
+ Ha instalado la utilidad `kubectl`.
+ Lo instalé AWS CLI y lo configuré con claves de acceso y un token de sesión.

Para obtener más información sobre como realizar estas tareas, consulte [Paso 1: configuración de la máquina de desarrollo](#deploy-tut-eks-dev-env-create).

**Para crear un clúster**
**importante**  
No utilice la interfaz de usuario del servicio de Amazon EKS para crear el clúster, ya que el clúster no se configurará correctamente. Utilice la utilidad `eksctl` tal y como se describe en los pasos siguientes.

1. Vaya a su entorno de desarrollo.

1. Cree un clúster y los nodos:

   ```
   eksctl create cluster --name codecatalyst-eks-cluster --region us-west-2
   ```

   Donde:
   + *codecatalyst-eks-cluster*se sustituye por el nombre que desee darle a su clúster.
   + *us-west-2*se sustituye por tu región.

   Después de 10-20 minutos, aparecerá un mensaje similar al siguiente: 

   `EKS cluster "codecatalyst-eks-cluster" in "us-west-2" region is ready`
**nota**  
Verá varios mensajes `waiting for CloudFormation stack` mientras AWS crea el clúster. Esto es normal.

1. Compruebe que el clúster se haya creado correctamente:

   ```
   kubectl cluster-info
   ```

   Verá un mensaje similar al siguiente, que indica que la creación del clúster se ha realizado correctamente:

   ```
   Kubernetes master is running at https://long-string.gr7.us-west-2.eks.amazonaws.com
   CoreDNS is running at https://long-string.gr7.us-west-2.eks.amazonaws.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
   ```

## Paso 3: creación de un repositorio de imágenes de Amazon ECR
<a name="deploy-tut-eks-ecr"></a>

En esta sección, creará un repositorio de imágenes privado en Amazon Elastic Container Registry (Amazon ECR). Este repositorio almacena la imagen de Docker del tutorial.

Para obtener más información sobre Amazon ECR, consulte la *Guía del usuario de Amazon Elastic Container Registry*.

**Creación de un repositorio de imágenes en Amazon ECR**

1. Vaya a su entorno de desarrollo.

1. Cree un repositorio vacío en Amazon ECR:

   ```
   aws ecr create-repository --repository-name codecatalyst-eks-image-repo
   ```

   *codecatalyst-eks-image-repo*Sustitúyalo por el nombre que desee asignar al repositorio de Amazon ECR.

   En este tutorial se asume que el repositorio se llama `codecatalyst-eks-image-repo`.

1. Muestre los detalles del repositorio de Amazon ECR:

   ```
   aws ecr describe-repositories \
         --repository-names codecatalyst-eks-image-repo
   ```

1. Anote el valor de `“repositoryUri”:` (por ejemplo, `111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-eks-image-repo`).

   Lo necesitará más adelante cuando añada el repositorio a su flujo de trabajo. 

## Paso 4: incorporación de archivos de código fuente
<a name="deploy-tut-eks-source-files"></a>

En esta sección, añadirá los archivos de código fuente de la aplicación al repositorio de código fuente (`codecatalyst-eks-source-repository`). Constan de:
+ Un archivo `index.html`: muestra un mensaje “Hello, world\$1” en el navegador.
+ Un Dockerfile: describe la imagen base que se va a usar para la imagen de Docker y los comandos de Docker que se le aplicarán.
+ Un archivo `deployment.yaml`: el manifiesto de Kubernetes que define el servicio y la implementación de Kubernetes. 

La estructura de carpetas es la siguiente:

```
|— codecatalyst-eks-source-repository
   |— Kubernetes
      |— deployment.yaml
   |— public-html
   |  |— index.html
   |— Dockerfile
```

**Topics**
+ [

### index.html
](#deploy-tut-eks-source-files-index)
+ [

### Dockerfile
](#deploy-tut-eks-source-files-dockerfile)
+ [

### deployment.yaml
](#deploy-tut-eks-source-files-deployment-yml)

### index.html
<a name="deploy-tut-eks-source-files-index"></a>

El archivo `index.html` muestra un mensaje “Hello, world\$1” en el navegador. 

**Adición del archivo index.html**

1. Vaya a su entorno de desarrollo.

1. En `codecatalyst-eks-source-repository`, cree una carpeta llamada `public-html`.

1. En `/public-html`, cree un archivo llamado `index.html` con el siguiente contenido:

   ```
   <html>
     <head>
       <title>Hello World</title>
       <style>
         body {
         background-color: black;
         text-align: center;
         color: white;
         font-family: Arial, Helvetica, sans-serif;
         }  
       </style>
     </head>
     <body>
       <h1>Hello, World!</h1>
     </body>
   </html>
   ```

1. En la línea de comandos del terminal, escriba:

   ```
   cd /projects/codecatalyst-eks-source-repository
   ```

1. Añada, confirme y envíe:

   ```
   git add .
   git commit -m "add public-html/index.html"
   git push
   ```

   El archivo `index.html` se añade al repositorio en una carpeta `public-html`. 

### Dockerfile
<a name="deploy-tut-eks-source-files-dockerfile"></a>

El Dockerfile describe la imagen base que se va a usar para la imagen de Docker y los comandos de Docker que se le aplicarán. Para obtener más información acerca del Dockerfile, consulte la [Referencia de Dockerfile](https://docs.docker.com/engine/reference/builder/).

El Dockerfile especificado aquí indica que se debe usar la imagen base de Apache 2.4 (`httpd`). También incluye instrucciones para copiar un archivo de código fuente llamado `index.html` en una carpeta del servidor de Apache que sirve páginas web. La instrucción `EXPOSE` del Dockerfile indica a Docker que el contenedor está escuchando en el puerto 80.

**Adición del Dockerfile**

1. En `codecatalyst-eks-source-repository`, cree un archivo llamado `Dockerfile` con el siguiente contenido:

   ```
   FROM httpd:2.4
   COPY ./public-html/index.html /usr/local/apache2/htdocs/index.html
   EXPOSE 80
   ```

   No incluya la extensión del archivo.
**importante**  
El Dockerfile debe residir en la carpeta raíz de su repositorio. El comando `Docker build` del flujo de trabajo espera que esté ahí.

1. Añada, confirme y envíe:

   ```
   git add .
   git commit -m "add Dockerfile"
   git push
   ```

   El Dockerfile se añade a su repositorio.

### deployment.yaml
<a name="deploy-tut-eks-source-files-deployment-yml"></a>

En esta sección, añadirá un archivo `deployment.yaml` al repositorio. El archivo `deployment.yaml` es un manifiesto de Kubernetes que define dos tipos o *clases* de recursos de Kubernetes que se van a ejecutar: un “servicio” y una “implementación”.
+ El “servicio” implementa un equilibrador de carga en Amazon EC2. El equilibrador de carga le proporciona una URL pública con acceso a Internet y un puerto estándar (puerto 80) que puede usar para examinar el mensaje “Hello, World\$1”. "Hello, World\$1". 
+ La “implementación” implementa tres pods y cada uno de ellos incluirá un contenedor de Docker con el mensaje “Hello, World\$1”. "Hello, World\$1". Los tres pods se implementan en los nodos que se crearon al crear el clúster.

El manifiesto de este tutorial es breve; sin embargo, un manifiesto puede incluir cualquier número de tipos de recursos de Kubernetes, como pods, trabajos, entradas y políticas de red. Además, puede usar varios archivos de manifiesto si la implementación es compleja.

**Adición de un archivo deployment.yaml**

1. En `codecatalyst-eks-source-repository`, cree una carpeta llamada `Kubernetes`.

1. En `/Kubernetes`, cree un archivo llamado `deployment.yaml` con el siguiente contenido:

   ```
   apiVersion: v1
   kind: Service
   metadata:
     name: my-service
     labels:
       app: my-app
   spec:
     type: LoadBalancer
     selector:
       app: my-app
     ports:
       - protocol: TCP
         port: 80
         targetPort: 80
   ---
   apiVersion: apps/v1
   kind: Deployment
   metadata:
     name: my-deployment
     labels:
       app: my-app
   spec:
     replicas: 3
     selector:
       matchLabels:
         app: my-app
     template:
       metadata:
         labels:
           app: my-app
       spec:
         containers:
         - name: codecatalyst-eks-container
           # The $REPOSITORY_URI and $IMAGE_TAG placeholders will be replaced by actual values supplied by the build action in your workflow
           image: $REPOSITORY_URI:$IMAGE_TAG
           ports:
           - containerPort: 80
   ```

1. Añada, confirme y envíe:

   ```
   git add .
   git commit -m "add Kubernetes/deployment.yaml"
   git push
   ```

   El archivo `deployment.yaml` se añade al repositorio en una carpeta llamada `Kubernetes`. 

Ahora ha añadido todos los archivos de código fuente.

Dedique unos minutos a comprobar su trabajo y a asegurarse de que ha colocado todos los archivos en las carpetas correctas. La estructura de carpetas es la siguiente:

```
|— codecatalyst-eks-source-repository
   |— Kubernetes
      |— deployment.yaml
   |— public-html
   |  |— index.html
   |— Dockerfile
```

## Paso 5: Crear roles AWS
<a name="deploy-tut-eks-roles"></a>

En esta sección, creará las funciones de AWS IAM que necesitará su CodeCatalyst flujo de trabajo para funcionar. Estos roles son:
+ **Función de creación**: concede a la acción de CodeCatalyst creación (en el flujo de trabajo) permiso para acceder a su AWS cuenta y escribir en Amazon ECR y Amazon EC2.
+ **Función de implementación**: otorga a la acción CodeCatalyst **Implementar en el clúster de Kubernetes** (en el flujo de trabajo) el permiso para acceder a su cuenta AWS y a Amazon EKS.

Para obtener más información sobre los roles de IAM, consulte [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) en la *Guía del usuario de AWS Identity and Access Management *.

**nota**  
Para ahorrar tiempo, puede crear un único rol, denominado rol `CodeCatalystWorkflowDevelopmentRole-spaceName`, en lugar de los dos roles indicados anteriormente. Para obtener más información, consulte [Creación del rol **CodeCatalystWorkflowDevelopmentRole-*spaceName*** para su cuenta y su espacio](ipa-iam-roles.md#ipa-iam-roles-service-create). Tenga en cuenta que el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` tiene permisos muy amplios, lo que puede suponer un riesgo para la seguridad. Le recomendamos que utilice este rol solo en tutoriales y situaciones en las que la seguridad no sea un problema. En este tutorial se presupone que va a crear los dos roles indicados anteriormente.

Para crear los roles de compilación e implementación, realice la siguiente serie de procedimientos.

**1. Creación de una política de confianza para ambos roles**

1. Vaya a su entorno de desarrollo.

1. En el directorio `Cloud9-long-string`, cree un archivo llamado `codecatalyst-eks-trust-policy.json` con el siguiente contenido:

**2. Creación de la política de compilación para el rol de compilación**
+ En el directorio `Cloud9-long-string`, cree un archivo llamado `codecatalyst-eks-build-policy.json` con el siguiente contenido:

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "ecr:*",
                  "ec2:*"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
**nota**  
La primera vez que utilice el rol para ejecutar acciones de flujo de trabajo, use el comodín en la instrucción de política de recursos y, a continuación, precise el ámbito de la política con el nombre del recurso cuando esté disponible.  

  ```
  "Resource": "*"
  ```

**3. Creación de una política de implementación para el rol de implementación**
+ En el directorio `Cloud9-long-string`, cree un archivo llamado `codecatalyst-eks-deploy-policy.json` con el siguiente contenido:

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "eks:DescribeCluster",
                  "eks:ListClusters"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
**nota**  
La primera vez que utilice el rol para ejecutar acciones de flujo de trabajo, use el comodín en la instrucción de política de recursos y, a continuación, precise el ámbito de la política con el nombre del recurso cuando esté disponible.  

  ```
  "Resource": "*"
  ```

Ahora ha añadido tres documentos de política a su entorno de desarrollo. La estructura de directorios ahora debería ser similar a la siguiente:

```
|— Cloud9-long-string
   |— .c9
   |— codecatalyst-eks-source-repository
      |— Kubernetes
      |— public-html
      |— Dockerfile
   codecatalyst-eks-build-policy.json
   codecatalyst-eks-deploy-policy.json
   codecatalyst-eks-trust-policy.json
```

**4. Para añadir la política de compilación a AWS**

1. En el terminal del entorno de desarrollo, escriba:

   ```
   cd /projects
   ```

1. Escriba:

   ```
   aws iam create-policy \
       --policy-name codecatalyst-eks-build-policy \
       --policy-document file://codecatalyst-eks-build-policy.json
   ```

1. Pulse **Intro**.

1. En el resultado del comando, anote el valor de `"arn":` (por ejemplo, `arn:aws:iam::111122223333:policy/codecatalyst-eks-build-policy`). Necesitará este ARN más adelante.

**5. Para añadir la política de despliegue a AWS**

1. Escriba:

   ```
   aws iam create-policy \
       --policy-name codecatalyst-eks-deploy-policy \
       --policy-document file://codecatalyst-eks-deploy-policy.json
   ```

1. Pulse **Intro**.

1. En el resultado del comando, anote el valor de `"arn":` de la política de implementación (por ejemplo, `arn:aws:iam::111122223333:policy/codecatalyst-eks-deploy-policy`). Necesitará este ARN más adelante.

**6. Creación del rol de compilación**

1. Escriba: 

   ```
   aws iam create-role \
         --role-name codecatalyst-eks-build-role \
         --assume-role-policy-document file://codecatalyst-eks-trust-policy.json
   ```

1. Pulse **Intro**.

1. Escriba:

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-eks-build-role \
         --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-eks-build-policy
   ```

   Where *arn:aws:iam::111122223333:policy/codecatalyst-eks-build-policy* se sustituye por el ARN de la política de construcción que mencionaste anteriormente.

1. Pulse **Intro**.

1. En la línea de comandos del terminal, escriba:

   ```
   aws iam get-role \
         --role-name codecatalyst-eks-build-role
   ```

1. Pulse **Intro**.

1. Anote el valor de `"Arn":` del rol (por ejemplo, `arn:aws:iam::111122223333:role/codecatalyst-eks-build-role`). Necesitará este ARN más adelante.

**7. Creación del rol de implementación**

1. Escriba:

   ```
   aws iam create-role \
         --role-name codecatalyst-eks-deploy-role \
         --assume-role-policy-document file://codecatalyst-eks-trust-policy.json
   ```

1. Pulse **Intro**.

1. Escriba:

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-eks-deploy-role \
         --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-eks-deploy-policy
   ```

   Where *arn:aws:iam::111122223333:policy/codecatalyst-eks-deploy-policy* se sustituye por el ARN de la política de despliegue que indicó anteriormente.

1. Pulse **Intro**.

1. Escriba:

   ```
   aws iam get-role \
         --role-name codecatalyst-eks-deploy-role
   ```

1. Pulse **Intro**.

1. Anote el valor de `"Arn":` del rol (por ejemplo, `arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role`). Necesitará este ARN más adelante.

Ahora ha creado las funciones de creación e implementación y ha anotado sus ARNs funciones.

## Paso 6: Añadir AWS roles a CodeCatalyst
<a name="deploy-tut-eks-import-roles"></a>

En este paso, agrega el rol de compilación (`codecatalyst-eks-build-role`) y el rol de implementación (`codecatalyst-eks-deploy-role`) al rol Cuenta de AWS que conectó a su espacio. Esto permite que los roles se puedan usar en el flujo de trabajo.

**Para añadir funciones de creación e implementación a su Cuenta de AWS**

1. En la CodeCatalyst consola, navega hasta tu espacio.

1. En la parte superior, elija **Configuración**.

1. En el panel de navegación, elija **Cuentas de AWS **. Aparece una lista de cuentas.

1. En la columna **Nombre CodeCatalyst para mostrar de Amazon**, copia el nombre para mostrar del Cuenta de AWS lugar en el que creaste las funciones de creación e implementación. (Puede ser un número). Necesitará este valor más adelante, cuando cree el flujo de trabajo.

1. Elija el nombre de visualización.

1. Selecciona **Administrar roles desde la consola AWS de administración**.

   Aparece la página **Añadir función de IAM a Amazon CodeCatalyst Space**. Es posible que tenga que iniciar sesión para acceder a la página.

1. Seleccione **Agregar un rol existente que haya creado en IAM**.

   Se muestra una lista desplegable. La lista muestra los roles de compilación e implementación, y todos los demás roles de IAM con una política de confianza que incluye las entidades principales de los servicios `codecatalyst-runner.amazonaws.com` y `codecatalyst.amazonaws.com`.

1. En la lista desplegable, añada:
   + `codecatalyst-eks-build-role`
   + `codecatalyst-eks-deploy-role`
**nota**  
Si aparece `The security token included in the request is invalid`, es posible que se deba a que no tiene los permisos adecuados. Para solucionar este problema, cierra sesión AWS como vuelve a iniciar sesión con la AWS cuenta que utilizaste al crear tu CodeCatalyst espacio.

1. Vuelve a la CodeCatalyst consola y actualiza la página.

   Los roles de compilación e implementación deberían aparecer ahora en **Roles de IAM**.

   Estas funciones ahora están disponibles para su uso en los CodeCatalyst flujos de trabajo.

## Paso 7: actualice el ConfigMap
<a name="deploy-tut-eks-configmap"></a>

Debe añadir el rol de implementación que creó en `ConfigMap` al archivo [Paso 5: Crear roles AWS](#deploy-tut-eks-roles) de Kubernetes para que la acción **Implementar en clúster de Kubernetes** (en su flujo de trabajo) pueda acceder a su clúster e interactuar con él. Puede utilizar `eksctl` o `kubectl` para realizar esta tarea.

**Para configurar el archivo de ConfigMap Kubernetes mediante eksctl**
+ En el terminal del entorno de desarrollo, escriba: 

  ```
  eksctl create iamidentitymapping --cluster codecatalyst-eks-cluster --arn arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role --group system:masters --username codecatalyst-eks-deploy-role --region us-west-2
  ```

  Donde:
  + *codecatalyst-eks-cluster*se sustituye por el nombre del clúster de Amazon EKS.
  +  *arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role*se sustituye por el ARN de la función de implementación en la que creaste. [Paso 5: Crear roles AWS](#deploy-tut-eks-roles)
  +  *codecatalyst-eks-deploy-role*(junto a`--username`) se sustituye por el nombre de la función de implementación en [Paso 5: Crear roles AWS](#deploy-tut-eks-roles) la que creaste.
**nota**  
Si ha decidido no crear un rol de despliegue, *codecatalyst-eks-deploy-role* sustitúyalo por el nombre del `CodeCatalystWorkflowDevelopmentRole-spaceName` rol. Para obtener más información acerca de este rol, consulte [Paso 5: Crear roles AWS](#deploy-tut-eks-roles).
  +  *us-west-2*se sustituye por su región.

  Para obtener más información sobre este comando, consulte [Administración de usuarios y roles de IAM](https://eksctl.io/usage/iam-identity-mappings/).

  Aparecerá un mensaje similar al siguiente:

  ```
  2023-06-09 00:58:29 [ℹ]  checking arn arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role against entries in the auth ConfigMap
  2023-06-09 00:58:29 [ℹ]  adding identity "arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role" to auth ConfigMap
  ```

**Para configurar el archivo de Kubernetes ConfigMap mediante kubectl**

1. En el terminal del entorno de desarrollo, escriba:

   ```
   kubectl edit configmap -n kube-system aws-auth
   ```

   El archivo aparece en la pantalla ConfigMap .

1. Añada el texto en cursiva de color rojo:

   ```
   # Please edit the object below. Lines beginning with a '#' will be ignored,
   # and an empty file will abort the edit. If an error occurs while saving this file will be
   # reopened with the relevant failures.
   #
   apiVersion: v1
   data:
     mapRoles: |
       - groups:
         - system:bootstrappers
         - system:nodes
         rolearn: arn:aws:iam::111122223333:role/eksctl-codecatalyst-eks-cluster-n-NodeInstanceRole-16BC456ME6YR5
         username: system:node:{{EC2PrivateDNSName}}
       - groups:
         - system:masters
         rolearn: arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role
         username: codecatalyst-eks-deploy-role
     mapUsers: |
       []
   kind: ConfigMap
   metadata:
     creationTimestamp: "2023-06-08T19:04:39Z"
     managedFields:
     ...
   ```

   Donde:
   +  *arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role*se sustituye por el ARN de la función de implementación en la que creaste. [Paso 5: Crear roles AWS](#deploy-tut-eks-roles) 
   +  *codecatalyst-eks-deploy-role*(junto a`username:`) se sustituye por el nombre de la función de implementación en [Paso 5: Crear roles AWS](#deploy-tut-eks-roles) la que creaste.
**nota**  
Si ha decidido no crear un rol de despliegue, *codecatalyst-eks-deploy-role* sustitúyalo por el nombre del `CodeCatalystWorkflowDevelopmentRole-spaceName` rol. Para obtener más información acerca de este rol, consulte [Paso 5: Crear roles AWS](#deploy-tut-eks-roles).

   Para obtener más información, consulte [Habilitación del acceso de la entidad principal de IAM a un clúster](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html) en la **Guía del usuario de Amazon EKS**.

Ahora ha proporcionado al rol de implementación y, por extensión, a la acción **Implementar en Amazon EKS**, permisos `system:masters` para su clúster de Kubernetes.

## Paso 8: creación y ejecución de un flujo de trabajo
<a name="deploy-tut-eks-workflow"></a>

En este paso, creará un flujo de trabajo que toma los archivos de código fuente, los compila en una imagen de Docker y, a continuación, implementa la imagen en tres pods en su clúster de Amazon EKS.

El flujo de trabajo consta de los siguientes componentes que se ejecutarán en orden:
+ Un desencadenador: este desencadenador inicia la ejecución automática del flujo de trabajo cuando se introduce un cambio en el repositorio de código fuente. Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).
+ Una acción de compilación (`BuildBackend`): al activarse, la acción crea la imagen de Docker mediante el Dockerfile y envía la imagen a Amazon ECR. La acción de compilación también actualiza las variables `$REPOSITORY_URI` y `$IMAGE_TAG` en el archivo `Kubernetes` con los valores correctos y, a continuación, crea un artefacto de salida de este archivo y en los demás archivos de la carpeta `deployment.yaml`. En este tutorial, el único archivo de la carpeta `Kubernetes` es `deployment.yaml`, pero puede incluir más archivos. El artefacto se utiliza como entrada para la acción de implementación, que es la siguiente.

  Para obtener más información sobre la acción de compilación, consulte [Compilación con flujos de trabajo](build-workflow-actions.md).
+ Una acción de implementación (`DeployToEKS`): al completarse la acción de compilación, la acción de implementación busca el artefacto de salida generado por la acción de compilación (`Manifests`) y encuentra el archivo `deployment.yaml` que contiene. A continuación, la acción sigue las instrucciones del archivo `deployment.yaml` para ejecutar tres pods, cada uno de los cuales contiene un único mensaje “Hello, World\$1”. Contenedor de Docker: dentro de su clúster de Amazon EKS. 

**Para crear un flujo de trabajo**

1. Ve a la CodeCatalyst consola.

1. Vaya a su proyecto (`codecatalyst-eks-project`).

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Seleccione **Crear flujo de trabajo**.

1. En **Repositorio de código fuente**, elija `codecatalyst-eks-source-repository`.

1. En **Ramificación**, elija `main`.

1. Seleccione **Crear**.

1. Elimine el código de ejemplo de YAML.

1. Añada el siguiente código de YAML para crear un nuevo archivo de definición de flujo de trabajo:
**nota**  
Para obtener más información sobre el archivo de definición del flujo de trabajo, consulte [Definición de flujo de trabajo en YAML](workflow-reference.md).
**nota**  
En el código de YAML que se muestra a continuación, puede omitir las secciones `Connections:` si lo desea. Si omite estas secciones, debe asegurarse de que el rol especificado en el campo **Rol de IAM predeterminado** del entorno incluya los permisos y las políticas de confianza de ambos roles que se describen en [Paso 6: Añadir AWS roles a CodeCatalyst](#deploy-tut-eks-import-roles). Para obtener más información sobre cómo configurar un entorno con un rol de IAM predeterminado, consulte [Creación de un entorno](deploy-environments-creating-environment.md).

   ```
   Name: codecatalyst-eks-workflow
   SchemaVersion: 1.0
   
   Triggers:
     - Type: PUSH
       Branches:
         - main
   Actions:
     BuildBackend:
       Identifier: aws/build@v1
       Environment:
         Name: codecatalyst-eks-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-eks-build-role
       Inputs:
         Sources:
           - WorkflowSource
         Variables:
           - Name: REPOSITORY_URI
             Value: 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-eks-image-repo
           - Name: IMAGE_TAG
             Value: ${WorkflowSource.CommitId}
       Configuration:
         Steps:
           #pre_build:
           - Run: echo Logging in to Amazon ECR...
           - Run: aws --version
           - Run: aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-west-2.amazonaws.com
           #build:
           - Run: echo Build started on `date`
           - Run: echo Building the Docker image...
           - Run: docker build -t $REPOSITORY_URI:latest .
           - Run: docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
           #post_build:
           - Run: echo Build completed on `date`
           - Run: echo Pushing the Docker images...
           - Run: docker push $REPOSITORY_URI:latest
           - Run: docker push $REPOSITORY_URI:$IMAGE_TAG
           # Replace the variables in deployment.yaml
           - Run: find Kubernetes/ -type f | xargs sed -i "s|\$REPOSITORY_URI|$REPOSITORY_URI|g"
           - Run: find Kubernetes/ -type f | xargs sed -i "s|\$IMAGE_TAG|$IMAGE_TAG|g"
           - Run: cat Kubernetes/*
           # The output artifact will be a zip file that contains Kubernetes manifest files.
       Outputs:
         Artifacts:
           - Name: Manifests
             Files: 
               - "Kubernetes/*"
     DeployToEKS:
       DependsOn: 
         - BuildBackend
       Identifier: aws/kubernetes-deploy@v1
       Environment:
         Name: codecatalyst-eks-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-eks-deploy-role
       Inputs:
         Artifacts:
           - Manifests
       Configuration:
         Namespace: default
         Region: us-west-2
         Cluster: codecatalyst-eks-cluster
         Manifests: Kubernetes/
   ```

   En el código anterior, sustituya:
   + Ambas instancias o *codecatalyst-eks-environment* con el nombre del entorno en el que creaste[Requisitos previos](#deploy-tut-eks-prereqs).
   + Ambas instancias *codecatalyst-account-connection* con el nombre visible de la conexión de su cuenta. El nombre de visualización puede ser un número. Para obtener más información, consulte [Paso 6: Añadir AWS roles a CodeCatalyst](#deploy-tut-eks-import-roles).
   + *codecatalyst-eks-build-role*con el nombre del rol de compilación en el que creaste[Paso 5: Crear roles AWS](#deploy-tut-eks-roles).
   + *111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-eks-image-repo*(en la `Value:` propiedad) con el URI del repositorio de Amazon ECR en [Paso 3: creación de un repositorio de imágenes de Amazon ECR](#deploy-tut-eks-ecr) el que lo creó.
   + *111122223333.dkr.ecr.us-west-2.amazonaws.com*(en el `Run: aws ecr` comando) con el URI del repositorio de Amazon ECR sin el sufijo de imagen ()`/codecatalyst-eks-image-repo`.
   + *codecatalyst-eks-deploy-role*con el nombre de la función de implementación en la que creó. [Paso 5: Crear roles AWS](#deploy-tut-eks-roles)
   + Ambas instancias o *us-west-2* con el código de su AWS región. Para obtener una lista de códigos de región, consulte [Puntos de conexión regionales](https://docs.aws.amazon.com/general/latest/gr/rande.html) en la *Referencia general de AWS*.
**nota**  
Si decidió no crear funciones de creación e implementación, *codecatalyst-eks-build-role* *codecatalyst-eks-deploy-role* sustitúyalas por el nombre de la `CodeCatalystWorkflowDevelopmentRole-spaceName` función. Para obtener más información acerca de este rol, consulte [Paso 5: Crear roles AWS](#deploy-tut-eks-roles).

1. (Opcional) Seleccione **Validar** para asegurarse de que el código de YAML sea válido antes de confirmarlo.

1. Elija **Confirmar**.

1. En el cuadro de diálogo **Confirmar flujo de trabajo**, escriba lo siguiente:

   1. En **Mensaje de confirmación**, elimine el texto e introduzca:

      ```
      Add first workflow
      ```

   1. En **Repositorio**, elija `codecatalyst-eks-source-repository`.

   1. En **Nombre de la ramificación**, elija principal.

   1. Elija **Confirmar**.

   Ahora ha creado un flujo de trabajo. La ejecución del flujo de trabajo se inicia automáticamente debido al desencadenador definido en la parte superior del flujo de trabajo. En concreto, cuando confirmó (e incorporó) el archivo `workflow.yaml` en su repositorio de código fuente, el desencadenador inició la ejecución del flujo de trabajo.

**Consulta del progreso de la ejecución del flujo de trabajo**

1. **En el panel de navegación de la CodeCatalyst consola, elija **CI/CD** y, a continuación, elija Flujos de trabajo.**

1. Elija el flujo de trabajo que acaba de crear, `codecatalyst-eks-workflow`.

1. Elija **BuildBackend**ver el progreso de la compilación.

1. Elija **DeployToEKS** para ver el progreso de la implementación.

   Para obtener más información sobre cómo ver los detalles de ejecución, consulte [Visualización del estado y los detalles de la ejecución de un flujo de trabajo](workflows-view-run.md).

**Verificación de la implementación**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. A la izquierda, cerca de la parte inferior, seleccione **Equilibradores de carga**.

1. Seleccione el equilibrador de carga que se creó como parte de la implementación de Kubernetes. Si no está seguro de qué equilibrador de carga elegir, busque las siguientes etiquetas en la pestaña **Etiquetas**:
   + `kubernetes.io/service-name`
   + `kubernetes.io/cluster/ekstutorialcluster`

1. Con el equilibrador de carga correcto seleccionado, elija la pestaña **Descripción**.

1. Copie y pegue el valor del **nombre de DNS** en la barra de dirección del navegador.

   Aparece la página web “Hello World\$1” en el navegador, lo que indica que la aplicación se ha implementado correctamente.

## Paso 9: realización de un cambio en los archivos de código fuente
<a name="deploy-tut-eks-change"></a>

En esta sección, realizará un cambio en el archivo `index.html` de su repositorio de código fuente. Este cambio hace que el flujo de trabajo cree una nueva imagen de Docker, la etiquete con un ID de confirmación, la envíe a Amazon ECR y la implemente en Amazon ECS. 

**Cambio del archivo index.html**

1. Vaya a su entorno de desarrollo.

1. En la línea de comandos del terminal, cambie a su repositorio de código fuente:

   ```
   cd /projects/codecatalyst-eks-source-repository
   ```

1.  Incorpore los cambios más recientes en el flujo de trabajo:

   ```
   git pull
   ```

1. Abra `codecatalyst-eks-source-repository/public-html/index.html`.

1. En la línea 14, cambie el texto `Hello, World!` a `Tutorial complete!`

1. Añada, confirme y envíe:

   ```
   git add .
   git commit -m "update index.html title"
   git push
   ```

   Se inicia automáticamente una ejecución del flujo de trabajo.

1. (Opcional) Escriba:

   ```
   git show HEAD
   ```

   Anote el ID de confirmación del cambio de `index.html`. Este ID de confirmación se etiquetará en la imagen de Docker que se implementará en la ejecución del flujo de trabajo que acaba de iniciar.

1. Observe el progreso de la implementación:

   1. **En la CodeCatalyst consola, en el panel de navegación, elija **CI/CD** y, a continuación, elija Flujos de trabajo.**

   1. Elija `codecatalyst-eks-workflow` para ver la última ejecución.

   1. Elija y **BuildBackend**haga clic en **DeployToEKS** para ver el progreso de la ejecución del flujo de trabajo.

1. Compruebe que la aplicación se haya actualizado de la siguiente manera:

   1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

   1. A la izquierda, cerca de la parte inferior, seleccione **Equilibradores de carga**.

   1. Seleccione el equilibrador de carga que se creó como parte de la implementación de Kubernetes.

   1. Copie y pegue el valor del **nombre de DNS** en la barra de dirección del navegador.

      Aparece la página web “Tutorial Complete\$1” en el navegador, lo que indica que ha implementado correctamente una nueva revisión de la aplicación.

1. (Opcional) En AWS, cambie a la consola Amazon ECR y compruebe que la nueva imagen de Docker esté etiquetada con el ID de confirmación del paso 7 de este procedimiento.

## Limpieza
<a name="deploy-tut-eks-cleanup"></a>

Debe limpiar su entorno para que no se le cobre innecesariamente por los recursos de almacenamiento y computación utilizados en este tutorial.

**Eliminación**

1. Eliminar el clúster:

   1. En el terminal del entorno de desarrollo, escriba:

     ```
     eksctl delete cluster --region=us-west-2 --name=codecatalyst-eks-cluster
     ```

     Donde:
     + *us-west-2*se sustituye por tu región.
     + *codecatalyst-eks-cluster*se sustituye por el nombre del clúster que ha creado.

     Después de 5 a 10 minutos, se eliminan el clúster y los recursos asociados, incluidos, entre otros, las CloudFormation pilas, los grupos de nodos (en Amazon EC2) y los balanceadores de carga.
**importante**  
Si el `eksctl delete cluster` comando no funciona, es posible que deba actualizar sus AWS credenciales o sus credenciales. `kubectl` Si no está seguro de qué credenciales actualizar, actualice primero las AWS credenciales. Para actualizar sus credenciales de AWS , consulte [¿Cómo puedo corregir los errores «No se pueden localizar las credenciales» y ExpiredToken «»?](troubleshooting-workflows.md#troubleshooting-workflows-auth-errors-eks). Para actualizar sus credenciales de `kubectl`, consulte [¿Cómo puedo corregir los errores de tipo Unable to connect to the server?](troubleshooting-workflows.md#troubleshooting-workflows-unable-connect-eks).

1. En la AWS consola, limpie de la siguiente manera:

   1. En Amazon ECR, elimine `codecatalyst-eks-image-repo`.

   1. En IAM Identity Center, elimine:

      1. `codecatalyst-eks-user`

      1. `codecatalyst-eks-permission-set`

   1. En IAM, elimine:
      + `codecatalyst-eks-build-role`
      + `codecatalyst-eks-deploy-role`
      + `codecatalyst-eks-build-policy`
      + `codecatalyst-eks-deploy-policy`

1. En la CodeCatalyst consola, limpie de la siguiente manera:

   1. Elimine `codecatalyst-eks-workflow`.

   1. Elimine `codecatalyst-eks-environment`.

   1. Elimine `codecatalyst-eks-source-repository`.

   1. Elimine el entorno de desarrollo.

   1. Elimine `codecatalyst-eks-project`.

En este tutorial, aprendió a implementar una aplicación en un servicio de Amazon EKS mediante un CodeCatalyst flujo de trabajo y una acción de **implementación en un clúster de Kubernetes.**

# Incorporación de la acción 'Implementar en clúster de Kubernetes'
<a name="deploy-action-eks-adding"></a>

Siga estas instrucciones para añadir la acción **Implementar en clúster de Kubernetes** a su flujo de trabajo. 

**Antes de empezar**

Antes de añadir la acción **Implementar en clúster de Kubernetes** a su flujo de trabajo, debe tener preparado lo siguiente:

**sugerencia**  
Para configurar estos requisitos previos rápidamente, sigue las instrucciones de [Tutorial: implementación de una aplicación en Amazon EKS](deploy-tut-eks.md).
+ Un clúster de Kubernetes en Amazon EKS. Para obtener más información sobre los clústeres, consulte [Amazon EKS clusters](https://docs.aws.amazon.com/eks/latest/userguide/clusters.html) en la **Guía del usuario de Amazon EKS**.
+ Al menos un Dockerfile que describa cómo ensamblar la aplicación en una imagen de Docker. Para obtener más información acerca de los archivos Docker, consulte la [referencia de Docker](https://docs.docker.com/engine/reference/builder/).
+ Al menos un archivo de manifiesto de Kubernetes, que se denomina *archivo de configuración* o *configuración* en la documentación de Kubernetes. Para obtener más información, consulte [Managing resources](https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/) en la documentación de Kubernetes.
+ Un rol de IAM que proporcione a la acción **Implementar en clúster de Kubernetes** la capacidad de acceder a su clúster de Amazon EKS e interactuar con él. Para obtener más información, consulte el tema [Role](deploy-action-ref-eks.md#deploy.action.eks.environment.connections.role) en la [Acción 'Implementar en clúster de Kubernetes' de YAML](deploy-action-ref-eks.md).

  Tras crear este rol, debe añadirlo a:
  + Tu ConfigMap archivo de Kubernetes. Para obtener información sobre cómo añadir un rol a un ConfigMap archivo, consulte [Habilitar el acceso principal de IAM a su clúster](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html) en la **Guía del usuario de Amazon EKS**.
  + CodeCatalyst. Para obtener información sobre cómo añadir una función de IAM a CodeCatalyst, consulte[Adición de roles de IAM a las conexiones de cuentas](ipa-connect-account-addroles.md).
+ Un CodeCatalyst espacio, un proyecto y un entorno. Tanto el espacio como el entorno deben estar conectados a la AWS cuenta en la que vaya a implementar la aplicación. Para obtener más información, consulte [Creación de un espacio](spaces-create.md), [Crear un proyecto vacío en Amazon CodeCatalyst](projects-create.md#projects-create-empty) y [Implementación en Cuentas de AWS y VPCs](deploy-environments.md).
+ Un repositorio de código fuente compatible con CodeCatalyst. El repositorio almacena los archivos de código fuente de la aplicación, los Dockerfiles y los manifiestos de Kubernetes. Para obtener más información, consulte [Almacene código y colabore en él con los repositorios de código fuente en CodeCatalystAlmacenamiento de código y colaboración con los repositorios de código fuente](source.md).

------
#### [ Visual ]

**Incorporación de la acción 'Implementar en clúster de Kubernetes' con el editor visual**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busque la acción **Implementar en clúster de Kubernetes** y realice una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija **Implementar en clúster de Kubernetes**. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Descargar** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. En las pestañas **Entradas** y **Configuración**, complete los campos según sus necesidades. Para obtener una descripción de cada uno de los campos, consulte la [Acción 'Implementar en clúster de Kubernetes' de YAML](deploy-action-ref-eks.md). Esta referencia proporciona información detallada sobre cada campo (y el valor de la propiedad de YAML correspondiente) tal como aparece en el editor visual y el de YAML.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Incorporación de la acción 'Implementar en clúster de Kubernetes' con el editor de YAML**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busque la acción **Implementar en clúster de Kubernetes** y realice una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija **Implementar en clúster de Kubernetes**. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Descargar** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. Modifique las propiedades del código de YAML en función de sus necesidades. Encontrará una explicación de todas las propiedades disponibles en la [Acción 'Implementar en clúster de Kubernetes' de YAML](deploy-action-ref-eks.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Variables de 'Implementar en clúster de Kubernetes'
<a name="deploy-action-eks-variables"></a>

La acción **Implementar en clúster de Kubernetes** produce y establece las siguientes variables en tiempo de ejecución. Se conocen como *variables predefinidas*.

Para obtener información sobre cómo hacer referencia a estas variables en un flujo de trabajo, consulte [Uso de variables predefinidas](workflows-using-predefined-variables.md).


| Clave | Valor | 
| --- | --- | 
|  clúster  |  El Nombre de recurso de Amazon (ARN) del clúster de Amazon EKS en el que se implementó durante la ejecución del flujo de trabajo. Ejemplo: `arn:aws:eks:us-west-2:111122223333:cluster/codecatalyst-eks-cluster`  | 
|  deployment-platform  |  El nombre de la plataforma de implementación. Codificado en `AWS:EKS`.  | 
|  metadatos  |  Reservado. Metadatos con formato JSON relacionados con el clúster implementado durante la ejecución del flujo de trabajo.  | 
|  namespace  |  El espacio de nombres de Kubernetes en el que se implementó el clúster. Ejemplo: `default`  | 
|  recursos  |  Reservado. Metadatos con formato JSON relacionados con los recursos implementados durante la ejecución del flujo de trabajo.  | 
|  server  |  El nombre del punto de conexión del servidor de API que puede usar para comunicarse con su clúster mediante herramientas de administración como `kubectl`. Para obtener más información sobre el punto de conexión del servicio de la API, consulte [Control de acceso al punto de conexión del clúster de Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) en la **Guía del usuario de Amazon EKS**. Ejemplo: `https://random-string.gr7.us-west-2.eks.amazonaws.com`  | 

# Acción 'Implementar en clúster de Kubernetes' de YAML
<a name="deploy-action-ref-eks"></a>

La siguiente es la definición en YAML de la acción **Implementar en clúster de Kubernetes**. Para obtener información sobre cómo utilizar esta acción, consulte [Implementación en Amazon EKS con un flujo de trabajo](deploy-action-eks.md).

Esta definición de acción existe como una sección dentro de un archivo de definición de flujo de trabajo más amplio. Para obtener más información acerca de este archivo, consulte [Definición de flujo de trabajo en YAML](workflow-reference.md).

**nota**  
La mayoría de las propiedades de YAML que se muestran a continuación tienen elementos de interfaz de usuario correspondientes en el editor visual. Para buscar un elemento de la interfaz de usuario, use **Ctrl\$1F**. El elemento aparecerá en la lista con su propiedad de YAML asociada.

```
# The workflow definition starts here.
# See Propiedades de nivel superior for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  DeployToKubernetesCluster\$1nn: 
    Identifier: aws/kubernetes-deploy@v1
    DependsOn:
      - build-action
    Compute:  
        - Type: EC2 | Lambda
        - Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: DeployToEKS
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - manifest-artifact
    Configuration:
      Namespace: namespace
      Region: us-east-1 
      Cluster: eks-cluster
      Manifests: manifest-path
```

## DeployToKubernetesCluster
<a name="deploy.action.eks.name"></a>

(Obligatorio) 

Especifique el nombre de la acción. Todos los nombres de las acciones deben ser únicos dentro del flujo de trabajo. Los nombres de las acciones están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de las acciones.

Predeterminado: `DeployToKubernetesCluster_nn`.

Interfaz de usuario correspondiente: pestaña Configuración/**Nombre de visualización de la acción**

## Identifier
<a name="deploy.action.eks.identifier"></a>

(*DeployToKubernetesCluster*/**Identifier**)

(Obligatorio)

Identifica la acción. No cambie esta propiedad a menos que desee cambiar la versión. Para obtener más información, consulte [Especificación de la versión de la acción que se va a utilizar](workflows-action-versions.md).

Predeterminado: `aws/kubernetes-deploy@v1`.

Interfaz de usuario correspondiente: Diagrama de flujo de trabajo/DeployToKubernetesCluster\$1nn/etiqueta **aws/kubernetes-deploy@v1**

## DependsOn
<a name="deploy.action.eks.dependson"></a>

(*DeployToKubernetesCluster*/**DependsOn**)

(Opcional)

Especifique la acción, el grupo de acciones o la puerta que debe ejecutarse correctamente para que esta acción se ejecute.

Para obtener más información sobre la funcionalidad “depende de”, consulte [Secuenciación de acciones](workflows-depends-on.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Depende de (opcional)**

## Compute
<a name="deploy.action.eks.computename"></a>

(*DeployToKubernetesCluster*/**Compute**)

(Opcional)

El motor de computación utilizado para ejecutar las acciones del flujo de trabajo. Puede especificar el motor de computación en el nivel del flujo de trabajo o en el nivel de acción, pero no en ambos. Cuando se especifica en el nivel de flujo de trabajo, la configuración del motor de computación se aplica a todas las acciones definidas en el flujo de trabajo. En el nivel de flujo de trabajo, también puede ejecutar varias acciones en la misma instancia. Para obtener más información, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md).

Interfaz de usuario correspondiente: *ninguna*

## Type
<a name="deploy.action.eks.computetype"></a>

(*DeployToKubernetesCluster*/Compute/**Type**)

(Obligatorio si se incluye [Compute](#deploy.action.eks.computename))

El tipo de motor de computación. Puede utilizar uno de los siguientes valores:
+ **EC2** (editor visual) o `EC2` (editor de YAML)

  Optimizado para ofrecer flexibilidad durante las ejecuciones de acciones.
+ **Lambda** (editor visual) o `Lambda` (editor de YAML)

  Velocidades de inicio de acciones optimizadas.

Para obtener más información sobre los tipos de computación, consulte [Tipos de computación](workflows-working-compute.md#compute.types).

**Interfaz de usuario correspondiente: Configuración: opcional/tipo informático tab/Advanced **

## Fleet
<a name="deploy.action.eks.computefleet"></a>

(*DeployToKubernetesCluster*/Compute/**Fleet**)

(Opcional)

Especifique la máquina o la flota que ejecutará el flujo de trabajo o las acciones del flujo de trabajo. Con las flotas bajo demanda, cuando se inicia una acción, el flujo de trabajo aprovisiona los recursos que necesita y las máquinas se destruyen cuando finaliza la acción. Ejemplos de flotas bajo demanda: `Linux.x86-64.Large`, `Linux.x86-64.XLarge`. Para obtener más información sobre las flotas bajo demanda, consulte [Propiedades de las flotas bajo demanda](workflows-working-compute.md#compute.on-demand).

Con las flotas aprovisionadas, configura un conjunto de máquinas dedicadas para ejecutar las acciones del flujo de trabajo. Estas máquinas permanecen inactivas, listas para procesar acciones de forma inmediata. Para obtener más información sobre las flotas aprovisionadas, consulte [Propiedades de flotas aprovisionadas](workflows-working-compute.md#compute.provisioned-fleets).

Si `Fleet` se omite, el valor predeterminado es `Linux.x86-64.Large`.

**Interfaz de usuario correspondiente: Configuración: opcional/flota de tab/Advanced cómputo**

## Timeout
<a name="deploy.action.eks.timeout"></a>

(*DeployToKubernetesCluster*/**Timeout**)

(Opcional)

Especifique la cantidad de tiempo en minutos (editor YAML) o en horas y minutos (editor visual) que la acción puede ejecutarse antes de que CodeCatalyst finalice la acción. El mínimo es 5 minutos y el máximo se describe en [Cuotas para flujos de trabajo en CodeCatalyst](workflows-quotas.md). El tiempo de espera predeterminado es el mismo que el tiempo de espera máximo.

Interfaz de usuario correspondiente: pestaña Configuración/**Tiempo de espera (opcional)**

## Environment
<a name="deploy.action.eks.environment"></a>

(*DeployToKubernetesCluster*/**Environment**)

(Obligatorio) 

Especifica el CodeCatalyst entorno que se va a usar con la acción. La acción se conecta a Cuenta de AWS la Amazon VPC opcional especificada en el entorno elegido. La acción utiliza la función de IAM predeterminada especificada en el entorno para conectarse a Cuenta de AWS, y utiliza la función de IAM especificada en la [conexión de Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) para conectarse a la Amazon VPC.

**nota**  
Si el rol de IAM predeterminado no tiene los permisos necesarios para la acción, puede configurarla para que utilice un rol diferente. Para obtener más información, consulte [Cambio del rol de IAM de una acción](deploy-environments-switch-role.md).

Para obtener más información sobre los entornos, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md) y [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Name
<a name="deploy.action.eks.environment.name"></a>

(*DeployToKubernetesCluster*/Environment/**Name**)

(Obligatorio si se incluye [Environment](#deploy.action.eks.environment))

Especifique el nombre del entorno existente que desea asociar a la acción.

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Connections
<a name="deploy.action.eks.environment.connections"></a>

(*DeployToKubernetesCluster*/Environment/**Connections**)

(Opcional en las versiones más recientes de la acción; obligatorio en las versiones más antiguas)

Especifique la conexión de cuenta que desee asociar a la acción. Puede especificar un máximo de una conexión de cuenta en `Environment`.

Si no especifica una conexión de cuenta:
+ La acción utiliza la Cuenta de AWS conexión y la función de IAM predeterminada especificadas en el entorno de la consola. CodeCatalyst Para obtener información sobre cómo añadir una conexión de cuenta y un rol de IAM predeterminado al entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).
+ El rol de IAM predeterminado debe incluir las políticas y los permisos que requiere la acción. Para determinar cuáles son esas políticas y permisos, consulte la descripción de la propiedad **Role** en la documentación de la definición de YAML de la acción.

Para obtener más información sobre las conexiones de cuenta, consulte [Permitir el acceso a AWS los recursos con conexión Cuentas de AWS](ipa-connect-account.md). Para obtener más información sobre cómo añadir una conexión de cuenta a un entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿tab/Environment/WhatLa configuración está lista? *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ conexión de cuenta Environment/account/role AWS **

## Name
<a name="deploy.action.eks.environment.connections.name"></a>

(*DeployToKubernetesCluster*/Environment/Connections/**Name**)

(Opcional)

Especifique el nombre de la conexión de cuenta.

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿La configuración está lista? tab/Environment/What *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ conexión de cuenta Environment/account/role AWS **

## Role
<a name="deploy.action.eks.environment.connections.role"></a>

(*DeployToKubernetesCluster*/Environment/Connections/**Role**)

(Obligatorio si se incluye [Connections](#deploy.action.eks.environment.connections))

Especifique el nombre del rol de IAM que la acción **Implementar en clúster de Kubernetes** utiliza para acceder a AWS. Asegúrese de haber [agregado el rol a su CodeCatalyst espacio](ipa-connect-account-addroles.md) y de que el rol incluya las siguientes políticas.

Si no especifica un rol de IAM, la acción utilizará el rol de IAM predeterminado que aparece en el [entorno](deploy-environments.md) de la consola. CodeCatalyst Si usa el rol predeterminado en el entorno, asegúrese de que tenga las siguientes políticas.
+ La siguiente política de permisos:
**aviso**  
Limite los permisos a los que se muestran en la siguiente política. El uso de un rol con permisos más amplios puede suponer un riesgo de seguridad.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "eks:DescribeCluster",
                  "eks:ListClusters"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
**nota**  
La primera vez que utilice el rol, use el siguiente comodín en la instrucción de política de recursos y, a continuación, precise el ámbito de la política con el nombre del recurso cuando esté disponible.  

  ```
  "Resource": "*"
  ```
+ La siguiente política de confianza personalizada:

Asegúrese de añadir este rol a:
+ Su conexión de cuenta. Para obtener más información sobre cómo añadir un rol de IAM a una conexión de cuenta, consulte [Adición de roles de IAM a las conexiones de cuentas](ipa-connect-account-addroles.md).
+ Tu Kubernetes. ConfigMap Para obtener más información sobre cómo añadir un rol de IAM a un ConfigMap, consulte [Administrar usuarios y roles de IAM](https://eksctl.io/usage/iam-identity-mappings/) en la documentación. `eksctl`

**sugerencia**  
Consulte también las [Tutorial: implementación de una aplicación en Amazon EKS](deploy-tut-eks.md) instrucciones sobre cómo añadir un rol de IAM a una conexión de cuenta y. ConfigMap

**nota**  
Puede usar el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` con esta acción, si así lo desea. Para obtener más información acerca de este rol, consulte [Creación del rol **CodeCatalystWorkflowDevelopmentRole-*spaceName*** para su cuenta y su espacio](ipa-iam-roles.md#ipa-iam-roles-service-create). Tenga en cuenta que el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` tiene permisos de acceso total, lo que puede suponer un riesgo para la seguridad. Le recomendamos que utilice este rol solo en tutoriales y situaciones en las que la seguridad no sea un problema. 

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿tab/Environment/WhatLa configuración está lista? *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ Rol Environment/account/role**

## Inputs
<a name="deploy.action.eks.inputs"></a>

(*DeployToKubernetesCluster*/**Inputs**)

(Obligatorio si se incluye [Connections](#deploy.action.eks.environment.connections))

La sección `Inputs` define los datos que necesita la acción `DeployToKubernetesCluster` durante la ejecución de un flujo de trabajo.

**nota**  
Solo se permite una entrada (ya sea un código fuente o un artefacto) para cada acción **Implementar en Amazon EKS**.

Interfaz de usuario correspondiente: pestaña **Entradas**

## Sources
<a name="deploy.action.eks.inputs.sources"></a>

(*DeployToKubernetesCluster*/Inputs/**Sources**)

(Obligatorio si el archivo de manifiesto está almacenado en un repositorio de código fuente)

Si el archivo o los archivos de manifiesto de Kubernetes están almacenados en un repositorio de código fuente, especifique la etiqueta de dicho repositorio. Actualmente, la única etiqueta admitida es `WorkflowSource`.

Si los archivos de manifiesto no están incluidos en un repositorio de código fuente, deben residir en un artefacto generado por otra acción.

Para obtener más información sobre orígenes, consulte [Conexión de repositorios de código fuente a flujos de trabajo](workflows-sources.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Orígenes (opcional)**

## Artifacts - input
<a name="deploy.action.eks.inputs.artifacts"></a>

(*DeployToKubernetesCluster*/Inputs/**Artifacts**)

(Obligatorio si el archivo de manifiesto está almacenado en un [artefacto de salida](workflows-working-artifacts-output.md) de una acción anterior)

Si el archivo o los archivos de manifiesto de Kubernetes están incluidos en un artefacto generado por una acción anterior, especifique ese artefacto aquí. Si los archivos de manifiesto no están incluidos en un artefacto, deben residir en el repositorio de código fuente.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Artefactos (opcional)**

## Configuration
<a name="deploy.action.eks.configuration"></a>

(*DeployToKubernetesCluster*/**Configuration**)

(Obligatorio)

Una sección en la que puede definir las propiedades de configuración de la acción.

Interfaz de usuario correspondiente: pestaña **Configuración**

## Namespace
<a name="deploy.action.eks.namespace"></a>

(*DeployToKubernetesCluster*/Configuration/**Namespace**)

(Opcional)

Especifique el espacio de nombres de Kubernetes en el que se implementará la aplicación de Kubernetes. Use `default` si no utiliza espacios de nombres con el clúster. Para obtener más información sobre los espacios de nombres, consulte [Subdividing your cluster using Kubernetes namespaces](https://kubernetes.io/docs/tasks/administer-cluster/namespaces/#subdividing-your-cluster-using-kubernetes-namespaces) en la documentación de Kubernetes.

Si omite el espacio de nombres, se usará el valor de `default`.

Interfaz de usuario correspondiente: pestaña Configuración/**Espacio de nombres**

## Region
<a name="deploy.action.eks.region"></a>

(*DeployToKubernetesCluster*/Configuration/**Region**)

(Obligatorio) 

Especifique la AWS región en la que residen el clúster y el servicio de Amazon EKS. Para obtener una lista de códigos de región, consulte [Puntos de conexión regionales](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes) en la *Referencia general de AWS*.

Interfaz de usuario correspondiente: pestaña Configuración/**Región**

## Cluster
<a name="deploy.action.eks.cluster"></a>

(*DeployToKubernetesCluster*/Configuration/**Cluster**)

(Obligatorio)

Especifique el nombre de un clúster de Amazon EKS existente. La acción **Implementar en clúster de Kubernetes** implementará la aplicación basada en contenedores en este clúster. Para obtener más información sobre los clústeres de Amazon EKS, consulte [Clústeres](https://docs.aws.amazon.com/eks/latest/userguide/clusters.html) en la **Guía del usuario de Amazon EKS**.

Interfaz de usuario correspondiente: pestaña Configuración/**Clúster**

## Manifests
<a name="deploy.action.eks.manifest"></a>

(*DeployToKubernetesCluster*/Configuration/**Manifests**)

(Obligatorio)

Especifique la ruta a los archivos de manifiesto de Kubernetes con formato YAML, que se denominan *archivos de configuración*, *archivos config* o, simplemente, *configuraciones* en la documentación de Kubernetes.

Si utiliza varios archivos de manifiesto, colóquelos en una sola carpeta y haga referencia a esa carpeta. Kubernetes procesa los archivos de manifiesto de forma alfanumérica, así que asegúrese de anteponer números o letras en orden ascendente a los nombres de los archivos para controlar el orden de procesamiento. Por ejemplo:

`00-namespace.yaml`

`01-deployment.yaml`

Si los archivos de manifiesto residen en el repositorio de código fuente, la ruta es relativa a la carpeta raíz del repositorio de código fuente. Si los archivos residen en un artefacto de una acción del flujo de trabajo anterior, la ruta es relativa a la carpeta raíz del artefacto. 

Ejemplos:

`Manifests/`

`deployment.yaml`

`my-deployment.yml`

No utilice comodines (`*`).

**nota**  
No se admiten [gráficos de Helm](https://helm.sh/docs/topics/charts/) ni [archivos kustomization](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/).

Para obtener más información sobre los archivos de manifiesto, consulte [Organizing resource configurations](https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/#organizing-resource-configurations) en la documentación de Kubernetes.

Interfaz de usuario correspondiente: pestaña Configuración/**Manifiestos**

# Implementación de una CloudFormation pila
<a name="deploy-action-cfn"></a>

En esta sección se describe cómo implementar una AWS CloudFormation pila mediante un CodeCatalyst flujo de trabajo. Para ello, debe añadir la acción **Implementar CloudFormation pila** a su flujo de trabajo. La acción despliega una CloudFormation pila de recursos en AWS función de la plantilla que proporciones. La plantilla puede ser una de las siguientes:
+ CloudFormation plantilla: para obtener más información, consulte [Trabajar con CloudFormation plantillas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html).
+ AWS SAM plantilla: para obtener más información, consulte la [especificación AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html).
**nota**  
Para usar una AWS SAM plantilla, primero debe empaquetar la AWS SAM aplicación mediante la `[sam package](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-package.html)` operación. Para ver un tutorial que te muestra cómo empaquetar este paquete automáticamente como parte de un CodeCatalyst flujo de trabajo de Amazon, consulta[Tutorial: implementación de una aplicación sin servidor](deploy-tut-lambda.md).

Si la pila ya existe, la acción ejecuta la CloudFormation `[CreateChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateChangeSet.html)` operación y, a continuación, la `[ExecuteChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ExecuteChangeSet.html)` operación. A continuación, la acción espera a que se implementen los cambios y se marca como correcta o fallida, en función de los resultados.

Usa la acción **Implementar CloudFormation pila** si ya tienes una AWS SAM plantilla CloudFormation o plantilla que contenga los recursos que te gustaría implementar, o si planeas generar una automáticamente como parte de una [acción de creación](build-add-action.md) de un flujo de trabajo con herramientas como AWS SAM y [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html).

No hay restricciones en cuanto a la plantilla que puedes usar: puedes crearla CloudFormation o AWS SAM usarla con la acción **Implementar CloudFormation pila**.

**sugerencia**  
Para ver un tutorial que muestra cómo implementar una aplicación sin servidor mediante la acción **Implementar CloudFormation pila**, consulte. [Tutorial: implementación de una aplicación sin servidor](deploy-tut-lambda.md)

**Topics**
+ [

## Imagen de tiempo de ejecución utilizada por la acción «Implementar pila» CloudFormation
](#deploy-action-cfn-runtime)
+ [

# Tutorial: implementación de una aplicación sin servidor
](deploy-tut-lambda.md)
+ [

# Añadir la acción «Desplegar CloudFormation pila»
](deploy-action-cfn-adding.md)
+ [

# Configuración de reversiones
](deploy-consumption-enable-alarms.md)
+ [

# Variables de «implementar CloudFormation pila»
](deploy-action-cfn-variables.md)
+ [

# Acción «Desplegar CloudFormation pila» YAML
](deploy-action-ref-cfn.md)

## Imagen de tiempo de ejecución utilizada por la acción «Implementar pila» CloudFormation
<a name="deploy-action-cfn-runtime"></a>

La acción **Implementar CloudFormation pila** se ejecuta en una [imagen de noviembre de 2022](build-images.md#build.previous-image). Para obtener más información, consulte [Imágenes activas](build-images.md#build-curated-images).

# Tutorial: implementación de una aplicación sin servidor
<a name="deploy-tut-lambda"></a>

En este tutorial, aprenderá a crear, probar e implementar una aplicación sin servidor como una CloudFormation pila mediante un flujo de trabajo.

La aplicación de este tutorial es una aplicación web sencilla que genera un mensaje “Hello World”. Se compone de una AWS Lambda función y un Amazon API Gateway, y se crea mediante [AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html), que es una extensión de [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

**Topics**
+ [

## Requisitos previos
](#deploy-tut-lambda-cfn-prereqs)
+ [

## Paso 1: creación de un repositorio de código fuente
](#deploy-tut-lambda-cfn-source)
+ [

## Paso 2: Crear roles AWS
](#deploy-tut-lambda-cfn-roles)
+ [

## Paso 3: Añada AWS funciones a CodeCatalyst
](#deploy-tut-lambda-cfn-roles-add)
+ [

## Paso 4: creación de un bucket de Amazon S3
](#deploy-tut-lambda-cfn-s3)
+ [

## Paso 5: incorporación de archivos de código fuente
](#deploy-tut-lambda-cfn-files)
+ [

## Paso 6: creación y ejecución de un flujo de trabajo
](#deploy-tut-lambda-cfn-workflow)
+ [

## Paso 7: realización de un cambio
](#deploy-tut-lambda-cfn-change)
+ [

## Limpieza
](#deploy-tut-lambda-cfn-clean-up)

## Requisitos previos
<a name="deploy-tut-lambda-cfn-prereqs"></a>

Antes de empezar:
+ Necesita un CodeCatalyst **espacio** con una AWS cuenta conectada. Para obtener más información, consulte [Creación de un espacio](spaces-create.md).
+ En su espacio, necesita un proyecto vacío llamado:

  ```
  codecatalyst-cfn-project
  ```

  Use la opción **Empezar desde cero** para crear este proyecto.

  Para obtener más información, consulte [Crear un proyecto vacío en Amazon CodeCatalyst](projects-create.md#projects-create-empty).
+ En tu proyecto, necesitas un CodeCatalyst **entorno** llamado:

  ```
  codecatalyst-cfn-environment
  ```

  Configure este entorno de la siguiente manera:
  + Elija cualquier tipo, como **Sin producción**.
  + Conecta tu AWS cuenta a ella.
  + En **Rol de IAM predeterminado**, elija cualquier rol. Especificará un rol diferente más adelante.

  Para obtener más información, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md).

## Paso 1: creación de un repositorio de código fuente
<a name="deploy-tut-lambda-cfn-source"></a>

En este paso, crearás un repositorio de origen en CodeCatalyst. Este repositorio se utiliza para almacenar los archivos de código fuente del tutorial, como el archivo de funciones de Lambda. 

Para obtener más información sobre los repositorios de código fuente, consulte [Creación de un repositorio de código fuente](source-repositories-create.md).

**Creación de un repositorio de código fuente**

1. En CodeCatalyst, en el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**. 

1. Elija **Agregar repositorio** y, a continuación, elija **Crear repositorio**.

1. En **Nombre del repositorio**, escriba:

   ```
   codecatalyst-cfn-source-repository
   ```

1. Seleccione **Crear**.

Ahora ha creado un repositorio llamado `codecatalyst-cfn-source-repository`.

## Paso 2: Crear roles AWS
<a name="deploy-tut-lambda-cfn-roles"></a>

En este paso, creará las siguientes funciones de AWS IAM:
+ **Función de implementación**: otorga a la acción CodeCatalyst **Deploy CloudFormation stack** el permiso para acceder a la AWS cuenta y al CloudFormation servicio en los que se implementará la aplicación sin servidor. La acción **Implementar CloudFormation pila** forma parte de tu flujo de trabajo.
+ **Función de creación**: concede a la acción de CodeCatalyst creación el permiso para acceder a su AWS cuenta y escribir en Amazon S3, donde se almacenará el paquete de aplicaciones sin servidor. La acción de compilación forma parte de su flujo de trabajo.
+ **Función de pila**: otorga CloudFormation permiso para leer y modificar los recursos especificados en la AWS SAM plantilla que proporcionará más adelante. También concede permiso a CloudWatch.

Para obtener más información sobre los roles de IAM, consulte [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) en la *Guía del usuario de AWS Identity and Access Management *.

**nota**  
Para ahorrar tiempo, puede crear un único rol, denominado rol `CodeCatalystWorkflowDevelopmentRole-spaceName`, en lugar de los tres roles indicados anteriormente. Para obtener más información, consulte [Creación del rol **CodeCatalystWorkflowDevelopmentRole-*spaceName*** para su cuenta y su espacio](ipa-iam-roles.md#ipa-iam-roles-service-create). Tenga en cuenta que el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` tiene permisos muy amplios, lo que puede suponer un riesgo para la seguridad. Le recomendamos que utilice este rol solo en tutoriales y situaciones en las que la seguridad no sea un problema. En este tutorial se presupone que va a crear los tres roles indicados anteriormente.

**nota**  
También se requiere un [rol de ejecución de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html), pero no es necesario que lo cree ahora porque el archivo `sam-template.yml` lo crea automáticamente cuando ejecuta el flujo de trabajo en el paso 5.



**Creación de un rol de implementación**

1. Cree una política para el rol del modo siguiente:

   1. Inicie sesión en AWS.

   1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. En el panel de navegación, seleccione **Políticas**.

   1. Elija **Crear política**.

   1. Seleccione la pestaña **JSON**.

   1. Elimine el código existente.

   1. Pegue el siguiente código:
**nota**  
La primera vez que utilice el rol para ejecutar acciones de flujo de trabajo, use el comodín en la instrucción de política de recursos y, a continuación, precise el ámbito de la política con el nombre del recurso cuando esté disponible.  

      ```
      "Resource": "*"
      ```

   1. Elija **Siguiente: Etiquetas**.

   1. Elija **Siguiente: Revisar**.

   1. En **Nombre**, escriba:

      ```
      codecatalyst-deploy-policy
      ```

   1. Elija **Crear política**.

      Ahora ha creado una política de permisos.

1. Cree el rol de implementación de la siguiente manera:

   1. En el panel de navegación, seleccione **Roles** y luego seleccione **Crear rol**.

   1. Elija **Política de confianza personalizada**.

   1. Elimine la política de confianza personalizada existente.

   1. Añada la siguiente política de confianza personalizada:

   1. Elija **Siguiente**.

   1. En **Políticas de permisos**, busque `codecatalyst-deploy-policy` y active su casilla de verificación.

   1. Elija **Siguiente**.

   1. En **Nombre del rol**, escriba:

      ```
      codecatalyst-deploy-role
      ```

   1. En **Descripción del rol**, escriba:

      ```
      CodeCatalyst deploy role
      ```

   1. Seleccione **Crear rol**.

   Ahora ha creado un rol de implementación con una política de confianza y una política de permisos.

1. Obtenga el ARN del rol de implementación de la siguiente manera:

   1. Seleccione **Roles** en el panel de navegación.

   1. En el cuadro de búsqueda, introduzca el nombre del rol que acaba de crear (`codecatalyst-deploy-role`).

   1. Elija el rol de la lista.

      Aparece la página **Resumen** del rol.

   1. En la parte superior, copie el valor de **ARN**.

   Ahora ha creado el rol de implementación con los permisos adecuados y ha obtenido su ARN.

**Creación de un rol de compilación**

1. Cree una política para el rol del modo siguiente:

   1. Inicie sesión en AWS.

   1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. En el panel de navegación, seleccione **Políticas**.

   1. Elija **Crear política**.

   1. Seleccione la pestaña **JSON**.

   1. Elimine el código existente.

   1. Pegue el siguiente código:
**nota**  
La primera vez que utilice el rol para ejecutar acciones de flujo de trabajo, use el comodín en la instrucción de política de recursos y, a continuación, precise el ámbito de la política con el nombre del recurso cuando esté disponible.  

      ```
      "Resource": "*"
      ```

   1. Elija **Siguiente: Etiquetas**.

   1. Elija **Siguiente: Revisar**.

   1. En **Nombre**, escriba:

      ```
      codecatalyst-build-policy
      ```

   1. Elija **Crear política**.

      Ahora ha creado una política de permisos.

1. Cree el rol de compilación de la siguiente manera:

   1. En el panel de navegación, seleccione **Roles** y luego seleccione **Crear rol**.

   1. Elija **Política de confianza personalizada**.

   1. Elimine la política de confianza personalizada existente.

   1. Añada la siguiente política de confianza personalizada:

   1. Elija **Siguiente**.

   1. En **Políticas de permisos**, busque `codecatalyst-build-policy` y active su casilla de verificación.

   1. Elija **Siguiente**.

   1. En **Nombre del rol**, escriba:

      ```
      codecatalyst-build-role
      ```

   1. En **Descripción del rol**, escriba:

      ```
      CodeCatalyst build role
      ```

   1. Seleccione **Crear rol**.

   Ahora ha creado un rol de compilación con una política de confianza y una política de permisos.

1. Obtenga el ARN del rol de compilación de la siguiente manera:

   1. Seleccione **Roles** en el panel de navegación.

   1. En el cuadro de búsqueda, introduzca el nombre del rol que acaba de crear (`codecatalyst-build-role`).

   1. Elija el rol de la lista.

      Aparece la página **Resumen** del rol.

   1. En la parte superior, copie el valor de **ARN**.

   Ahora ha creado el rol de compilación con los permisos adecuados y ha obtenido su ARN.<a name="deploy-tut-lambda-cfn-roles-stack"></a>

**Creación de un rol de pila**

1. Inicia sesión AWS con la cuenta en la que quieres implementar tu stack.

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Cree el rol de pila de la siguiente manera:

   1. Seleccione **Roles** en el panel de navegación.

   1. Elija **Crear rol**.

   1. Elija **Servicio de AWS **.

   1. En la sección **Casos de uso**, elige una opción **CloudFormation**de la lista desplegable.

   1. Seleccione el botón de opción **CloudFormation**.

   1. En la parte inferior, elija **Siguiente**.

   1. En el cuadro de búsqueda, busque las siguientes políticas de permisos y, a continuación, active las casillas de verificación correspondientes.
**nota**  
Si busca una política y no aparece, asegúrese de seleccionar **Borrar filtros** e inténtelo de nuevo.
      + **CloudWatchFullAccess**
      + **AWS CloudFormationFullAccess**
      + **IAMFullAcceso**
      + **AWS Lambda\$1 FullAccess**
      + **APIGatewayAdministrador de Amazon**
      + **Amazon S3 FullAccess**
      + **AmazonEC2ContainerRegistryFullAccess**

      La primera política permite el acceso CloudWatch a para permitir la reversión de las pilas cuando se produce una alarma.

      Las políticas restantes permiten acceder AWS SAM a los servicios y recursos de la pila que se implementarán en este tutorial. Para obtener más información, consulte [Permisos](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-permissions.html) en la *Guía para desarrolladores de AWS Serverless Application Model *.

   1. Elija **Siguiente**.

   1. En **Nombre del rol**, escriba:

      ```
      codecatalyst-stack-role
      ```

   1. Seleccione **Crear rol**.

1. Obtenga el ARN del rol de pila de la siguiente manera:

   1. Seleccione **Roles** en el panel de navegación.

   1. En el cuadro de búsqueda, introduzca el nombre del rol que acaba de crear (`codecatalyst-stack-role`).

   1. Elija el rol de la lista.

   1. En la sección **Resumen**, copie el valor de **ARN**. Lo necesitará más adelante.

   Ahora ha creado el rol de pila con los permisos adecuados y ha obtenido su ARN.

## Paso 3: Añada AWS funciones a CodeCatalyst
<a name="deploy-tut-lambda-cfn-roles-add"></a>

En este paso, agrega el rol de creación (`codecatalyst-build-role`) y el rol de implementación (`codecatalyst-deploy-role`) a la conexión de CodeCatalyst cuentas de su espacio.

**nota**  
No es necesario añadir el rol de pila (`codecatalyst-stack-role`) a la conexión. Esto se debe a que el rol de pila lo usa *CloudFormation*(no CodeCatalyst), *después de* que ya se haya establecido una conexión entre CodeCatalyst y AWS utilizando el rol de despliegue. Como el rol de pila no lo utiliza CodeCatalyst para acceder a él AWS, no es necesario que esté asociado a una conexión de cuenta.

**Incorporación de roles de compilación e implementación a la conexión de cuenta**

1. En CodeCatalyst, navega hasta tu espacio.

1. Elija **Cuentas de AWS **. Aparecerá una lista de conexiones de cuenta.

1. Elija la conexión de cuenta que represente la AWS cuenta en la que creó sus funciones de creación e implementación.

1. Seleccione **Administrar roles en la consola de AWS administración**.

   Aparece la página **Añadir función de IAM a Amazon CodeCatalyst Space**. Es posible que tenga que iniciar sesión para acceder a la página.

1. Seleccione **Agregar un rol existente que haya creado en IAM**.

   Se muestra una lista desplegable. La lista muestra todos los roles de IAM con una política de confianza que incluye las entidades principales de los servicios `codecatalyst-runner.amazonaws.com` y `codecatalyst.amazonaws.com`.

1. En la lista desplegable, elija `codecatalyst-build-role` y, a continuación, elija **Agregar rol**.

1. Seleccione **Agregar rol de IAM**, seleccione **Agregar un rol existente que haya creado en IAM** y, en la lista desplegable, elija `codecatalyst-deploy-role`. Seleccione **Add role (Añadir rol)**.

   Ahora ha añadido los roles de compilación e implementación a su espacio.

1. Copia el valor del **nombre CodeCatalyst mostrado de Amazon**. Necesitará este valor más adelante, cuando cree el flujo de trabajo.

## Paso 4: creación de un bucket de Amazon S3
<a name="deploy-tut-lambda-cfn-s3"></a>

En este paso, creará un bucket de Amazon S3 en el que se almacenará el archivo .zip del paquete de implementación de la aplicación sin servidor.

**Creación de un bucket de Amazon S3**

1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel principal, elija **Crear bucket**.

1. En **Nombre del bucket**, escriba:

   ```
   codecatalyst-cfn-s3-bucket
   ```

1. En **AWS Región**, seleccione una región. En este tutorial, se asume que ha elegido **Oeste de EE. UU. (Oregón) us-west-2**. Para obtener más información sobre las regiones admitidas en Amazon S3, consulte [Puntos de conexión y cuotas de Amazon Simple Storage Service](https://docs.aws.amazon.com/general/latest/gr/s3.html) en la *Referencia general de AWS*.

1. En la parte inferior de la página, elija **Crear bucket**.

Ahora ha creado un bucket llamado **codecatalyst-cfn-s3-bucket** en la región Oeste de EE. UU. (Oregón) us-west-2.

## Paso 5: incorporación de archivos de código fuente
<a name="deploy-tut-lambda-cfn-files"></a>

En este paso, añadirá varios archivos fuente de la aplicación a su repositorio CodeCatalyst de código fuente. La carpeta `hello-world` contiene los archivos de la aplicación que va a implementar. La carpeta `tests` contiene las pruebas unitarias. La estructura de carpetas es la siguiente:

```
.
|— hello-world
|  |— tests
|     |— unit
|        |— test-handler.js
|  |— app.js
|— .npmignore
|— package.json
|— sam-template.yml
|— setup-sam.sh
```

### Archivo .npmignore
<a name="deploy-tut-lambda-cfn-files-npmignore"></a>

El `.npmignore` archivo indica qué archivos y carpetas debe excluir npm del paquete de la aplicación. En este tutorial, npm excluye la carpeta `tests` porque no forma parte de la aplicación.

**Adición del .npmignore**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto, `codecatalyst-cfn-project`.

1. En el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**.

1. En la lista de repositorios de código fuente, elija su repositorio, `codecatalyst-cfn-source-repository`. 

1. En **Archivos**, elija **Crear archivo**.

1. En **Nombre del archivo**, escriba:

   ```
   .npmignore
   ```

1. En el cuadro de texto, introduzca el siguiente código:

   ```
   tests/*
   ```

1. Seleccione **Confirmar** y, a continuación, vuelva a seleccionar **Confirmar**.

   Ahora ha creado un archivo llamado `.npmignore` en la raíz del repositorio.

### Archivo package.json
<a name="deploy-tut-lambda-cfn-files-package-json"></a>

El archivo `package.json` contiene metadatos importantes sobre su proyecto de Node, como el nombre del proyecto, el número de versión, la descripción, las dependencias y otros detalles que describen cómo interactuar con la aplicación y cómo ejecutarla.

El archivo `package.json` de este tutorial incluye una lista de dependencias y un script `test`. El script de prueba hace lo siguiente:
+ Mediante [mocha](https://mochajs.org/), el script de prueba ejecuta las pruebas unitarias especificadas en `hello-world/tests/unit/` y escribe los resultados en un archivo `junit.xml` mediante el generador de informes [xunit]().
+ Usando [Istanbul (nyc)](https://istanbul.js.org/), el script de prueba genera un informe de cobertura de código (`clover.xml`) utilizando el generador de informes [clover](https://openclover.org/doc/manual/4.2.0/general--about-openclover.html). Para obtener más información, consulte [Using alternative reporters](https://istanbul.js.org/docs/advanced/alternative-reporters/#clover) en la documentación de Istanbul.

**Adición del archivo package.json**

1. En el repositorio, en **Archivos**, seleccione **Crear archivo**.

1. En **Nombre del archivo**, escriba:

   ```
   package.json
   ```

1. En el cuadro de texto, introduzca el siguiente código:

   ```
   {
     "name": "hello_world",
     "version": "1.0.0",
     "description": "hello world sample for NodeJS",
     "main": "app.js",
     "repository": "https://github.com/awslabs/aws-sam-cli/tree/develop/samcli/local/init/templates/cookiecutter-aws-sam-hello-nodejs",
     "author": "SAM CLI",
     "license": "MIT",
     "dependencies": {
       "axios": "^0.21.1",
       "nyc": "^15.1.0"
     },
     "scripts": {
       "test": "nyc --reporter=clover mocha hello-world/tests/unit/ --reporter xunit --reporter-option output=junit.xml"
     },
     "devDependencies": {
       "aws-sdk": "^2.815.0",
       "chai": "^4.2.0",
       "mocha": "^8.2.1"
     }
   }
   ```

1. Seleccione **Confirmar** y, a continuación, vuelva a seleccionar **Confirmar**.

   Ahora ha añadido un archivo llamado `package.json` en la raíz del repositorio.

### Archivo sam-template.yml
<a name="deploy-tut-lambda-cfn-files-sam-template-yml"></a>

El archivo `sam-template.yml` contiene las instrucciones para implementar la función de Lambda y la instancia de API Gateway y configurarlas juntas. Sigue la [especificación de la AWS Serverless Application Model plantilla](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html), que amplía la especificación CloudFormation de la plantilla.

En este tutorial, utilizarás una AWS SAM plantilla en lugar de una CloudFormation plantilla normal porque AWS SAM ofrece un útil tipo de recurso [AWS: :Serverless: :Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html). Este tipo realiza una gran parte behind-the-scenes de la configuración que normalmente hay que escribir para usar la sintaxis básica. CloudFormation Por ejemplo, el recurso `AWS::Serverless::Function` crea una función de Lambda, un rol de ejecución de Lambda y asignaciones de orígenes de eventos que inician la función. Tienes que codificar todo esto si quieres escribirlo usando la básica CloudFormation.

Aunque en este tutorial se utiliza una plantilla prediseñada, puede generar una como parte de su flujo de trabajo mediante una acción de compilación. Para obtener más información, consulte [Implementación de una CloudFormation pila](deploy-action-cfn.md).

**Adición del archivo sam-template.yml**

1. En el repositorio, en **Archivos**, seleccione **Crear archivo**.

1. En **Nombre del archivo**, escriba:

   ```
   sam-template.yml
   ```

1. En el cuadro de texto, introduzca el siguiente código:

   ```
   AWSTemplateFormatVersion: '2010-09-09'
   Transform: AWS::Serverless-2016-10-31
   Description: >
     serverless-api
   
     Sample SAM Template for serverless-api
     
   # More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
   Globals:
     Function:
       Timeout: 3
   
   Resources:
     HelloWorldFunction:
       Type: AWS::Serverless::Function # For details on this resource type, see https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
       Properties:
         CodeUri: hello-world/
         Handler: app.lambdaHandler
         Runtime: nodejs12.x
         Events:
           HelloWorld:
             Type: Api # For details on this event source type, see https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
             Properties:
               Path: /hello
               Method: get
   
   Outputs:
     # ServerlessRestApi is an implicit API created out of the events key under Serverless::Function
     # Find out about other implicit resources you can reference within AWS SAM at
     # https://github.com/awslabs/serverless-application-model/blob/master/docs/internals/generated_resources.rst#api
     HelloWorldApi:
       Description: "API Gateway endpoint URL for the Hello World function"
       Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/"
     HelloWorldFunction:
       Description: "Hello World Lambda function ARN"
       Value: !GetAtt HelloWorldFunction.Arn
     HelloWorldFunctionIamRole:
       Description: "Implicit Lambda execution role created for the Hello World function"
       Value: !GetAtt HelloWorldFunctionRole.Arn
   ```

1. Seleccione **Confirmar** y, a continuación, vuelva a seleccionar **Confirmar**.

   Ahora ha añadido un archivo llamado `sam-template.yml` en la carpeta raíz del repositorio.

### Archivo setup-sam.sh
<a name="deploy-tut-lambda-cfn-files-setup-sam"></a>

El `setup-sam.sh` archivo contiene las instrucciones para descargar e instalar la utilidad AWS SAM CLI. El flujo de trabajo usa esta utilidad para empaquetar el código fuente de `hello-world`.

**Adición del archivo setup-sam.sh**

1. En el repositorio, en **Archivos**, seleccione **Crear archivo**.

1. En **Nombre del archivo**, escriba:

   ```
   setup-sam.sh
   ```

1. En el cuadro de texto, introduzca el siguiente código:

   ```
   #!/usr/bin/env bash
   echo "Setting up sam"
   
   yum install unzip -y
   
   curl -LO https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip
   unzip -qq aws-sam-cli-linux-x86_64.zip -d sam-installation-directory
   
   ./sam-installation-directory/install; export AWS_DEFAULT_REGION=us-west-2
   ```

   En el código anterior, *us-west-2* sustitúyalo por tu AWS región.

1. Seleccione **Confirmar** y, a continuación, vuelva a seleccionar **Confirmar**.

   Ahora ha añadido un archivo llamado `setup-sam.sh` en la raíz del repositorio.

### Archivo app.js
<a name="deploy-tut-lambda-cfn-files-app-js"></a>

El archivo `app.js` contiene el código de la función de Lambda. En este tutorial, el código devuelve el texto `hello world`.

**Adición del archivo app.js**

1. En el repositorio, en **Archivos**, seleccione **Crear archivo**.

1. En **Nombre del archivo**, escriba:

   ```
   hello-world/app.js
   ```

1. En el cuadro de texto, introduzca el siguiente código:

   ```
   // const axios = require('axios')
   // const url = 'http://checkip.amazonaws.com/';
   let response;
   
   /**
    *
    * Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format
    * @param {Object} event - API Gateway Lambda Proxy Input Format
    *
    * Context doc: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html 
    * @param {Object} context
    *
    * Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
    * @returns {Object} object - API Gateway Lambda Proxy Output Format
    * 
    */
   exports.lambdaHandler = async (event, context) => {
       try {
           // const ret = await axios(url);
           response = {
               'statusCode': 200,
               'body': JSON.stringify({
                   message: 'hello world',
                   // location: ret.data.trim()
               })
           }
       } catch (err) {
           console.log(err);
           return err;
       }
   
       return response
   };
   ```

1. Seleccione **Confirmar** y, a continuación, vuelva a seleccionar **Confirmar**.

   Ahora ha creado una carpeta llamada `hello-world` y un archivo llamado `app.js`.

### Archivo test-handler.js
<a name="deploy-tut-lambda-cfn-files-test-handler-js"></a>

El archivo `test-handler.js` contiene pruebas unitarias para la función de Lambda.

**Adición del archivo test-handler.js**

1. En el repositorio, en **Archivos**, seleccione **Crear archivo**.

1. En **Nombre del archivo**, escriba:

   ```
   hello-world/tests/unit/test-handler.js
   ```

1. En el cuadro de texto, introduzca el siguiente código:

   ```
   'use strict';
   
   const app = require('../../app.js');
   const chai = require('chai');
   const expect = chai.expect;
   var event, context;
   
   describe('Tests index', function () {
       it('verifies successful response', async () => {
           const result = await app.lambdaHandler(event, context)
   
           expect(result).to.be.an('object');
           expect(result.statusCode).to.equal(200);
           expect(result.body).to.be.an('string');
   
           let response = JSON.parse(result.body);
   
           expect(response).to.be.an('object');
           expect(response.message).to.be.equal("hello world");
           // expect(response.location).to.be.an("string");
       });
   });
   ```

1. Seleccione **Confirmar** y, a continuación, vuelva a seleccionar **Confirmar**.

   Ahora ha añadido un archivo llamado `test-handler.js` en la carpeta `hello-world/tests/unit`.

Ahora ha añadido todos los archivos de código fuente.

Dedique unos minutos a comprobar su trabajo y a asegurarse de que ha colocado todos los archivos en las carpetas correctas. La estructura de carpetas es la siguiente:

```
.
|— hello-world
|  |— tests
|     |— unit
|        |— test-handler.js
|  |— app.js
|— .npmignore
|— README.md
|— package.json
|— sam-template.yml
|— setup-sam.sh
```

## Paso 6: creación y ejecución de un flujo de trabajo
<a name="deploy-tut-lambda-cfn-workflow"></a>

En este paso, creará un flujo de trabajo que empaquetará el código fuente de Lambda y lo implementará. El flujo de trabajo consta de los siguientes componentes que se ejecutarán en orden:
+ Un desencadenador: este desencadenador inicia la ejecución automática del flujo de trabajo cuando se introduce un cambio en el repositorio de código fuente. Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).
+ Una acción de prueba (`Test`): al activarse, esta acción instala el [administrador de paquetes de Node (npm)](https://www.npmjs.com/) y, a continuación, ejecuta el comando `npm run test`. Este comando indica a npm que ejecute el script `test` definido en el archivo `package.json`. El script `test`, a su vez, ejecuta las pruebas unitarias y genera dos informes: un informe de prueba (`junit.xml`) y un informe de cobertura de código (`clover.xml`). Para obtener más información, consulte [Archivo package.json](#deploy-tut-lambda-cfn-files-package-json).

  A continuación, la acción de prueba transforma los informes XML en CodeCatalyst informes y los muestra en la CodeCatalyst consola, en la pestaña **Informes** de la acción de prueba.

  Para obtener más información sobre la acción de prueba, consulte [Pruebas con flujos de trabajoPruebas con flujos de trabajo](test-workflow-actions.md).
+ Una acción de compilación (`BuildBackend`): al finalizar la acción de prueba, la acción de compilación descarga e instala la AWS SAM CLI, empaqueta el `hello-world` código fuente y copia el paquete en su bucket de Amazon S3, donde el servicio Lambda espera que esté. La acción también genera un nuevo archivo de AWS SAM plantilla llamado `sam-template-packaged.yml` y lo coloca en un artefacto de salida denominado. `buildArtifact`

  Para obtener más información sobre la acción de compilación, consulte [Compilación con flujos de trabajo](build-workflow-actions.md).
+ Una acción de despliegue (`DeployCloudFormationStack`): al finalizar la acción de creación, la acción de despliegue busca el artefacto de salida generado por la acción de creación (`buildArtifact`), encuentra la AWS SAM plantilla que contiene y, a continuación, ejecuta la plantilla. La AWS SAM plantilla crea una pila que despliega la aplicación sin servidor.

**Para crear un flujo de trabajo**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Seleccione **Crear flujo de trabajo**.

1. En **Repositorio de código fuente**, elija `codecatalyst-cfn-source-repository`.

1. En **Ramificación**, elija `main`.

1. Seleccione **Crear**.

1. Elimine el código de ejemplo de YAML.

1. Añada el código de YAML siguiente:
**nota**  
En el código de YAML que se muestra a continuación, puede omitir las secciones `Connections:` si lo desea. Si omite estas secciones, debe asegurarse de que el rol especificado en el campo **Rol de IAM predeterminado** del entorno incluya los permisos y las políticas de confianza de ambos roles que se describen en [Paso 2: Crear roles AWS](#deploy-tut-lambda-cfn-roles). Para obtener más información sobre cómo configurar un entorno con un rol de IAM predeterminado, consulte [Creación de un entorno](deploy-environments-creating-environment.md).

   ```
   Name: codecatalyst-cfn-workflow
   SchemaVersion: 1.0
   
   Triggers:
     - Type: PUSH
       Branches:
         - main   
   Actions:
     Test:
       Identifier: aws/managed-test@v1
       Inputs:
         Sources:
           - WorkflowSource
       Outputs:
         Reports:
           CoverageReport:
             Format: CLOVERXML
             IncludePaths:
               - "coverage/*"
           TestReport:
             Format: JUNITXML
             IncludePaths:
               - junit.xml
       Configuration:
         Steps:
           - Run: npm install
           - Run: npm run test  
     BuildBackend:
       Identifier: aws/build@v1
       DependsOn:
         - Test
       Environment:
         Name: codecatalyst-cfn-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-build-role
       Inputs:
         Sources:
           - WorkflowSource
       Configuration: 
         Steps:
           - Run: . ./setup-sam.sh
           - Run: sam package --template-file sam-template.yml --s3-bucket codecatalyst-cfn-s3-bucket --output-template-file sam-template-packaged.yml --region us-west-2
       Outputs:
         Artifacts:
           - Name: buildArtifact
             Files:
               - "**/*"
     DeployCloudFormationStack:
       Identifier: aws/cfn-deploy@v1
       DependsOn: 
         - BuildBackend
       Environment:
         Name: codecatalyst-cfn-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-deploy-role
       Inputs:
         Artifacts:
           - buildArtifact
         Sources: []
       Configuration:
         name: codecatalyst-cfn-stack
         region: us-west-2
         role-arn: arn:aws:iam::111122223333:role/StackRole
         template: ./sam-template-packaged.yml
         capabilities: CAPABILITY_IAM,CAPABILITY_AUTO_EXPAND
   ```

   En el código anterior, sustituya:
   + Ambas instancias o *codecatalyst-cfn-environment* con el nombre de su entorno.
   + Ambas instancias *codecatalyst-account-connection* con el nombre visible de la conexión de su cuenta. El nombre de visualización puede ser un número. Para obtener más información, consulte [Paso 3: Añada AWS funciones a CodeCatalyst](#deploy-tut-lambda-cfn-roles-add).
   + *codecatalyst-build-role* por el nombre del rol de compilación que creó en [Paso 2: Crear roles AWS](#deploy-tut-lambda-cfn-roles).
   + *codecatalyst-cfn-s3-bucket*con el nombre del bucket de Amazon S3 en el que lo creaste[Paso 4: creación de un bucket de Amazon S3](#deploy-tut-lambda-cfn-s3).
   + Ambas instancias *us-west-2* con la región en la que reside su bucket de Amazon S3 (primera instancia) y en la que se implementará su pila (segunda instancia). Estas regiones pueden ser diferentes. En este tutorial se asume que ambas regiones están establecidas en `us-west-2`. Para obtener más información sobre las regiones compatibles con Amazon S3 CloudFormation, consulte los [puntos de enlace y las cuotas del *Referencia general de AWS*servicio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) en.
   + *codecatalyst-deploy-role* por el nombre del rol de implementación que creó en [Paso 2: Crear roles AWS](#deploy-tut-lambda-cfn-roles).
   + *codecatalyst-cfn-environment*con el nombre del entorno en [Requisitos previos](#deploy-tut-lambda-cfn-prereqs) el que creó.
   + *arn:aws:iam::111122223333:role/StackRole*con el nombre de recurso de Amazon (ARN) del rol de pila en el que creaste. [Paso 2: Crear roles AWS](#deploy-tut-lambda-cfn-roles)
**nota**  
Si decidió no crear funciones de creación, implementación y apilamiento *codecatalyst-build-role**codecatalyst-deploy-role*, sustituya y *arn:aws:iam::111122223333:role/StackRole* por el nombre o el ARN de la `CodeCatalystWorkflowDevelopmentRole-spaceName` función. Para obtener más información acerca de este rol, consulte [Paso 2: Crear roles AWS](#deploy-tut-lambda-cfn-roles).

   Para obtener información sobre las propiedades del código mostrado anteriormente, consulte el [Acción «Desplegar CloudFormation pila» YAML](deploy-action-ref-cfn.md).

1. (Opcional) Seleccione **Validar** para asegurarse de que el código de YAML del flujo de trabajo sea válido antes de confirmarlo.

1. Elija **Confirmar**.

1. En el cuadro de diálogo **Confirmar flujo de trabajo**, escriba lo siguiente:

   1. En **Nombre del archivo de flujo de trabajo**, deje el valor predeterminado, `codecatalyst-cfn-workflow`.

   1. En **Mensaje de confirmación**, escriba:

      ```
      add initial workflow file
      ```

   1. En **Repositorio**, elija **codecatalyst-cfn-source-repository**.

   1. En **Nombre de la ramificación**, elija **principal**.

   1. Elija **Confirmar**.

   Ahora ha creado un flujo de trabajo. La ejecución del flujo de trabajo se inicia automáticamente debido al desencadenador definido en la parte superior del flujo de trabajo. En concreto, cuando confirmó (e incorporó) el archivo `codecatalyst-cfn-workflow.yaml` en su repositorio de código fuente, el desencadenador inició la ejecución del flujo de trabajo.

**Consulta de la ejecución del flujo de trabajo en curso**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el flujo de trabajo que acaba de crear: `codecatalyst-cfn-workflow`.

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

1. En la columna **ID de ejecución**, elija el ID de ejecución.

1. Elija **Prueba** para ver el progreso de las pruebas.

1. Elija **BuildBackend**ver el progreso de la creación.

1. Elija **DeployCloudFormationStack**ver el progreso de la implementación.

   Para obtener más información sobre cómo ver los detalles de ejecución, consulte [Visualización del estado y los detalles de la ejecución de un flujo de trabajo](workflows-view-run.md).

1. Cuando finalice la **DeployCloudFormationStack**acción, haga lo siguiente:
   + Si la ejecución del flujo de trabajo se realizó correctamente, vaya al siguiente procedimiento.
   + Si la ejecución del flujo de trabajo falló en la **prueba** o la **BuildBackend**acción, selecciona **Registros** para solucionar el problema.
   + Si la ejecución del flujo de trabajo falló en la **DeployCloudFormationStack**acción, elija la acción de despliegue y, a continuación, elija la pestaña **Resumen**. Desplázate hasta la sección de **CloudFormation eventos** para ver el mensaje de error detallado. Si se ha producido una reversión, elimina la `codecatalyst-cfn-stack` pila a través de la CloudFormation consola AWS antes de volver a ejecutar el flujo de trabajo.

**Verificación de la implementación**

1. Tras una implementación correcta, seleccione **Variables (7)** en la barra de menú horizontal situada cerca de la parte superior. (No elija **Variables** en el panel de la derecha).

1. Junto a **HelloWorldApi**, pega la `https://` URL en un navegador.

   Aparece un mensaje JSON **hello world** de la función de Lambda, que indica que el flujo de trabajo implementó y configuró correctamente la función de Lambda y la instancia de API Gateway.
**sugerencia**  
Puedes hacer que se CodeCatalyst muestre esta URL en el diagrama de flujo de trabajo con unas cuantas configuraciones pequeñas. Para obtener más información, consulte [Visualización de la URL de la aplicación en el diagrama de flujo de trabajo](deploy-app-url.md).

**Verificación de los resultados de las pruebas unitarias y la cobertura del código**

1. En el diagrama de flujo de trabajo, elija **Probar** y, a continuación, elija **Informes**.

1. Elija **TestReport**ver los resultados de las pruebas unitarias o los detalles de la cobertura del código de los archivos que se están probando, en este caso, `app.js` y`test-handler.js`. **CoverageReport**

**Verificación de los recursos implementados**

1. Inicie sesión en la consola de API Gateway Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/). 

1. Observe la **codecatalyst-cfn-stack**API que creó la AWS SAM plantilla. El nombre de la API proviene del valor `Configuration/name` del archivo de definición del flujo de trabajo (`codecatalyst-cfn-workflow.yaml`).

1. Abre la AWS Lambda consola en [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Seleccione **Funciones** en el panel de navegación.

1. Elija su función de Lambda, `codecatalyst-cfn-stack-HelloWorldFunction-string`.

1. Puede ver cómo la instancia de API Gateway es un desencadenador de la función. Esta integración se configuró automáticamente según el tipo de AWS SAM `AWS::Serverless::Function` recurso.

## Paso 7: realización de un cambio
<a name="deploy-tut-lambda-cfn-change"></a>

En este paso, realizará un cambio en el código fuente de Lambda y lo confirmará. Esta confirmación inicia una nueva ejecución del flujo de trabajo. Esta ejecución implementa la nueva función de Lambda en un esquema azul-verde que usa la configuración de cambio de tráfico predeterminada especificada en la consola de Lambda.

**Realización de un cambio en el código fuente de Lambda**

1. En CodeCatalyst, navega hasta tu proyecto.

1. En el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**.

1. Elija su repositorio de código fuente `codecatalyst-cfn-source-repository`.

1. Cambie el archivo de la aplicación:

   1. Elija la carpeta `hello-world`.

   1. Seleccione el archivo `app.js`.

   1. Seleccione **Editar**.

   1. En la línea 23, cambie `hello world` por **Tutorial complete\$1**

   1. Seleccione **Confirmar** y, a continuación, vuelva a seleccionar **Confirmar**.

      La confirmación hace que se inicie una nueva ejecución del flujo de trabajo. Esta ejecución fallará porque no ha actualizado las pruebas unitarias para que reflejen el cambio de nombre.

1. Actualice las pruebas unitarias:

   1. Elija `hello-world\tests\unit\test-handler.js`.

   1. Seleccione **Editar**.

   1. En la línea 19, cambie `hello world` por **Tutorial complete\$1**

   1. Seleccione **Confirmar** y, a continuación, vuelva a seleccionar **Confirmar**.

      La confirmación hace que se inicie otra ejecución del flujo de trabajo. Esta ejecución se realizará correctamente.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija `codecatalyst-cfn-workflow` y, a continuación, **Ejecuciones**.

1. Elija el ID de ejecución de la última ejecución. Debería estar todavía en curso.

1. Selecciona **Probar** y verás el progreso **DeployCloudFormationStack**de la ejecución del flujo de trabajo. **BuildBackend**

1. Cuando finalice el flujo de trabajo, elija **Variables** (7) cerca de la parte superior.

1. Junto a **HelloWorldApi**, pega la `https://` URL en un navegador.

   Aparece un mensaje `Tutorial complete!` en el navegador, lo que indica que la aplicación se ha implementado correctamente.

## Limpieza
<a name="deploy-tut-lambda-cfn-clean-up"></a>

Limpie los archivos y servicios utilizados en este tutorial para evitar que le cobren por ellos.

**Para limpiar en la CodeCatalyst consola**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elimine `codecatalyst-cfn-workflow`.

1. Elimine `codecatalyst-cfn-environment`.

1. Elimine `codecatalyst-cfn-source-repository`.

1. Elimine `codecatalyst-cfn-project`.

**Para limpiar en el Consola de administración de AWS**

1. Limpie en CloudFormation, de la siguiente manera:

   1. Abre la CloudFormation consola en [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

   1. Elimine la `codecatalyst-cfn-stack`.

      Al eliminar la pila, se eliminan todos los recursos del tutorial de los servicios de API Gateway y Lambda.

1. Limpie Amazon S3 de la siguiente manera:

   1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   1. Elija el icono `codecatalyst-cfn-s3-bucket`.

   1. Elimine el contenido del bucket.

   1. Elimine el bucket .

1. Limpie IAM de la siguiente manera:

   1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Elimine la `codecatalyst-deploy-policy`.

   1. Elimine la `codecatalyst-build-policy`.

   1. Elimine la `codecatalyst-stack-policy`.

   1. Elimine la `codecatalyst-deploy-role`.

   1. Elimine la `codecatalyst-build-role`.

   1. Elimine la `codecatalyst-stack-role`.

En este tutorial, aprendió a implementar una aplicación sin servidor como una CloudFormation pila mediante un CodeCatalyst flujo de trabajo y una acción de **implementación CloudFormation ** de una pila.

# Añadir la acción «Desplegar CloudFormation pila»
<a name="deploy-action-cfn-adding"></a>

Siga las siguientes instrucciones para añadir la acción **Implementar CloudFormation pila** a su flujo de trabajo. 

------
#### [ Visual ]

**Para añadir la acción «Desplegar CloudFormation pila» mediante el editor visual**

1. [Abra la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busca la acción **Implementar CloudFormation pila** y realiza una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Seleccione **Implementar CloudFormation pila**. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Descargar** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. En las pestañas **Entradas** y **Configuración**, complete los campos según sus necesidades. Para obtener una descripción de cada uno de los campos, consulte la [Acción «Desplegar CloudFormation pila» YAML](deploy-action-ref-cfn.md). Esta referencia proporciona información detallada sobre cada campo (y el valor de la propiedad de YAML correspondiente) tal como aparece en el editor visual y el de YAML.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Para añadir la acción «Desplegar CloudFormation pila» mediante el editor YAML**

1. [Abre la consola en https://codecatalyst.aws/ CodeCatalyst .](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busca la acción **Implementar CloudFormation pila** y realiza una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Seleccione **Implementar CloudFormation pila**. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Descargar** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. Modifique las propiedades del código de YAML en función de sus necesidades. Encontrará una explicación de todas las propiedades disponibles en la [Acción «Desplegar CloudFormation pila» YAML](deploy-action-ref-cfn.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Configuración de reversiones
<a name="deploy-consumption-enable-alarms"></a>

De forma predeterminada, si la acción **Desplegar CloudFormation pila** falla, se revertirá la pila al último estado estable conocido. CloudFormation Puede cambiar el comportamiento para que las reversiones se produzcan no solo cuando la acción falle, sino también cuando se produzca una CloudWatch alarma de Amazon específica. Para obtener más información sobre CloudWatch las alarmas, consulta [Uso de CloudWatch alarmas de Amazon](https://docs.aws.amazon.com/) en la *Guía del CloudWatch usuario de Amazon*.

También puedes cambiar el comportamiento predeterminado para que CloudFormation no se revierta la pila si la acción falla. 

Siga estas instrucciones para configurar las reversiones.

**nota**  
No puede iniciar una reversión manualmente.

------
#### [ Visual ]

**Antes de empezar**

1. Asegúrese de tener un [flujo de trabajo](workflow.md) que incluya una acción de **implementación de CloudFormation pila** que funcione. Para obtener más información, consulte [Implementación de una CloudFormation pila](deploy-action-cfn.md).

1. En el rol especificado en el campo **Función de pila: opcional** de la acción **Implementar CloudFormation pila**, asegúrate de incluir el **CloudWatchFullAccess**permiso. Para obtener más información sobre cómo crear este rol con los permisos adecuados, consulte [Paso 2: Crear roles AWS](deploy-tut-lambda.md#deploy-tut-lambda-cfn-roles).

**Para configurar las alarmas de reversión para la acción «Implementar pila» CloudFormation**

1. [Abra la consola en https://codecatalyst.aws/ CodeCatalyst .](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. Elija su acción de **despliegue de CloudFormation pila**.

1. En el panel de detalles, elija **Configuración**.

1. En la parte inferior, expanda **Avanzada**.

1. En **Supervisar alarma ARNs**, selecciona **Añadir alarma**.

1. Escriba información en los siguientes campos:
   + **ARN de la alarma**

     Especifique el nombre de recurso de Amazon (ARN) de una CloudWatch alarma de Amazon para utilizarla como activador de reversión. Por ejemplo, `arn:aws:cloudwatch::123456789012:alarm/MyAlarm`. Puede añadir un máximo de cinco desencadenadores de reversión.
**nota**  
Si especificas un CloudWatch ARN de alarma, también tendrás que configurar permisos adicionales para permitir el acceso de la acción. CloudWatch Para obtener más información, consulte [Configuración de reversiones](#deploy-consumption-enable-alarms).
   + **Tiempo de monitoreo**

     Especifique un período de tiempo, de 0 a 180 minutos, durante el cual se CloudFormation supervisarán las alarmas especificadas. La supervisión comienza *después* de que se hayan implementado todos los recursos de la pila. Si la alarma se produce dentro del tiempo de supervisión especificado, se produce un error en la implementación y se CloudFormation revierte toda la operación de apilado.

     Predeterminado: 0. CloudFormation solo supervisa las alarmas mientras se despliegan los recursos de la pila, no después.

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

**Para configurar los activadores de reversión para la acción «Implementar pila» CloudFormation**

1. [Abra la consola en https://codecatalyst.aws/ CodeCatalyst .](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre de un flujo de trabajo que incluya la acción **Implementar pila de CloudFormation **. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. Añada las propiedades `monitor-alarm-arns` y `monitor-timeout-in-minutes` en el código de YAML para añadir desencadenadores de reversión. Para obtener una explicación de cada propiedad, consulte [Acción «Desplegar CloudFormation pila» YAML](deploy-action-ref-cfn.md).

1. En el rol especificado en la `role-arn` propiedad de la acción **Implementar CloudFormation pila**, asegúrate de incluir el **CloudWatchFullAccess**permiso. Para obtener más información sobre cómo crear este rol con los permisos adecuados, consulte [Paso 2: Crear roles AWS](deploy-tut-lambda.md#deploy-tut-lambda-cfn-roles).

------

------
#### [ Visual ]

**Para desactivar las reversiones de la acción «Desplegar pila» CloudFormation**

1. [Abre la consola en https://codecatalyst.aws/ CodeCatalyst .](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre de un flujo de trabajo que incluya la acción **Implementar pila de CloudFormation **. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. Elija su acción de **despliegue de CloudFormation pila**.

1. En el panel de detalles, elija **Configuración**.

1. En la parte inferior, expanda **Avanzada**.

1. Active **Desactivar la reversión**.

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

**Para desactivar las reversiones de la acción «Desplegar pila» CloudFormation**

1. [Abre la consola en https://codecatalyst.aws/ CodeCatalyst .](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre de un flujo de trabajo que incluya la acción **Implementar pila de CloudFormation **. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. Añada la propiedad `disable-rollback: 1` en el código de YAML para detener las reversiones. Para obtener una explicación de esta propiedad, consulte [Acción «Desplegar CloudFormation pila» YAML](deploy-action-ref-cfn.md).

------

# Variables de «implementar CloudFormation pila»
<a name="deploy-action-cfn-variables"></a>

La acción **Implementar CloudFormation pila** produce y establece las siguientes variables en tiempo de ejecución. Se conocen como *variables predefinidas*.

Para obtener información sobre cómo hacer referencia a estas variables en un flujo de trabajo, consulte [Uso de variables predefinidas](workflows-using-predefined-variables.md).


| Clave | Valor | 
| --- | --- | 
|  deployment-platform  |  El nombre de la plataforma de implementación. Codificado en `AWS:CloudFormation`.  | 
|  region  |  El código de región en el Región de AWS que se implementó durante la ejecución del flujo de trabajo. Ejemplo: `us-west-2`  | 
|  stack-id  |  El Nombre de recurso de Amazon (ARN) de la pila implementada. Ejemplo: `arn:aws:cloudformation:us-west-2:111122223333:stack/codecatalyst-cfn-stack/6aad4380-100a-11ec-a10a-03b8a84d40df`  | 

# Acción «Desplegar CloudFormation pila» YAML
<a name="deploy-action-ref-cfn"></a>

**La siguiente es la definición en YAML de la acción Implementar pila. CloudFormation ** Para obtener información sobre cómo utilizar esta acción, consulte [Implementación de una CloudFormation pila](deploy-action-cfn.md).

Esta definición de acción existe como una sección dentro de un archivo de definición de flujo de trabajo más amplio. Para obtener más información acerca de este archivo, consulte [Definición de flujo de trabajo en YAML](workflow-reference.md).

**nota**  
La mayoría de las propiedades de YAML que se muestran a continuación tienen elementos de interfaz de usuario correspondientes en el editor visual. Para buscar un elemento de la interfaz de usuario, use **Ctrl\$1F**. El elemento aparecerá en la lista con su propiedad de YAML asociada.

```
# The workflow definition starts here.
# See Propiedades de nivel superior for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.    
  DeployCloudFormationStack:  
    Identifier: aws/cfn-deploy@v1
    DependsOn:
      - build-action
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: DeployRole
    Inputs:
      Sources:
        - source-name-1
      Artifacts:
        - CloudFormation-artifact
    Configuration:
      name: stack-name
      region: us-west-2
      template: template-path
      role-arn: arn:aws:iam::123456789012:role/StackRole        
      capabilities: CAPABILITY_IAM,CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND
      parameter-overrides: KeyOne=ValueOne,KeyTwo=ValueTwo | path-to-JSON-file
      no-execute-changeset: 1|0
      fail-on-empty-changeset: 1|0
      disable-rollback: 1|0
      termination-protection: 1|0
      timeout-in-minutes: minutes
      notification-arns: arn:aws:sns:us-east-1:123456789012:MyTopic,arn:aws:sns:us-east-1:123456789012:MyOtherTopic
      monitor-alarm-arns: arn:aws:cloudwatch::123456789012:alarm/MyAlarm,arn:aws:cloudwatch::123456789012:alarm/MyOtherAlarm
      monitor-timeout-in-minutes: minutes       
      tags: '[{"Key":"MyKey1","Value":"MyValue1"},{"Key":"MyKey2","Value":"MyValue2"}]'
```

## DeployCloudFormationStack
<a name="deploy.action.cfn.deploycloudformationstack"></a>

(Obligatorio) 

Especifique el nombre de la acción. Todos los nombres de las acciones deben ser únicos dentro del flujo de trabajo. Los nombres de las acciones están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de las acciones.

Predeterminado: `DeployCloudFormationStack_nn`.

Interfaz de usuario correspondiente: pestaña Configuración/**Nombre de visualización de la acción**

## Identifier
<a name="deploy.action.cfn.identifier"></a>

(*DeployCloudFormationStack*/**Identifier**)

(Obligatorio)

Identifica la acción. No cambie esta propiedad a menos que desee cambiar la versión. Para obtener más información, consulte [Especificación de la versión de la acción que se va a utilizar](workflows-action-versions.md).

Predeterminado: `aws/cfn-deploy@v1`.

Interfaz de usuario correspondiente: Diagrama de flujo de trabajo/DeployCloudFormationStack\$1nn/etiqueta **aws/cfn-deploy@v1**

## DependsOn
<a name="deploy.action.cfn.dependson"></a>

(*DeployCloudFormationStack*/**DependsOn**)

(Opcional)

Especifique la acción, el grupo de acciones o la puerta que debe ejecutarse correctamente para que esta acción se ejecute.

Para obtener más información sobre la funcionalidad “depende de”, consulte [Secuenciación de acciones](workflows-depends-on.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Depende de (opcional)**

## Compute
<a name="deploy.action.cfn.computename"></a>

(*DeployCloudFormationStack*/**Compute**)

(Opcional)

El motor de computación utilizado para ejecutar las acciones del flujo de trabajo. Puede especificar el motor de computación en el nivel del flujo de trabajo o en el nivel de acción, pero no en ambos. Cuando se especifica en el nivel de flujo de trabajo, la configuración del motor de computación se aplica a todas las acciones definidas en el flujo de trabajo. En el nivel de flujo de trabajo, también puede ejecutar varias acciones en la misma instancia. Para obtener más información, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md).

Interfaz de usuario correspondiente: *ninguna*

## Type
<a name="deploy.action.cfn.computetype"></a>

(*DeployCloudFormationStack*/Compute/**Type**)

(Obligatorio si se incluye [Compute](#deploy.action.cfn.computename))

El tipo de motor de computación. Puede utilizar uno de los siguientes valores:
+ **EC2** (editor visual) o `EC2` (editor de YAML)

  Optimizado para ofrecer flexibilidad durante las ejecuciones de acciones.
+ **Lambda** (editor visual) o `Lambda` (editor de YAML)

  Velocidades de inicio de acciones optimizadas.

Para obtener más información sobre los tipos de computación, consulte [Tipos de computación](workflows-working-compute.md#compute.types).

**Interfaz de usuario correspondiente: Configuración tab/Advanced : opcional/tipo de procesamiento**

## Fleet
<a name="deploy.action.cfn.computefleet"></a>

(*DeployCloudFormationStack*/Compute/**Fleet**)

(Opcional)

Especifique la máquina o la flota que ejecutará el flujo de trabajo o las acciones del flujo de trabajo. Con las flotas bajo demanda, cuando se inicia una acción, el flujo de trabajo aprovisiona los recursos que necesita y las máquinas se destruyen cuando finaliza la acción. Ejemplos de flotas bajo demanda: `Linux.x86-64.Large`, `Linux.x86-64.XLarge`. Para obtener más información sobre las flotas bajo demanda, consulte [Propiedades de las flotas bajo demanda](workflows-working-compute.md#compute.on-demand).

Con las flotas aprovisionadas, configura un conjunto de máquinas dedicadas para ejecutar las acciones del flujo de trabajo. Estas máquinas permanecen inactivas, listas para procesar acciones de forma inmediata. Para obtener más información sobre las flotas aprovisionadas, consulte [Propiedades de flotas aprovisionadas](workflows-working-compute.md#compute.provisioned-fleets).

Si `Fleet` se omite, el valor predeterminado es `Linux.x86-64.Large`.

**Interfaz de usuario correspondiente: Configuración: opcional/flota de tab/Advanced cómputo**

## Timeout
<a name="deploy.action.cfn.timeout"></a>

(*DeployCloudFormationStack*/**Timeout**)

(Opcional)

Especifique la cantidad de tiempo en minutos (editor YAML) o en horas y minutos (editor visual) que la acción puede ejecutarse antes de que CodeCatalyst finalice la acción. El mínimo es 5 minutos y el máximo se describe en [Cuotas para flujos de trabajo en CodeCatalyst](workflows-quotas.md). El tiempo de espera predeterminado es el mismo que el tiempo de espera máximo.

Interfaz de usuario correspondiente: pestaña Configuración/**Tiempo de espera en minutos (opcional)**

## Environment
<a name="deploy.action.cfn.environment"></a>

(*DeployCloudFormationStack*/**Environment**)

(Obligatorio) 

Especifica el CodeCatalyst entorno que se va a usar con la acción. La acción se conecta a Cuenta de AWS la Amazon VPC opcional especificada en el entorno elegido. La acción utiliza la función de IAM predeterminada especificada en el entorno para conectarse a Cuenta de AWS, y utiliza la función de IAM especificada en la [conexión de Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) para conectarse a la Amazon VPC.

**nota**  
Si el rol de IAM predeterminado no tiene los permisos necesarios para la acción, puede configurarla para que utilice un rol diferente. Para obtener más información, consulte [Cambio del rol de IAM de una acción](deploy-environments-switch-role.md).

Para obtener más información sobre los entornos, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md) y [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Name
<a name="deploy.action.cfn.environment.name"></a>

(*DeployCloudFormationStack*/Environment/**Name**)

(Obligatorio si se incluye [Environment](#deploy.action.cfn.environment))

Especifique el nombre del entorno existente que desea asociar a la acción.

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Connections
<a name="deploy.action.cfn.environment.connections"></a>

(*DeployCloudFormationStack*/Environment/**Connections**)

(Opcional en las versiones más recientes de la acción; obligatorio en las versiones más antiguas)

Especifique la conexión de cuenta que desee asociar a la acción. Puede especificar un máximo de una conexión de cuenta en `Environment`.

Si no especifica una conexión de cuenta:
+ La acción utiliza la Cuenta de AWS conexión y la función de IAM predeterminada especificadas en el entorno de la consola. CodeCatalyst Para obtener información sobre cómo añadir una conexión de cuenta y un rol de IAM predeterminado al entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).
+ El rol de IAM predeterminado debe incluir las políticas y los permisos que requiere la acción. Para determinar cuáles son esas políticas y permisos, consulte la descripción de la propiedad **Role** en la documentación de la definición de YAML de la acción.

Para obtener más información sobre las conexiones de cuenta, consulte [Permitir el acceso a AWS los recursos con conexión Cuentas de AWS](ipa-connect-account.md). Para obtener más información sobre cómo añadir una conexión de cuenta a un entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿tab/Environment/WhatLa configuración está lista? *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ conexión de cuenta Environment/account/role AWS **

## Name
<a name="deploy.action.cfn.environment.connections.name"></a>

(*DeployCloudFormationStack*/Environment/Connections/**Name**)

(Obligatorio si se incluye [Connections](#deploy.action.cfn.environment.connections))

Especifique el nombre de la conexión de cuenta.

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿La configuración está lista? tab/Environment/What *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ conexión de cuenta Environment/account/role AWS **

## Role
<a name="deploy.action.cfn.environment.connections.role"></a>

(*DeployCloudFormationStack*/Environment/Connections/**Role**)

(Obligatorio si se incluye [Connections](#deploy.action.cfn.environment.connections))

Especifique el nombre de la función de IAM que la acción de **implementación de la CloudFormation pila** utiliza para acceder AWS al servicio. CloudFormation Asegúrese de haber [agregado el rol a su CodeCatalyst espacio](ipa-connect-account-addroles.md) y de que el rol incluya las siguientes políticas.

Si no especifica un rol de IAM, la acción utilizará el rol de IAM predeterminado que aparece en el [entorno](deploy-environments.md) de la consola. CodeCatalyst Si usa el rol predeterminado en el entorno, asegúrese de que tenga las siguientes políticas.
+ La siguiente política de permisos:
**aviso**  
Limite los permisos a los que se muestran en la siguiente política. El uso de un rol con permisos más amplios puede suponer un riesgo de seguridad.
**nota**  
La primera vez que utilice el rol, use el siguiente comodín en la instrucción de política de recursos y, a continuación, precise el ámbito de la política con el nombre del recurso cuando esté disponible.  

  ```
  "Resource": "*"
  ```
+ La siguiente política de confianza personalizada:

**nota**  
Puede usar el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` con esta acción, si así lo desea. Para obtener más información acerca de este rol, consulte [Creación del rol **CodeCatalystWorkflowDevelopmentRole-*spaceName*** para su cuenta y su espacio](ipa-iam-roles.md#ipa-iam-roles-service-create). Tenga en cuenta que el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` tiene permisos de acceso total, lo que puede suponer un riesgo para la seguridad. Le recomendamos que utilice este rol solo en tutoriales y situaciones en las que la seguridad no sea un problema. 

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿tab/Environment/WhatLa configuración está lista? *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ Rol Environment/account/role**

## Inputs
<a name="deploy.action.cfn.inputs"></a>

(*DeployCloudFormationStack*/**Inputs**)

(Opcional)

La sección `Inputs` define los datos que necesita la acción `DeployCloudFormationStack` durante la ejecución de un flujo de trabajo.

**nota**  
Se permite un máximo de cuatro entradas (una fuente y tres artefactos) por cada acción de la pila de **implementación CloudFormation **.

Si necesita hacer referencia a archivos que se encuentran en entradas diferentes (por ejemplo, un código fuente y un artefacto), la entrada de código fuente es la entrada principal y el artefacto es la entrada secundaria. Las referencias a los archivos en las entradas secundarias llevan un prefijo especial para distinguirlas de las principales. Para obtener más información, consulte [Ejemplo: Referencia a archivos en varios artefactos](workflows-working-artifacts-ex.md#workflows-working-artifacts-ex-ref-file).

Interfaz de usuario correspondiente: pestaña **Entradas**

## Sources
<a name="deploy.action.cfn.inputs.sources"></a>

(*DeployCloudFormationStack*/Inputs/**Sources**)

(Necesario si tu AWS SAM plantilla CloudFormation o plantilla está almacenada en un repositorio de origen)

Si su AWS SAM plantilla CloudFormation o plantilla está almacenada en un repositorio de origen, especifique la etiqueta de ese repositorio de origen. Actualmente, la única etiqueta admitida es `WorkflowSource`.

Si su AWS SAM plantilla CloudFormation o su plantilla no se encuentran en un repositorio de origen, deben residir en un artefacto generado por otra acción o en un bucket de Amazon S3.

Para obtener más información sobre orígenes, consulte [Conexión de repositorios de código fuente a flujos de trabajo](workflows-sources.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Orígenes (opcional)**

## Artifacts - input
<a name="deploy.action.cfn.inputs.artifacts"></a>

(*DeployCloudFormationStack*/Inputs/**Artifacts**)

(Obligatorio si su AWS SAM plantilla CloudFormation o plantilla está almacenada en un [artefacto de salida](workflows-working-artifacts-output.md) de una acción anterior)

Si la AWS SAM plantilla CloudFormation o que desea implementar está incluida en un artefacto generado por una acción anterior, especifique ese artefacto aquí. Si la CloudFormation plantilla no está incluida en un artefacto, debe residir en el repositorio de origen o en un bucket de Amazon S3.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Artefactos (opcional)**

## Configuration
<a name="deploy.action.cfn.configuration"></a>

(*DeployCloudFormationStack*/**Configuration**)

(Obligatorio)

Una sección en la que puede definir las propiedades de configuración de la acción.

Interfaz de usuario correspondiente: pestaña **Configuración**

## name
<a name="deploy.action.cfn.stackname"></a>

(*DeployCloudFormationStack*/Configuration/**name**)

(Obligatorio) 

Especifique un nombre para la CloudFormation pila que la acción **Implementar CloudFormation pila** crea o actualiza.

Interfaz de usuario correspondiente: pestaña Configuración/**Nombre de la pila**

## region
<a name="deploy.action.cfn.stackregion"></a>

(*DeployCloudFormationStack*/Configuration/**region**)

(Obligatorio) 

Especifique el lugar Región de AWS en el que se desplegará la pila. Para ver una lista de códigos de regiones, consulte [Puntos de conexión regionales](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes).

Interfaz de usuario correspondiente: pestaña Configuración/**Región de la pila**

## template
<a name="deploy.action.cfn.templatepath"></a>

(*DeployCloudFormationStack*/Configuration/**template**)

(Obligatorio) 

Especifique el nombre y la ruta de su archivo CloudFormation o AWS SAM de plantilla. La plantilla puede estar en formato JSON o YAML y puede residir en un repositorio de código fuente, un artefacto de una acción anterior o un bucket de Amazon S3. Si el archivo de plantilla está en un repositorio de código fuente o un artefacto, la ruta es relativa a la raíz del código fuente o artefacto. Si la plantilla está en un bucket de Amazon S3, la ruta es el valor **URL del objeto** de la plantilla.

Ejemplos:

`./MyFolder/MyTemplate.json`

`MyFolder/MyTemplate.yml`

`https://MyBucket.s3.us-west-2.amazonaws.com/MyTemplate.yml`

**nota**  
Puede que tenga que añadir un prefijo a la ruta de la plantilla para indicar en qué artefacto o código fuente se encuentra. Para obtener más información, consulte [Referencia a los archivos del repositorio de código fuente](workflows-sources-reference-files.md) y [Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Plantilla**

## role-arn
<a name="deploy.action.cfn.stackrolearn"></a>

(*DeployCloudFormationStack*/Configuration/**role-arn**)

(Obligatorio) 

Especifique el nombre de recurso de Amazon (ARN) de la función de pila. CloudFormation utiliza este rol para acceder a los recursos de la pila y modificarlos. Por ejemplo: `arn:aws:iam::123456789012:role/StackRole`.

Asegúrese de que el rol de la pila incluya:
+ Una o varias políticas de permisos. Las políticas dependen de los recursos que haya en la pila. Por ejemplo, si su pila incluye una AWS Lambda función, debe añadir permisos que permitan el acceso a Lambda. Si ha seguido el tutorial que se describe en [Tutorial: implementación de una aplicación sin servidor](deploy-tut-lambda.md), este incluye un procedimiento denominado [Creación de un rol de pila](deploy-tut-lambda.md#deploy-tut-lambda-cfn-roles-stack) que muestra los permisos que necesita el rol de la pila si va a implementar una pila de aplicación sin servidor típica.
**aviso**  
Limite los permisos a los requeridos por el CloudFormation servicio para acceder a los recursos de su pila. El uso de un rol con permisos más amplios puede suponer un riesgo de seguridad.
+ La siguiente política de confianza:

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "",
              "Effect": "Allow",
              "Principal": {
                  "Service": "cloudformation.amazonaws.com"
              },
              "Action": "sts:AssumeRole"
          }
      ]
  }
  ```

------

Si lo desea, asocie este rol a la conexión de su cuenta. Para obtener más información sobre cómo asociar un rol de IAM con una conexión de cuenta, consulte [Adición de roles de IAM a las conexiones de cuentas](ipa-connect-account-addroles.md). Si no asocia el rol de la pila a la conexión de cuenta, este no aparecerá en la lista desplegable **Rol de la pila** del editor visual; sin embargo, el ARN del rol aún se puede especificar en el campo `role-arn` mediante el editor de YAML.

**nota**  
Puede usar el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` con esta acción, si así lo desea. Para obtener más información acerca de este rol, consulte [Creación del rol **CodeCatalystWorkflowDevelopmentRole-*spaceName*** para su cuenta y su espacio](ipa-iam-roles.md#ipa-iam-roles-service-create). Tenga en cuenta que el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` tiene permisos de acceso total, lo que puede suponer un riesgo para la seguridad. Le recomendamos que utilice este rol solo en tutoriales y situaciones en las que la seguridad no sea un problema. 

Interfaz de usuario correspondiente: pestaña Configuración/**Rol de pila (opcional)**

## capabilities
<a name="deploy.action.cfn.capabilities"></a>

(*DeployCloudFormationStack*/Configuration/**capabilities**)

(Obligatorio) 

Especifique una lista de las capacidades de IAM necesarias para poder CloudFormation crear determinadas pilas. En la mayoría de los casos, puede dejar `capabilities` con el valor predeterminado de `CAPABILITY_IAM,CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND`.

Si aparece `##[error] requires capabilities: [capability-name]` en los registros de la acción **Implementar pila de CloudFormation **, consulte [¿Cómo puedo corregir los errores de las capacidades de IAM?](troubleshooting-workflows.md#troubleshooting-workflows-capabilities) para obtener más información sobre cómo solucionar el problema.

*Para obtener más información sobre las capacidades de IAM, consulte [Reconocimiento de los recursos de IAM en las CloudFormation plantillas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities) de la Guía del usuario de IAM.*

Interfaz de usuario correspondiente: pestaña Configuración/Avanzada/**Capacidades**

## parameter-overrides
<a name="deploy.action.cfn.parameter.overrides"></a>

(*DeployCloudFormationStack*/Configuration/**parameter-overrides**)

(Opcional)

Especifique los parámetros de su CloudFormation AWS SAM plantilla que no tengan valores predeterminados o para los que desee especificar valores no predeterminados. Para obtener más información sobre los parámetros, consulte [Parámetros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html) en la *Guía del AWS CloudFormation usuario*.

La propiedad `parameter-overrides` acepta:
+ Un archivo JSON que contiene los parámetros y valores.
+ Una lista de parámetros y valores separados por comas.

**Especificación de un archivo JSON**

1. Asegúrese de que el archivo JSON utilice una de las siguientes sintaxis:

   ```
   {
     "Parameters": {
       "Param1": "Value1",
       "Param2": "Value2",
       ...
     }
   }
   ```

   O bien…

   ```
   [
     {
        "ParameterKey": "Param1",
        "ParameterValue": "Value1"
     },
     ...
   ]
   ```

   (Existen otras sintaxis, pero no las admiten CodeCatalyst en el momento de escribir este artículo). Para obtener más información sobre cómo especificar CloudFormation los parámetros en un archivo JSON, consulte la [Sintaxis JSON admitida](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/deploy/index.html#supported-json-syntax) en la *Referencia de AWS CLI comandos*.

1. Especifique la ruta del archivo JSON con uno de los siguientes formatos:
   + Si el archivo JSON reside en un artefacto de salida de una acción anterior, utilice:

     `file:///artifacts/current-action-name/output-artifact-name/path-to-json-file`

     Consulte el **ejemplo 1** para obtener más información.
   + Si el archivo JSON reside en el repositorio de código fuente, utilice:

     `file:///sources/WorkflowSource/path-to-json-file`

     Consulte el **ejemplo 2** para obtener más información.

     **Ejemplo 1**: el archivo JSON reside en un artefacto de salida

     ```
     ##My workflow YAML
     ...
     Actions:
       MyBuildAction:
         Identifier: aws/build@v1
         Outputs:
           Artifacts:
             - Name: ParamArtifact
               Files:
                 - params.json
         Configuration:
         ...
       MyDeployCFNStackAction:
         Identifier: aws/cfn-deploy@v1
         Configuration:
           parameter-overrides: file:///artifacts/MyDeployCFNStackAction/ParamArtifact/params.json
     ```

     **Ejemplo 2**: el archivo JSON reside en el repositorio de código fuente, en una carpeta llamada `my/folder`

     ```
     ##My workflow YAML
     ...
     Actions:
       MyDeployCloudFormationStack:
         Identifier: aws/cfn-deploy@v1
         Inputs:
           Sources:
             - WorkflowSource
         Configuration:
           parameter-overrides: file:///sources/WorkflowSource/my/folder/params.json
     ```

**Uso de una lista de parámetros separados por comas**
+ Añada pares de nombre-valor de los parámetros a la propiedad `parameter-overrides` con el siguiente formato:

  `param-1=value-1,param-2=value-2`

  Por ejemplo, suponiendo la siguiente CloudFormation plantilla:

  ```
  ##My CloudFormation template
  
  Description: My CloudFormation template
  
  Parameters:
    InstanceType:
      Description: Defines the Amazon EC2 compute for the production server.
      Type: String
      Default: t2.micro
      AllowedValues:
        - t2.micro
        - t2.small
        - t3.medium
      
  Resources:
  ...
  ```

  ...puede establecer la propiedad `parameter-overrides` de la siguiente manera:

  ```
  ##My workflow YAML
  ...
  Actions:
  ...
    DeployCloudFormationStack:
      Identifier: aws/cfn-deploy@v1
      Configuration:
        parameter-overrides: InstanceType=t3.medium,UseVPC=true
  ```
**nota**  
Puede especificar un nombre de parámetro sin el valor correspondiente utilizando `undefined` como valor. Por ejemplo:  
`parameter-overrides: MyParameter=undefined`  
 El efecto es que, durante una actualización de la pila, CloudFormation utiliza el valor del parámetro existente para el nombre del parámetro dado.

Interfaz de usuario correspondiente:
+ Pestaña Configuración/Avanzada/**Anulaciones de parámetros**
+ La configuración tab/Advanced/Parameter anula o **especifique las anulaciones mediante** un archivo
+ **Anulaciones de tab/Advanced/Parameter configuración/ Especifique las anulaciones mediante un conjunto de valores**

## no-execute-changeset
<a name="deploy.action.cfn.noexecutechangeset"></a>

(*DeployCloudFormationStack*/Configuration/**no-execute-changeset**)

(Opcional)

Especifique si desea crear el conjunto de CloudFormation cambios y, CodeCatalyst a continuación, detenerlo antes de ejecutarlo. Esto le da la oportunidad de revisar el conjunto de cambios en la CloudFormation consola. Si determina que el conjunto de cambios se ve bien, desactive esta opción y, a continuación, vuelva a ejecutar el flujo de trabajo para CodeCatalyst poder crear y ejecutar el conjunto de cambios sin detenerlo. De forma predeterminada, el conjunto de cambios se crea y ejecuta sin detenerse. Para obtener más información, consulte el parámetro de CloudFormation [despliegue](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/index.html) en la *Referencia de AWS CLI comandos*. Para obtener más información sobre cómo ver los conjuntos de cambios, consulte [Visualización de un conjunto de cambios](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets-view.html) en la *Guía del usuario de AWS CloudFormation *.

Interfaz de usuario correspondiente: pestaña Configuración/Avanzada/**Ninguna ejecución del conjunto de cambios**

## fail-on-empty-changeset
<a name="deploy.action.cfn.failonemptychangeset"></a>

(*DeployCloudFormationStack*/Configuration/**fail-on-empty-changeset**)

(Opcional)

Especifique si desea que se produzca CodeCatalyst un error en la acción de **despliegue de la CloudFormation pila** si el conjunto de CloudFormation cambios está vacío. (Si un conjunto de cambios está vacío, eso significa que no se realizaron cambios en la pila durante la última implementación). La opción predeterminada es permitir que la acción continúe si el conjunto de cambios está vacío y devolver un mensaje `UPDATE_COMPLETE` aunque la pila no se haya actualizado.

Para obtener más información sobre esta configuración, consulte el parámetro de CloudFormation [despliegue](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/index.html) en la *Referencia de AWS CLI comandos*. Para obtener más información sobre los conjuntos de cambios, consulte [Actualización de pilas con conjuntos de cambios](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html) en la *Guía del usuario de AWS CloudFormation *.

Interfaz de usuario correspondiente: pestaña Configuración/Avanzada/**Ningún fallo del conjunto de cambios vacío**

## disable-rollback
<a name="deploy.action.cfn.disablerollback"></a>

(*DeployCloudFormationStack*/Configuration/**disable-rollback**)

(Opcional)

Especifique si desea CodeCatalyst revertir el despliegue de la pila en caso de que se produzca un error. La reversión devuelve la pila al último estado estable conocido. La opción predeterminada es habilitar las reversiones. Para obtener más información sobre esta configuración, consulte el parámetro de CloudFormation [despliegue](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/index.html) en la *Referencia de AWS CLI comandos*.

Para obtener más información sobre cómo la acción **Implementar CloudFormation pila** gestiona las reversiones, consulte[Configuración de reversiones](deploy-consumption-enable-alarms.md).

Para obtener más información sobre cómo revertir una pila, consulte [Opciones de error de una pila](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-failure-options.html) en la *Guía del usuario de AWS CloudFormation *.

Interfaz de usuario correspondiente: pestaña Configuración/Avanzada/**Deshabilitar restauración**

## termination-protection
<a name="deploy.action.cfn.terminationprotection"></a>

(*DeployCloudFormationStack*/Configuration/**termination-protection**)

(Opcional)

Especifique si desea que la ** CloudFormation pila Deploy** añada protección de terminación a la pila que está desplegando. Si un usuario intenta eliminar una pila con la protección de terminación habilitada, la eliminación fallará y la pila junto con su estado no cambiarán. La protección de terminación está deshabilitada de forma predeterminada. Para obtener más información, consulte [Protección de las pilas para evitar la eliminación](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) en la *Guía del usuario de AWS CloudFormation *.

Interfaz de usuario correspondiente: pestaña Configuración/Avanzada/**Protección de terminación**

## timeout-in-minutes
<a name="deploy.action.cfn.timeoutinminutes"></a>

(*DeployCloudFormationStack*/Configuration/**timeout-in-minutes**)

(Opcional)

Especifique la cantidad de tiempo, en minutos, que CloudFormation debe transcurrir antes de que se agoten las operaciones de creación de la pila y establezca el estado de la pila en. `CREATE_FAILED` Si CloudFormation no puede crear toda la pila en el tiempo asignado, se produce un error de creación porque el tiempo de espera se agota y la pila vuelve a su estado anterior.

De forma predeterminada, no hay tiempo de espera para la creación de pilas. Sin embargo, puede que determinados recursos individuales tengan sus propios tiempos de espera en función de la naturaleza del servicio que implementan. Por ejemplo, si se agota el tiempo de espera de un recurso individual de la pila, también se agota el tiempo de espera de creación de la pila aunque todavía no se haya agotado el tiempo de espera especificado para la creación de la pila.

**Interfaz de usuario correspondiente: pestaña de configuración/avanzada/tiempo de espera CloudFormation**

## notification-arns
<a name="deploy.action.cfn.notificationarns"></a>

(*DeployCloudFormationStack*/Configuration/**notification-arns**)

(Opcional)

Especifique el ARN de un tema de Amazon SNS al que CodeCatalyst desee enviar los mensajes de notificación. Por ejemplo, `arn:aws:sns:us-east-1:111222333:MyTopic`. Cuando se ejecute la acción **Implementar una CloudFormation pila**, CodeCatalyst coordine con ella CloudFormation para enviar una notificación por cada CloudFormation evento que se produzca durante el proceso de creación o actualización de la pila. (Los eventos están visibles en la pestaña **Eventos** de la CloudFormation consola para la pila). Puede especificar hasta cinco temas. Para obtener más información, consulte [¿Qué es Amazon SNS?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)

**Interfaz de usuario correspondiente: pestaña de configuración/Avanzada/Notificación ARNs**

## monitor-alarm-arns
<a name="deploy.action.cfn.monitoralarmarns"></a>

(*DeployCloudFormationStack*/Configuration/**monitor-alarm-arns**)

(Opcional)

Especifique el nombre de recurso de Amazon (ARN) de una CloudWatch alarma de Amazon para utilizarla como activador de reversión. Por ejemplo, `arn:aws:cloudwatch::123456789012:alarm/MyAlarm`. Puede añadir un máximo de cinco desencadenadores de reversión.

**nota**  
Si especificas un CloudWatch ARN de alarma, también tendrás que configurar permisos adicionales para permitir el acceso de la acción. CloudWatch Para obtener más información, consulte [Configuración de reversiones](deploy-consumption-enable-alarms.md).

**Interfaz de usuario correspondiente: pestaña de configuración/Avanzada/Monitor de alarma ARNs**

## monitor-timeout-in-minutes
<a name="deploy.action.cfn.monitortimeinminutes"></a>

(*DeployCloudFormationStack*/Configuration/**monitor-timeout-in-minutes**)

(Opcional)

Especifique un período de tiempo, de 0 a 180 minutos, durante el cual CloudFormation se supervisarán las alarmas especificadas. La supervisión comienza *después* de que se hayan implementado todos los recursos de la pila. Si la alarma se produce dentro del tiempo de supervisión especificado, se produce un error en la implementación y se CloudFormation revierte toda la operación de apilado.

Predeterminado: 0. CloudFormation solo monitorea las alarmas mientras se despliegan los recursos de la pila, no después.

Interfaz de usuario correspondiente: pestaña Configuración/Avanzada/**Tiempo de supervisión**

## tags
<a name="deploy.action.cfn.tags"></a>

(*DeployCloudFormationStack*/Configuration/**tags**)

(Opcional)

Especifique las etiquetas que desee adjuntar a la CloudFormation pila. Las etiquetas son pares arbitrarios de clave-valor que se pueden utilizar para identificar la pila para fines como la asignación de costos. Para obtener más información acerca de qué son las etiquetas y cómo se pueden usar, consulte [Etiquetado de los recursos](https://docs.aws.amazon.com/) en la *Guía del usuario de Amazon EC2*. Para obtener más información sobre el etiquetado CloudFormation, consulte [Configuración de las opciones de CloudFormation pila](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-add-tags.html) en la *Guía del AWS CloudFormation usuario*.

Una clave puede tener caracteres alfanuméricos o espacios, y puede tener hasta 127 caracteres. Un valor puede tener caracteres alfanuméricos o espacios, y puede tener hasta 255 caracteres.

Puede agregar hasta 50 etiquetas únicas para cada pila.

Interfaz de usuario correspondiente: pestaña Configuración/Avanzada/**Etiquetas**

# Implementación de una AWS CDK aplicación con un flujo de trabajo
<a name="cdk-dep-action"></a>

En esta sección, se describe cómo implementar una AWS Cloud Development Kit (AWS CDK) aplicación en tu AWS cuenta mediante un flujo de trabajo. Para ello, debe añadir la acción **Implementación de AWS CDK ** a su flujo de trabajo. La acción de **AWS CDK despliegue** sintetiza y despliega la AWS Cloud Development Kit (AWS CDK) aplicación en. AWS Si tu aplicación ya existe en AWS, la acción la actualiza si es necesario. 

Para obtener información general sobre cómo escribir aplicaciones con AWS CDK, consulta [¿Qué es AWS CDK?](https://docs.aws.amazon.com/cdk/v2/guide/home.html) en la *Guía para AWS Cloud Development Kit (AWS CDK) desarrolladores*.

**Topics**
+ [

## Cuándo utilizar la acción «AWS CDK desplegar»
](#cdk-dep-action-when-to-use)
+ [

## Cómo funciona la acción de «AWS CDK desplegar»
](#cdk-dep-action-how-it-works)
+ [

## Versiones de CDK CLI utilizadas por la acción de «AWS CDK implementar»
](#cdk-dep-action-cdk-version)
+ [

## Imagen de tiempo de ejecución utilizada por la acción de «despliegue»AWS CDK
](#cdk-dep-action-runtime)
+ [

## ¿Cuántas pilas puede implementar la acción?
](#cdk-dep-action-how-many-stacks)
+ [

# Ejemplo: Implementación de una AWS CDK aplicación
](cdk-dep-action-example-workflow.md)
+ [

# Añadir la acción «AWS CDK desplegar»
](cdk-dep-action-add.md)
+ [

# Variables de 'Implementación de AWS CDK '
](cdk-dep-action-variables.md)
+ [

# YAML de la acción 'Implementación de AWS CDK '
](cdk-dep-action-ref.md)

## Cuándo utilizar la acción «AWS CDK desplegar»
<a name="cdk-dep-action-when-to-use"></a>

Utilice esta acción si ha desarrollado una aplicación con el AWS CDK y ahora desea implementarla automáticamente como parte de un flujo de trabajo automatizado de integración y entrega continuas (CI/CD). Por ejemplo, es posible que desees implementar tu AWS CDK app automáticamente cada vez que alguien fusione una solicitud de cambios relacionada con la fuente de tu AWS CDK aplicación. 

## Cómo funciona la acción de «AWS CDK desplegar»
<a name="cdk-dep-action-how-it-works"></a>

La **AWS CDK implementación** funciona de la siguiente manera:

1. [En tiempo de ejecución, si especificó la versión 1.0.12 o anterior de la acción, la acción descarga la última CLI de CDK (también denominada kit de herramientas) AWS CDK a la imagen del CodeCatalyst entorno de ejecución.](#cdk-dep-action-runtime)

   Si especificó la versión 1.0.13 o posterior, la acción viene incluida con una [versión específica](#cdk-dep-action-cdk-version) de la CLI de CDK, por lo que no se produce ninguna descarga.

1. La acción utiliza la CLI de CDK para ejecutar el comando `cdk deploy`. Este comando sintetiza y despliega la aplicación en ella. AWS CDK AWS Para obtener más información sobre este comando, consulte el tema [AWS CDK Toolkit (cdk command)](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) en la *Guía para desarrolladores de AWS Cloud Development Kit (AWS CDK) *.

## Versiones de CDK CLI utilizadas por la acción de «AWS CDK implementar»
<a name="cdk-dep-action-cdk-version"></a>

En la siguiente tabla se muestra qué versión de la CLI de CDK utilizan de forma predeterminada las diferentes versiones de la acción **Implementación de AWS CDK **.

**nota**  
Puede invalidar la predeterminada. Para obtener más información, consulte [CdkCliVersion](cdk-dep-action-ref.md#cdk.dep.cdk.cli.version) en la [YAML de la acción 'Implementación de AWS CDK '](cdk-dep-action-ref.md).


| Versión de la acción 'Implementación de AWS CDK ' | AWS CDK Versión CLI | 
| --- | --- | 
|  1.0.0 – 1.0.12  |  más reciente  | 
|  1.0.13 o posterior  |  2.99.1  | 

## Imagen de tiempo de ejecución utilizada por la acción de «despliegue»AWS CDK
<a name="cdk-dep-action-runtime"></a>

En la siguiente tabla se muestran las imágenes del entorno de ejecución que se CodeCatalyst utilizan para ejecutar diferentes versiones de la acción de **AWS CDK despliegue**. Las imágenes incluyen diferentes conjuntos de herramientas preinstaladas. Para obtener más información, consulte [Imágenes activas](build-images.md#build-curated-images).

**nota**  
Le recomendamos que actualice la acción **Implementación de AWS CDK ** a la versión 2.x para aprovechar las últimas herramientas disponibles en la imagen de marzo de 2024. Para actualizar la acción, defina su propiedad `Identifier` en `aws/cdk-deploy@v2` en el archivo de definición de flujo de trabajo. Para obtener más información, consulte [YAML de la acción 'Implementación de AWS CDK '](cdk-dep-action-ref.md). 


| Versión de la acción 'Implementación de AWS CDK ' | Imágenes del entorno en tiempo de ejecución | 
| --- | --- | 
|  1.x  |  Imágenes de noviembre de 2022  | 
|  2.x  |  Imágenes de marzo de 2024  | 

## ¿Cuántas pilas puede implementar la acción?
<a name="cdk-dep-action-how-many-stacks"></a>

La acción **Implementación de AWS CDK ** puede implementar una sola pila. Si tu AWS CDK aplicación consta de varias pilas, debes crear una pila principal con pilas anidadas e implementar la principal mediante esta acción.

# Ejemplo: Implementación de una AWS CDK aplicación
<a name="cdk-dep-action-example-workflow"></a>

El siguiente ejemplo de flujo de trabajo incluye la acción **Implementación de AWS CDK ** junto con la acción **Arranque de AWS CDK **. El flujo de trabajo consta de los siguientes componentes que se ejecutarán en orden:
+ Un **desencadenador**: este desencadenador inicia la ejecución automática del flujo de trabajo cuando se introduce un cambio en el repositorio de código fuente. Este repositorio contiene tu AWS CDK aplicación. Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).
+ Una acción de **AWS CDK arranque** (`CDKBootstrap`): al activarse, la acción despliega la pila de `CDKToolkit` arranque en ella. AWS Si la pila de `CDKToolkit` ya existe en el entorno, se actualizará si es necesario; de lo contrario, no ocurrirá nada y la acción se marcará como correcta.
+ Una acción de **AWS CDK despliegue** (`AWS CDK Deploy`): al finalizar la acción de **AWS CDK arranque**, la acción de **AWS CDK despliegue** sintetiza el código de la AWS CDK aplicación en una CloudFormation plantilla y despliega la pila definida en la plantilla. AWS

**nota**  
El siguiente ejemplo de flujo de trabajo tiene fines ilustrativos y no funcionará sin una configuración adicional.

**nota**  
En el código de YAML que se muestra a continuación, puede omitir las secciones `Connections:` si lo desea. Si omite estas secciones, debe asegurarse de que el rol especificado en el campo **Rol de IAM predeterminado** del entorno incluya los permisos y las políticas de confianza requeridos por las acciones **Arranque de AWS CDK ** e **Implementación de AWS CDK **. Para obtener más información sobre cómo configurar un entorno con un rol de IAM predeterminado, consulte [Creación de un entorno](deploy-environments-creating-environment.md). Para obtener más información sobre los permisos y las políticas de confianza que requieren las acciones **Arranque de AWS CDK ** e **Implementación de AWS CDK **, consulte la descripción de la propiedad `Role`en los campos [Acción 'Arranque de AWS CDK ' en YAML](cdk-boot-action-ref.md) y [YAML de la acción 'Implementación de AWS CDK '](cdk-dep-action-ref.md).

```
Name: codecatalyst-cdk-deploy-workflow
SchemaVersion: 1.0

Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  CDKBootstrap:
    Identifier: aws/cdk-bootstrap@v2
    Inputs:
      Sources:
        - WorkflowSource
    Environment:
      Name: codecatalyst-cdk-deploy-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-cdk-bootstrap-role
    Configuration:
      Region: us-west-2
        
  CDKDeploy:
    Identifier: aws/cdk-deploy@v2
    DependsOn: 
      - CDKBootstrap
    Environment:
      Name: codecatalyst-cdk-deploy-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-cdk-deploy-role
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      StackName: my-app-stack
      Region: us-west-2
```

# Añadir la acción «AWS CDK desplegar»
<a name="cdk-dep-action-add"></a>

 Siga estas instrucciones para añadir la acción **Implementación de AWS CDK ** a su flujo de trabajo. 

**Antes de empezar**

Para poder añadir la acción **Implementación de AWS CDK ** a su flujo de trabajo, realice las siguientes tareas:

1. **Tenga una AWS CDK aplicación lista**. Puedes escribir tu AWS CDK aplicación usando la AWS CDK v1 o la v2, en cualquier lenguaje de programación compatible con AWS CDK. Asegúrese de que los archivos de la aplicación de AWS CDK estén disponibles en:
   + Un [repositorio CodeCatalyst de código fuente](source.md), o 
   + Un [artefacto CodeCatalyst de salida](workflows-working-artifacts.md) generado por otra acción del flujo de trabajo

1. **Inicie su entorno. AWS ** Para arrancar, puede:
   + Usar uno de los métodos descritos en [How to bootstrap](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html#bootstrapping-howto) en la *Guía para desarrolladores de AWS Cloud Development Kit (AWS CDK) *.
   + Usar la acción **Arranque de AWS CDK **. Puede añadir esta acción al mismo flujo de trabajo que la acción **Implementación de AWS CDK ** o a uno diferente. Solo asegúrese de que la acción de arranque se ejecute al menos una vez antes de ejecutar la acción **Implementación de AWS CDK ** para disponer de los recursos necesarios. Para obtener más información sobre la acción de **AWS CDK arranque**, consulte. [Cómo iniciar una AWS CDK aplicación con un flujo de trabajo](cdk-boot-action.md)

     Para obtener más información acerca del arranque, consulte [Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) en la *Guía para desarrolladores de AWS Cloud Development Kit (AWS CDK) *.

------
#### [ Visual ]

**Para añadir la acción de «AWS CDK desplegar» mediante el editor visual**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busque la acción **Implementación de AWS CDK ** y realice una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija **Implementación de AWS CDK **. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Descargar** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. En las pestañas **Entradas** y **Configuración**, complete los campos según sus necesidades. Para obtener una descripción de cada uno de los campos, consulte la [YAML de la acción 'Implementación de AWS CDK '](cdk-dep-action-ref.md). Esta referencia proporciona información detallada sobre cada campo (y el valor de la propiedad de YAML correspondiente) tal como aparece en el editor visual y el de YAML.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.
**nota**  
Si la acción **Implementación de AWS CDK ** falla y se produce un error `npm install`, consulte [¿Cómo puedo corregir los errores npm install?](troubleshooting-workflows.md#troubleshooting-workflows-npm) para obtener información sobre cómo corregir el error.

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

**Para añadir la acción de «AWS CDK desplegar» mediante el editor YAML**

1. [Abre la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busque la acción **Implementación de AWS CDK ** y realice una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija **Implementación de AWS CDK **. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Descargar** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. Modifique las propiedades del código de YAML en función de sus necesidades. Encontrará una explicación de todas las propiedades disponibles en la [YAML de la acción 'Implementación de AWS CDK '](cdk-dep-action-ref.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.
**nota**  
Si la acción **Implementación de AWS CDK ** falla y se produce un error `npm install`, consulte [¿Cómo puedo corregir los errores npm install?](troubleshooting-workflows.md#troubleshooting-workflows-npm) para obtener información sobre cómo corregir el error.

------

# Variables de 'Implementación de AWS CDK '
<a name="cdk-dep-action-variables"></a>

La acción **Implementación de AWS CDK ** produce y establece las siguientes variables en tiempo de ejecución. Se conocen como *variables predefinidas*.

Para obtener información sobre cómo hacer referencia a estas variables en un flujo de trabajo, consulte [Uso de variables predefinidas](workflows-using-predefined-variables.md).


| Clave | Valor | 
| --- | --- | 
|  stack-id  |  El nombre de recurso de Amazon (ARN) de la pila de AWS CDK aplicaciones en la que se implementó durante la ejecución del flujo de trabajo. Ejemplo: `arn:aws:cloudformation:us-west-2:111122223333:stack/codecatalyst-cdk-app-stack/6aad4380-100a-11ec-a10a-03b8a84d40df`  | 
|  deployment-platform  |  El nombre de la plataforma de implementación. Codificado en `AWS:CloudFormation`.  | 
|  region  |  El código de región en el Región de AWS que se implementó durante la ejecución del flujo de trabajo. Ejemplo: `us-west-2`  | 
|  SKIP-DEPLOYMENT  |  Un valor de `true` indica que se omitió el despliegue de AWS CDK la pila de aplicaciones durante la ejecución del flujo de trabajo. Se omitirá la implementación de una pila si no se ha producido ningún cambio en la pila desde la última implementación. Esta variable solo se genera si su valor es `true`. Codificado en `true`.  | 
|  *CloudFormation variables*  |  Además de generar las variables enumeradas anteriormente, la acción de **AWS CDK despliegue** también expone las variables de *CloudFormation*salida como variables de *flujo* de trabajo para su uso en acciones de flujo de trabajo posteriores. De forma predeterminada, la acción solo expone las cuatro primeras CloudFormation variables (o menos) que encuentre. Para determinar cuáles se exponen, ejecute la acción **Implementación de AWS CDK ** una vez y, a continuación, consulte la pestaña **Variables** de la página de detalles de la ejecución. Si las variables que aparecen en la pestaña **Variables** no son las que desea, puede configurar otras variables mediante la propiedad `CfnOutputVariables` de YAML. Para obtener más información, consulte la descripción de la operación [CfnOutputVariables](cdk-dep-action-ref.md#cdk.dep.cfn.out) en la [YAML de la acción 'Implementación de AWS CDK '](cdk-dep-action-ref.md).  | 

# YAML de la acción 'Implementación de AWS CDK '
<a name="cdk-dep-action-ref"></a>

La siguiente es la definición en YAML de la acción **Implementación de AWS CDK **. Para obtener información sobre cómo utilizar esta acción, consulte [Implementación de una AWS CDK aplicación con un flujo de trabajo](cdk-dep-action.md).

Esta definición de acción existe como una sección dentro de un archivo de definición de flujo de trabajo más amplio. Para obtener más información acerca de este archivo, consulte [Definición de flujo de trabajo en YAML](workflow-reference.md).

**nota**  
La mayoría de las propiedades de YAML que se muestran a continuación tienen elementos de interfaz de usuario correspondientes en el editor visual. Para buscar un elemento de la interfaz de usuario, use **Ctrl\$1F**. El elemento aparecerá en la lista con su propiedad de YAML asociada.

```
# The workflow definition starts here.
# See Propiedades de nivel superior for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  CDKDeploy\$1nn: 
    Identifier: aws/cdk-deploy@v2
    DependsOn:
      - CDKBootstrap
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - artifact-name
    Outputs:
      Artifacts:
        - Name: cdk_artifact
          Files: 
            - "cdk.out/**/*"
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Configuration:
      StackName: my-cdk-stack
      Region: us-west-2
      Tags: '{"key1": "value1", "key2": "value2"}'
      Context: '{"key1": "value1", "key2": "value2"}'
      CdkCliVersion: version
      CdkRootPath: directory-containing-cdk.json-file
      CfnOutputVariables: '["CnfOutputKey1","CfnOutputKey2","CfnOutputKey3"]'
      CloudAssemblyRootPath: path-to-cdk.out
```

## CDKDeploy
<a name="cdk.dep.name"></a>

(Obligatorio) 

Especifique el nombre de la acción. Todos los nombres de las acciones deben ser únicos dentro del flujo de trabajo. Los nombres de las acciones están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de las acciones.

Predeterminado: `CDKDeploy_nn`.

Interfaz de usuario correspondiente: pestaña Configuración/**Nombre de la acción**

## Identifier
<a name="cdk.dep.identifier"></a>

(*CDKDeploy*/**Identifier**)

(Obligatorio) 

Identifica la acción. No cambie esta propiedad a menos que desee cambiar la versión. Para obtener más información, consulte [Especificación de la versión de la acción que se va a utilizar](workflows-action-versions.md).

**nota**  
Si se especifica `aws/cdk-deploy@v2`, la acción se ejecuta en la [imagen de marzo de 2024](build-images.md#build.default-image), que incluye herramientas más recientes, como Node.js 18. Si se especifica `aws/cdk-deploy@v1`, la acción se ejecuta en la [imagen de noviembre de 2022](build-images.md#build.previous-image), que incluye herramientas más antiguas, como Node.js 16.

Predeterminado: `aws/cdk-deploy@v2`.

Interfaz de usuario correspondiente: diagrama de flujo de trabajo/CDKDeploy\$1nn/etiqueta **aws/cdk-deploy@v2**

## DependsOn
<a name="cdk.dep.dependson"></a>

(*CDKDeploy*/**DependsOn**)

(Opcional)

Especifique la acción, el grupo de acciones o la puerta que debe ejecutarse correctamente para que la acción **Implementación de AWS CDK ** se ejecute. Se recomienda especificar la acción de **Arranque de AWS CDK ** en la propiedad de `DependsOn`, de la siguiente manera:

```
CDKDeploy:
  Identifier: aws/cdk-deploy@v2
  DependsOn:
    - CDKBootstrap
```

**nota**  
El [arranque es un requisito previo obligatorio para implementar una aplicación](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html). AWS CDK Si no incluye la acción **Arranque de AWS CDK ** en su flujo de trabajo, debe buscar otra forma de implementar la pila de arranque de AWS CDK antes de ejecutar la acción **Implementación de AWS CDK **. Para obtener más información, consulta [Añadir la acción «AWS CDK desplegar»](cdk-dep-action-add.md) en [Implementación de una AWS CDK aplicación con un flujo de trabajo](cdk-dep-action.md).

Para obtener más información sobre la funcionalidad “depende de”, consulte [Secuenciación de acciones](workflows-depends-on.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Depende de (opcional)**

## Compute
<a name="cdk.dep.computename"></a>

(*CDKDeploy*/**Compute**)

(Opcional)

El motor de computación utilizado para ejecutar las acciones del flujo de trabajo. Puede especificar el motor de computación en el nivel del flujo de trabajo o en el nivel de acción, pero no en ambos. Cuando se especifica en el nivel de flujo de trabajo, la configuración del motor de computación se aplica a todas las acciones definidas en el flujo de trabajo. En el nivel de flujo de trabajo, también puede ejecutar varias acciones en la misma instancia. Para obtener más información, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md).

Interfaz de usuario correspondiente: *ninguna*

## Type
<a name="cdk.dep.computetype"></a>

(*CDKDeploy*/Compute/**Type**)

(Obligatorio si se incluye [Compute](#cdk.dep.computename))

El tipo de motor de computación. Puede utilizar uno de los siguientes valores:
+ **EC2**(editor visual) o (editor YAML`EC2`)

  Optimizado para ofrecer flexibilidad durante las ejecuciones de acciones.
+ **Lambda** (editor visual) o `Lambda` (editor de YAML)

  Velocidades de inicio de acciones optimizadas.

Para obtener más información sobre los tipos de computación, consulte [Tipos de computación](workflows-working-compute.md#compute.types).

**Interfaz de usuario correspondiente: configuración tab/Advanced : opcional/tipo de cálculo**

## Fleet
<a name="cdk.dep.computefleet"></a>

(*CDKDeploy*/Compute/**Fleet**)

(Opcional)

Especifique la máquina o la flota que ejecutará el flujo de trabajo o las acciones del flujo de trabajo. Con las flotas bajo demanda, cuando se inicia una acción, el flujo de trabajo aprovisiona los recursos que necesita y las máquinas se destruyen cuando finaliza la acción. Ejemplos de flotas bajo demanda: `Linux.x86-64.Large`, `Linux.x86-64.XLarge`. Para obtener más información sobre las flotas bajo demanda, consulte [Propiedades de las flotas bajo demanda](workflows-working-compute.md#compute.on-demand).

Con las flotas aprovisionadas, configura un conjunto de máquinas dedicadas para ejecutar las acciones del flujo de trabajo. Estas máquinas permanecen inactivas, listas para procesar acciones de forma inmediata. Para obtener más información sobre las flotas aprovisionadas, consulte [Propiedades de flotas aprovisionadas](workflows-working-compute.md#compute.provisioned-fleets).

Si `Fleet` se omite, el valor predeterminado es `Linux.x86-64.Large`.

**Interfaz de usuario correspondiente: Configuración: opcional/flota de tab/Advanced cómputo**

## Timeout
<a name="cdk.dep.timeout"></a>

(*CDKDeploy*/**Timeout**)

(Obligatorio) 

Especifique la cantidad de tiempo en minutos (editor YAML) o en horas y minutos (editor visual) que la acción puede ejecutarse antes de que CodeCatalyst finalice la acción. El mínimo es 5 minutos y el máximo se describe en [Cuotas para flujos de trabajo en CodeCatalyst](workflows-quotas.md). El tiempo de espera predeterminado es el mismo que el tiempo de espera máximo.

Interfaz de usuario correspondiente: pestaña Configuración/**Tiempo de espera (opcional)**

## Inputs
<a name="cdk.dep.inputs"></a>

(*CDKDeploy*/**Inputs**)

(Opcional)

La sección `Inputs` define los datos que necesita la acción `CDKDeploy` durante la ejecución de un flujo de trabajo.

**nota**  
Solo se permite una entrada (ya sea un código fuente o un artefacto) para cada acción Implementación de AWS CDK .

Interfaz de usuario correspondiente: pestaña **Entradas**

## Sources
<a name="cdk.dep.inputs.sources"></a>

(*CDKDeploy*/Inputs/**Sources**)

(Obligatorio si la AWS CDK aplicación que quieres implementar está almacenada en un repositorio de origen)

Si AWS CDK la aplicación está almacenada en un repositorio de origen, especifique la etiqueta de ese repositorio de origen. La acción **Implementación de AWS CDK ** sintetiza la aplicación en este repositorio antes de iniciar el proceso de implementación. Actualmente, la única etiqueta admitida es `WorkflowSource`.

Si tu AWS CDK aplicación no está incluida en un repositorio de origen, debe residir en un artefacto generado por otra acción.

Para obtener más información sobre orígenes, consulte [Conexión de repositorios de código fuente a flujos de trabajo](workflows-sources.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Orígenes (opcional)**

## Artifacts - input
<a name="cdk.dep.inputs.artifacts"></a>

(*CDKDeploy*/Inputs/**Artifacts**)

(Obligatorio si la AWS CDK aplicación que quieres implementar está almacenada en un [artefacto de salida](workflows-working-artifacts-output.md) de una acción anterior)

Si tu AWS CDK aplicación está incluida en un artefacto generado por una acción anterior, especifica ese artefacto aquí. La acción de **AWS CDK despliegue** sintetiza la aplicación del artefacto especificado en una CloudFormation plantilla antes de iniciar el proceso de despliegue. Si tu AWS CDK aplicación no está incluida en un artefacto, debe residir en tu repositorio de origen.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Artefactos (opcional)**

## Outputs
<a name="cdk.dep.outputs"></a>

(*CDKDeploy*/**Outputs**)

(Opcional)

Define los datos que necesita una acción durante la ejecución de un flujo de trabajo.

Interfaz de usuario correspondiente: pestaña **Salidas**

## Artifacts - output
<a name="cdk.dep.outputs.artifacts"></a>

(*CDKDeploy*/Outputs/**Artifacts**

(Opcional)

Especifique el nombre de los artefactos generados por la acción. Puede hacer referencia a estos artefactos como entrada en otras acciones.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: pestaña Salidas/**Artefactos**

## Name
<a name="cdk.dep.outputs.artifacts.name"></a>

(*CDKDeploy*/Outputs/Artifacts/**Name**)

(Obligatorio si se incluye [Artifacts - output](#cdk.dep.outputs.artifacts))

Especifica el nombre del artefacto que contendrá la CloudFormation plantilla sintetizada por la acción de **AWS CDK despliegue** en tiempo de ejecución. El valor predeterminado es `cdk_artifact`. Si no especifica un artefacto, la acción sintetizará la plantilla, pero no la guardará en un artefacto. Considere la posibilidad de guardar la plantilla sintetizada en un artefacto para conservar un registro de la misma para probarla o solucionar problemas.

**Interfaz de usuario correspondiente: genera el nombre del tab/Artifacts/Add artefacto/crea el nombre del artefacto**

## Files
<a name="cdk.dep.outputs.artifacts.files"></a>

(*CDKDeploy*/Outputs/Artifacts/**Files**)

(Obligatorio si se incluye [Artifacts - output](#cdk.dep.outputs.artifacts))

Especifique los archivos que desee incluir en el artefacto. Debes especificar si quieres incluir `"cdk.out/**/*"` la plantilla sintetizada de tu AWS CDK aplicación. CloudFormation 

**nota**  
`cdk.out` es el directorio predeterminado en el que se guardan los archivos sintetizados. Si especificó un directorio de salida distinto de `cdk.out` en el archivo `cdk.json`, especifique ese directorio aquí en lugar de `cdk.out`.

Interfaz de usuario correspondiente: genera tab/Artifacts/Add artefactos o **archivos** producidos por la compilación

## Environment
<a name="cdk.dep.environment"></a>

(*CDKDeploy*/**Environment**)

(Obligatorio) 

Especifica el CodeCatalyst entorno que se va a utilizar con la acción. La acción se conecta a Cuenta de AWS la Amazon VPC opcional especificada en el entorno elegido. La acción utiliza la función de IAM predeterminada especificada en el entorno para conectarse a Cuenta de AWS, y utiliza la función de IAM especificada en la [conexión de Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) para conectarse a la Amazon VPC.

**nota**  
Si el rol de IAM predeterminado no tiene los permisos necesarios para la acción, puede configurarla para que utilice un rol diferente. Para obtener más información, consulte [Cambio del rol de IAM de una acción](deploy-environments-switch-role.md).

Para obtener más información sobre los entornos, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md) y [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Name
<a name="cdk.dep.environment.name"></a>

(*CDKDeploy*/Environment/**Name**)

(Obligatorio si se incluye [Environment](#cdk.dep.environment))

Especifique el nombre del entorno existente que desea asociar a la acción.

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Connections
<a name="cdk.dep.environment.connections"></a>

(*CDKDeploy*/Environment/**Connections**)

(Opcional en las versiones más recientes de la acción; obligatorio en las versiones más antiguas)

Especifique la conexión de cuenta que desee asociar a la acción. Puede especificar un máximo de una conexión de cuenta en `Environment`.

Si no especifica una conexión de cuenta:
+ La acción utiliza la Cuenta de AWS conexión y la función de IAM predeterminada especificadas en el entorno de la consola. CodeCatalyst Para obtener información sobre cómo añadir una conexión de cuenta y un rol de IAM predeterminado al entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).
+ El rol de IAM predeterminado debe incluir las políticas y los permisos que requiere la acción. Para determinar cuáles son esas políticas y permisos, consulte la descripción de la propiedad **Role** en la documentación de la definición de YAML de la acción.

Para obtener más información sobre las conexiones de cuenta, consulte [Permitir el acceso a AWS los recursos con conexión Cuentas de AWS](ipa-connect-account.md). Para obtener más información sobre cómo añadir una conexión de cuenta a un entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿tab/Environment/WhatLa configuración está lista? *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ conexión de cuenta Environment/account/role AWS **

## Name
<a name="cdk.dep.environment.connections.name"></a>

(*CDKDeploy*/Environment/Connections/**Name**)

(Obligatorio si se incluye [Connections](#cdk.dep.environment.connections))

Especifique el nombre de la conexión de cuenta.

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿La configuración está lista? tab/Environment/What *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ conexión de cuenta Environment/account/role AWS **

## Role
<a name="cdk.dep.environment.connections.role"></a>

(*CDKDeploy*/Environment/Connections/**Role**)

(Obligatorio si se incluye [Connections](#cdk.dep.environment.connections))

Especifique el nombre de la conexión de cuenta.

Especifique el nombre de la función de IAM que la acción de **AWS CDK despliegue** utiliza para acceder a la pila de aplicaciones AWS e implementarla. AWS CDK Asegúrese de haber [agregado el rol a su CodeCatalyst espacio](ipa-connect-account-addroles.md) y de que el rol incluya las siguientes políticas.

Si no especifica un rol de IAM, la acción utilizará el rol de IAM predeterminado que aparece en el [entorno](deploy-environments.md) de la consola. CodeCatalyst Si usa el rol predeterminado en el entorno, asegúrese de que tenga las siguientes políticas.
+ La siguiente política de permisos:
**aviso**  
Limite los permisos a los que se muestran en la siguiente política. El uso de un rol con permisos más amplios puede suponer un riesgo de seguridad.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "VisualEditor0",
              "Effect": "Allow",
              "Action": [
                  "cloudformation:DescribeStackEvents",
                  "cloudformation:DescribeChangeSet",
                  "cloudformation:DescribeStacks",
                  "cloudformation:ListStackResources"
              ],
              "Resource": "*"
          },
          {
              "Sid": "VisualEditor1",
              "Effect": "Allow",
              "Action": "sts:AssumeRole",
              "Resource": "arn:aws:iam::111122223333:role/cdk-*"
          }
      ]
  }
  ```

------
+ La siguiente política de confianza personalizada:

**nota**  
Puede usar el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` con esta acción, si así lo desea. Para obtener más información acerca de este rol, consulte [Creación del rol **CodeCatalystWorkflowDevelopmentRole-*spaceName*** para su cuenta y su espacio](ipa-iam-roles.md#ipa-iam-roles-service-create). Tenga en cuenta que el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` tiene permisos de acceso total, lo que puede suponer un riesgo para la seguridad. Le recomendamos que utilice este rol solo en tutoriales y situaciones en las que la seguridad no sea un problema. 

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿tab/Environment/WhatLa configuración está lista? *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ Rol Environment/account/role**

## Configuration
<a name="cdk.dep.configuration"></a>

(*CDKDeploy*/**Configuration**)

(Obligatorio) 

Una sección en la que puede definir las propiedades de configuración de la acción.

Interfaz de usuario correspondiente: pestaña **Configuración**

## StackName
<a name="cdk.dep.stack.name"></a>

(*CDKDeploy*/Configuration/**StackName**)

(Obligatorio) 

El nombre de la pila de AWS CDK aplicaciones, tal como aparece en el archivo de punto de entrada del directorio de la aplicación. AWS CDK `bin` En el siguiente ejemplo, se muestra el contenido de un archivo de TypeScript punto de entrada, con el nombre de la pila resaltado. *red italics* Si el archivo de puntos de entrada está en un lenguaje diferente, tendrá un aspecto similar.

```
import * as cdk from 'aws-cdk-lib';
import { CdkWorksopTypescriptStack } from '../lib/cdk_workshop_typescript-stack';

const app = new cdk.App();
new CdkWorkshopTypescriptStack(app, 'CdkWorkshopTypescriptStack');
```

Solo puede especificar una sola pila.

**sugerencia**  
Si tiene varias pilas, puede crear una pila principal con pilas anidadas. A continuación, puede especificar la pila principal en esta acción para implementar todas las pilas.

Interfaz de usuario correspondiente: pestaña Configuración/**Nombre de la pila**

## Region
<a name="cdk.dep.region"></a>

(*CDKDeploy*/Configuration/**Region**)

(Opcional)

Especifique Región de AWS en qué lugar se desplegará la pila de AWS CDK aplicaciones. Para ver una lista de códigos de regiones, consulte [Puntos de conexión regionales](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes).

Si no especifica una región, la acción de **AWS CDK despliegue** se despliega en la región especificada en el AWS CDK código. Para obtener más información, consulte [Environments](https://docs.aws.amazon.com/cdk/v2/guide/environments.html) en la *Guía para desarrolladores de AWS Cloud Development Kit (AWS CDK) *.

Interfaz de usuario correspondiente: pestaña Configuración/**Región**

## Tags
<a name="cdk.dep.tags"></a>

(*CDKDeploy*/Configuration/**Tags**)

(Opcional)

Especifique las etiquetas que desee aplicar a AWS los recursos de la pila de AWS CDK aplicaciones. Las etiquetas se aplican a la propia pila, así como a los distintos recursos de la pila. Para obtener más información acerca del etiquetado, consulte [Tagging](https://docs.aws.amazon.com/cdk/v2/guide/tagging.html) en la *Guía para desarrolladores de AWS Cloud Development Kit (AWS CDK) *.

**Interfaz de usuario correspondiente: Configuración tab/Advanced : opcional/ Etiquetas**

## Context
<a name="cdk.dep.context"></a>

(*CDKDeploy*/Configuration/**Context**)

(Opcional)

Especifique los contextos, en forma de pares clave-valor, para asociarlos a la pila de aplicaciones. AWS CDK Para obtener más información sobre los contextos, consulte [Runtime contexts](https://docs.aws.amazon.com/cdk/v2/guide/context.html) en la *Guía para desarrolladores de AWS Cloud Development Kit (AWS CDK) *.

**Interfaz de usuario correspondiente: Configuración tab/Advanced : opcional/contexto**

## CdkCliVersion
<a name="cdk.dep.cdk.cli.version"></a>

(*CDKDeploy*/Configuration/**CdkCliVersion**)

(Opcional)

Esta propiedad está disponible en la versión 1.0.13 o posterior de la acción **Implementación de AWS CDK ** y en la versión 1.0.8 o posterior de la acción **Arranque de AWS CDK **.

Especifique uno de los siguientes valores:
+ La versión completa de la interfaz de línea de AWS Cloud Development Kit (AWS CDK) comandos (CLI) (también denominada AWS CDK kit de herramientas) que desea que utilice esta acción. Ejemplo: `2.102.1`. Considere la posibilidad de especificar una versión completa para garantizar la coherencia y la estabilidad al crear e implementar la aplicación.

  O
+ `latest`. Considere la posibilidad de especificar `latest` para aprovechar las características y correcciones más recientes de la CLI de CDK.

La acción descargará la versión especificada (o la última versión) de la AWS CDK CLI a la [imagen de CodeCatalyst compilación](build-images.md) y, a continuación, utilizará esta versión para ejecutar los comandos necesarios para implementar la aplicación CDK o arrancar el entorno. AWS 

Para obtener una lista de las versiones de CLI de CDK compatibles que puede utilizar, consulte [Versiones de AWS CDK](https://docs.aws.amazon.com/cdk/api/versions.html).

Si omite esta propiedad, la acción utilizará una versión AWS CDK CLI predeterminada que se describe en uno de los temas siguientes:
+ [Versiones de CDK CLI utilizadas por la acción de «AWS CDK implementar»](cdk-dep-action.md#cdk-dep-action-cdk-version) 
+ [Versiones de CDK CLI utilizadas por la acción «AWS CDK bootstrap»](cdk-boot-action.md#cdk-boot-action-cdk-version)

Interfaz de usuario correspondiente: pestaña de configuración/versión **AWS CDK CLI**

## CdkRootPath
<a name="cdk.dep.cdk.root.path"></a>

(*CDKDeploy*/Configuration/**CdkRootPath**)

(Opcional)

La ruta al directorio que contiene el `cdk.json` archivo del AWS CDK proyecto. La acción **Implementación de AWS CDK ** se ejecuta desde esta carpeta y cualquier resultado creado por la acción se añadirá a este directorio. Si no se especifica, la acción de **AWS CDK despliegue** asume que el `cdk.json` archivo está en la raíz del AWS CDK proyecto.

Interfaz de usuario correspondiente: pestaña Configuración/**Directorio donde reside el archivo cdk.json**

## CfnOutputVariables
<a name="cdk.dep.cfn.out"></a>

(*CDKDeploy*/Configuration/**CfnOutputVariables**)

(Opcional)

Especifique qué `CfnOutput` componentes del código de AWS CDK la aplicación desea exponer como variables de salida del flujo de trabajo. A continuación, puede hacer referencia a las variables de salida del flujo de trabajo en acciones posteriores del flujo de trabajo. Para obtener más información sobre las variables en CodeCatalyst, consulte[Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

Por ejemplo, si el código de AWS CDK la aplicación tiene este aspecto:

```
import { Duration, Stack, StackProps, CfnOutput, RemovalPolicy} from 'aws-cdk-lib';
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import * as s3 from 'aws-cdk-lib/aws-s3';
import { Construct } from 'constructs';
import * as cdk from 'aws-cdk-lib';
export class HelloCdkStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);
    const bucket = new s3.Bucket(this, 'amzn-s3-demo-bucket', {
      removalPolicy: RemovalPolicy.DESTROY,
    });
    new CfnOutput(this, 'bucketName', {
      value: bucket.bucketName,
      description: 'The name of the s3 bucket',
      exportName: 'amzn-s3-demo-bucket',
    });
    const table = new dynamodb.Table(this, 'todos-table', {
      partitionKey: {name: 'todoId', type: dynamodb.AttributeType.NUMBER},
      billingMode: dynamodb.BillingMode.PAY_PER_REQUEST,
      removalPolicy: RemovalPolicy.DESTROY,
    })
    new CfnOutput(this, 'tableName', {
      value: table.tableName,
      description: 'The name of the dynamodb table',
      exportName: 'myDynamoDbTable',
    });
    ...
  }
}
```

...y la propiedad `CfnOutputVariables` tiene este aspecto:

```
Configuration:
  ...
  CfnOutputVariables: '["bucketName","tableName"]'
```

...entonces la acción genera las siguientes variables de salida del flujo de trabajo:


| Clave | Valor | 
| --- | --- | 
|  bucketName  |  `bucket.bucketName`  | 
|  tableName  |  `table.tableName`  | 

A continuación, puede hacer referencia a las variables `bucketName` y `tableName` en acciones posteriores. Para aprender a hacer referencia a las variables de salida del flujo de trabajo en acciones posteriores, consulte [Referencia a una variable predefinida](workflows-working-with-variables-reference-output-vars.md).

Si no especifica ningún `CfnOutput` componente fijo en la `CfnOutputVariables` propiedad, la acción expone las cuatro primeras variables de salida (o menos) que encuentre como variables de CloudFormation salida del flujo de trabajo. Para obtener más información, consulte [Variables de 'Implementación de AWS CDK '](cdk-dep-action-variables.md).

**sugerencia**  
Para obtener una lista de todas las variables de CloudFormation salida que produce la acción, ejecuta el flujo de trabajo que contiene la acción de **AWS CDK despliegue** una vez y, a continuación, consulta la pestaña **Registros** de la acción. Los registros contienen una lista de todas las variables CloudFormation de salida asociadas a tu AWS CDK aplicación. Una vez que sepas cuáles son todas las CloudFormation variables, puedes especificar cuáles quieres convertir en variables de salida del flujo de trabajo mediante la `CfnOutputVariables` propiedad.

Para obtener más información sobre las variables de CloudFormation salida, consulta la documentación de la `CfnOutput` construcción, disponible en la [clase CfnOutput (construcción)](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnOutput.html) de la *referencia de la AWS Cloud Development Kit (AWS CDK) API*.

Interfaz de usuario correspondiente: pestaña de configuración/variables **CloudFormation de salida**

## CloudAssemblyRootPath
<a name="cdk.dep.cloud"></a>

(*CDKDeploy*/Configuration/**CloudAssemblyRootPath**)

(Opcional)

Si ya sintetizó la pila de su AWS CDK aplicación en un ensamblaje en la nube (mediante la `cdk synth` operación), especifique la ruta raíz del directorio del ensamblaje en la nube (`cdk.out`). La CloudFormation plantilla ubicada en el directorio de ensamblaje de nube especificado se implementará mediante la acción de **AWS CDK implementación** Cuenta de AWS mediante el `cdk deploy --app` comando. Cuando la opción `--app` está presente, la operación `cdk synth` no se produce.

Si no especifica un directorio de ensamblado en la nube, la acción **Implementación de AWS CDK ** ejecutará el comando `cdk deploy` sin la opción `--app`. Sin `--app` esta opción, la `cdk deploy` operación sintetizará (`cdk synth`) e implementará tu AWS CDK aplicación en tu Cuenta de AWS. 

**¿Por qué especificaría un ensamblaje de nube sintetizado y existente cuando la acción de «AWS CDK despliegue» puede realizar la síntesis en tiempo de ejecución?**

Es posible que desee especificar un ensamblado en la nube sintetizado existente para:
+ **Asegúrese de implementar exactamente el mismo conjunto de recursos cada vez que se ejecute la acción de «AWS CDK despliegue»**

  Si no especifica un ensamblado en la nube, es posible que la acción **Implementación de AWS CDK ** sintetice e implemente archivos diferentes en función de cuándo se ejecute. Por ejemplo, la acción **Implementación de AWS CDK ** podría sintetizar un ensamblado en la nube con un conjunto de dependencias durante una fase de prueba y otro conjunto de dependencias durante una fase de producción (si esas dependencias cambiaran de una fase a otra). Para garantizar una paridad exacta entre lo que se ha probado y lo que se ha implementado, se recomienda sintetizar una vez y, después, usar el campo **Ruta al directorio de ensamblado en la nube** (editor visual) o la propiedad `CloudAssemblyRootPath` (editor de YAML) para especificar el ensamblado de nube ya sintetizado.
+ **Usar herramientas y administradores de paquetes no estándares con la aplicación de AWS CDK **

  Durante una operación `synth`, la acción **Implementación de AWS CDK ** intenta ejecutar la aplicación con herramientas estándar, como npm o pip. Si la acción no puede ejecutar correctamente la aplicación con esas herramientas, la síntesis no se producirá y la acción fallará. Para solucionar este problema, puedes especificar los comandos exactos necesarios para ejecutar la aplicación correctamente en el `cdk.json` archivo de la AWS CDK aplicación y, a continuación, sintetizarla mediante un método que no implique la acción de **AWS CDK implementación**. Una vez generado el ensamblado en la nube, puede especificarlo en el campo **Ruta al directorio de ensamblado en la nube** (editor visual) o en la propiedad `CloudAssemblyRootPath` (editor de YAML) de la acción **Implementación de AWS CDK **. 

Para obtener información sobre cómo configurar el `cdk.json` archivo para que incluya comandos para instalar y ejecutar la AWS CDK aplicación, consulte [Especificar el comando de la aplicación](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-app-command).

Para obtener información sobre los comandos `cdk deploy` y `cdk synth`, así como sobre la opción `--app`, consulte [Deploying stacks](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-deploy), [Synthesizing stacks](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-synth) y [Skipping synthesis](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-deploy-nosynth) en la *Guía para desarrolladores de AWS Cloud Development Kit (AWS CDK) *.

Para obtener información acerca de los ensamblados en la nube, consulte [Cloud Assembly](https://docs.aws.amazon.com/cdk/api/v2/docs/cloud-assembly-schema-readme.html) en la *Referencia de la API de AWS Cloud Development Kit (AWS CDK) *.

Interfaz de usuario correspondiente: pestaña Configuración/**Ruta al directorio de ensamblado en la nube**

# Cómo iniciar una AWS CDK aplicación con un flujo de trabajo
<a name="cdk-boot-action"></a>

En esta sección se describe cómo iniciar una AWS CDK aplicación mediante un CodeCatalyst flujo de trabajo. Para ello, debe añadir la acción **Arranque de AWS CDK ** a su flujo de trabajo. La acción **Arranque de AWS CDK ** aprovisiona una pila de arranque en su entorno de AWS mediante la [plantilla moderna](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html#bootstrapping-template). Si ya existe una pila de arranque, la acción la actualiza si es necesario. Contar con una pila de bootstrap AWS es un requisito previo para implementar una AWS CDK aplicación.

Para obtener más información acerca del arranque, consulte [Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) en la *Guía para desarrolladores de AWS Cloud Development Kit (AWS CDK) *.

**Topics**
+ [

## ¿Cuándo usar la acción «AWS CDK arrancar»
](#cdk-boot-action-when-to-use)
+ [

## Cómo funciona la acción «AWS CDK bootstrap»
](#cdk-boot-action-how-it-works)
+ [

## Versiones de CDK CLI utilizadas por la acción «AWS CDK bootstrap»
](#cdk-boot-action-cdk-version)
+ [

## Imagen de tiempo de ejecución utilizada por la acción «bootstrap»AWS CDK
](#cdk-boot-action-runtime)
+ [

# Ejemplo: iniciar una aplicación AWS CDK
](cdk-boot-action-example-workflow.md)
+ [

# Añadir la acción 'AWS CDK bootstrap'
](cdk-boot-action-add.md)
+ [

# Variables de 'Arranque de AWS CDK '
](cdk-boot-action-variables.md)
+ [

# Acción 'Arranque de AWS CDK ' en YAML
](cdk-boot-action-ref.md)

## ¿Cuándo usar la acción «AWS CDK arrancar»
<a name="cdk-boot-action-when-to-use"></a>

Use esta acción si tiene un flujo de trabajo que implementa una AWS CDK aplicación y desea implementar (y actualizar, si es necesario) la pila de bootstrap al mismo tiempo. En este caso, añadiría la acción de **AWS CDK arranque** al mismo flujo de trabajo que el que implementa la aplicación. AWS CDK 

**No** utilice esta acción si se dan alguna de las siguientes circunstancias:
+ Ya ha implementado una pila de arranque mediante otro mecanismo y desea mantenerla intacta (sin actualizaciones).
+ Desea utilizar una [plantilla de arranque personalizada](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html#bootstrapping-customizing) que no es compatible con la acción **Arranque de AWS CDK **.

## Cómo funciona la acción «AWS CDK bootstrap»
<a name="cdk-boot-action-how-it-works"></a>

La acción **Arranque de AWS CDK ** funciona de la siguiente manera:

1. [En tiempo de ejecución, si especificó la versión 1.0.7 o anterior de la acción, la acción descarga la última CLI de CDK (también denominada kit de herramientas) AWS CDK a la imagen de compilación. CodeCatalyst ](build-images.md)

   Si especificó la versión 1.0.8 o posterior, la acción viene incluida con una [versión específica](cdk-dep-action.md#cdk-dep-action-cdk-version) de la CLI de CDK, por lo que no se produce ninguna descarga.

1. La acción utiliza la CLI de CDK para ejecutar el comando `cdk bootstrap`. Este comando realiza las tareas de arranque descritas en el tema [Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) de la *Guía para desarrolladores de AWS Cloud Development Kit (AWS CDK) *.

## Versiones de CDK CLI utilizadas por la acción «AWS CDK bootstrap»
<a name="cdk-boot-action-cdk-version"></a>

En la siguiente tabla se muestra qué versión de la CLI de CDK utilizan de forma predeterminada las diferentes versiones de la acción **Arranque de AWS CDK **.

**nota**  
Puede invalidar la predeterminada. Para obtener más información, consulte [CdkCliVersion](cdk-boot-action-ref.md#cdk.boot.cdk.cli.version) en la [Acción 'Arranque de AWS CDK ' en YAML](cdk-boot-action-ref.md).


| Versión de la acción 'Arranque de AWS CDK ' | AWS CDK Versión CLI | 
| --- | --- | 
|  1.0.0 – 1.0.7  |  más reciente  | 
|  1.0.8 o posterior  |  2.99.1  | 

## Imagen de tiempo de ejecución utilizada por la acción «bootstrap»AWS CDK
<a name="cdk-boot-action-runtime"></a>

**La siguiente tabla muestra las imágenes del entorno de ejecución que se CodeCatalyst utilizan para ejecutar diferentes versiones de la AWS CDK acción de arranque.** Las imágenes incluyen diferentes conjuntos de herramientas preinstaladas. Para obtener más información, consulte [Imágenes activas](build-images.md#build-curated-images).

**nota**  
Le recomendamos que actualice la acción **Arranque de AWS CDK ** a la versión 2.x para aprovechar las últimas herramientas disponibles en la imagen de marzo de 2024. Para actualizar la acción, defina su propiedad `Identifier` en `aws/cdk-bootstrap@v2` en el archivo de definición de flujo de trabajo. Para obtener más información, consulte [YAML de la acción 'Implementación de AWS CDK '](cdk-dep-action-ref.md). 


| Versión de la acción 'Arranque de AWS CDK ' | Imágenes del entorno en tiempo de ejecución | 
| --- | --- | 
|  1.x  |  Imágenes de noviembre de 2022  | 
|  2.x  |  Imágenes de marzo de 2024  | 

# Ejemplo: iniciar una aplicación AWS CDK
<a name="cdk-boot-action-example-workflow"></a>

Consulte el [Ejemplo: Implementación de una AWS CDK aplicación](cdk-dep-action-example-workflow.md) en la [Implementación de una AWS CDK aplicación con un flujo de trabajo](cdk-dep-action.md) para ver un flujo de trabajo que incluye la acción **Arranque de AWS CDK **.

# Añadir la acción 'AWS CDK bootstrap'
<a name="cdk-boot-action-add"></a>

 Siga estas instrucciones para añadir la acción **Arranque de AWS CDK ** a su flujo de trabajo. 

**Antes de empezar**

Para poder usar la acción **Arranque de AWS CDK **, asegúrese de tener una aplicación de AWS CDK . La acción de arranque sintetizará la aplicación antes del arranque. AWS CDK Puede escribir la aplicación en cualquier lenguaje de programación compatible con AWS CDK.

Asegúrate de que los archivos de tu AWS CDK aplicación estén disponibles en:
+ Un [repositorio CodeCatalyst de origen](source.md), o 
+ Un [artefacto CodeCatalyst de salida](workflows-working-artifacts.md) generado por otra acción del flujo de trabajo

------
#### [ Visual ]

**Para añadir la acción «AWS CDK arrancar» mediante el editor visual**

1. [Abra la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busque la acción **Arranque de AWS CDK ** y realice una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija **Arranque de AWS CDK **. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Ver código fuente** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. En las pestañas **Entradas**, **Configuración** y **Salidas**, complete los campos según sus necesidades. Para obtener una descripción de cada uno de los campos, consulte la [Acción 'Arranque de AWS CDK ' en YAML](cdk-boot-action-ref.md). Esta referencia proporciona información detallada sobre cada campo (y el valor de la propiedad de YAML correspondiente) tal como aparece en el editor visual y el de YAML.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.
**nota**  
Si la acción **Arranque de AWS CDK ** falla y se produce un error `npm install`, consulte [¿Cómo puedo corregir los errores npm install?](troubleshooting-workflows.md#troubleshooting-workflows-npm) para obtener información sobre cómo corregir el error.

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

**Para añadir la acción «AWS CDK bootstrap» mediante el editor YAML**

1. [Abre la consola en https://codecatalyst.aws/ CodeCatalyst .](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busque la acción **Arranque de AWS CDK ** y elija **\$1** para añadirla al diagrama de flujo de trabajo y abrir su panel de configuración.

1. Modifique las propiedades del código de YAML en función de sus necesidades. Encontrará una explicación de todas las propiedades disponibles en la [Acción 'Arranque de AWS CDK ' en YAML](cdk-boot-action-ref.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.
**nota**  
Si la acción **Arranque de AWS CDK ** falla y se produce un error `npm install`, consulte [¿Cómo puedo corregir los errores npm install?](troubleshooting-workflows.md#troubleshooting-workflows-npm) para obtener información sobre cómo corregir el error.

------

# Variables de 'Arranque de AWS CDK '
<a name="cdk-boot-action-variables"></a>

La acción **Arranque de AWS CDK ** produce y establece las siguientes variables en tiempo de ejecución. Se conocen como *variables predefinidas*.

Para obtener información sobre cómo hacer referencia a estas variables en un flujo de trabajo, consulte [Uso de variables predefinidas](workflows-using-predefined-variables.md).


| Clave | Valor | 
| --- | --- | 
|  deployment-platform  |  El nombre de la plataforma de implementación. Codificado en `AWS:CloudFormation`.  | 
|  region  |  El código de región en el Región de AWS que se implementó la pila de AWS CDK arranque durante la ejecución del flujo de trabajo. Ejemplo: `us-west-2`  | 
|  stack-id  |  El nombre de recurso de Amazon (ARN) de la pila de AWS CDK bootstrap implementada. Ejemplo: `arn:aws:cloudformation:us-west-2:111122223333:stack/codecatalyst-cdk-bootstrap-stack/6aad4380-100a-11ec-a10a-03b8a84d40df`  | 
|  SKIP-DEPLOYMENT  |  Un valor de `true` indica que se omitió el despliegue de la pila de AWS CDK bootstrap durante la ejecución del flujo de trabajo. Se omitirá la implementación de una pila si no se ha producido ningún cambio en la pila desde la última implementación. Esta variable solo se genera si su valor es `true`. Codificado en `true`.  | 

# Acción 'Arranque de AWS CDK ' en YAML
<a name="cdk-boot-action-ref"></a>

La siguiente es la definición en YAML de la acción **Arranque de AWS CDK **. Para obtener información sobre cómo utilizar esta acción, consulte [Cómo iniciar una AWS CDK aplicación con un flujo de trabajo](cdk-boot-action.md).

Esta definición de acción existe como una sección dentro de un archivo de definición de flujo de trabajo más amplio. Para obtener más información acerca de este archivo, consulte [Definición de flujo de trabajo en YAML](workflow-reference.md).

**nota**  
La mayoría de las propiedades de YAML que se muestran a continuación tienen elementos de interfaz de usuario correspondientes en el editor visual. Para buscar un elemento de la interfaz de usuario, use **Ctrl\$1F**. El elemento aparecerá en la lista con su propiedad de YAML asociada.

```
# The workflow definition starts here.
# See Propiedades de nivel superior for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.    
  CDKBootstrapAction\$1nn: 
    Identifier: aws/cdk-bootstrap@v2
    DependsOn:
      - action-name
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - artifact-name
    Outputs:
      Artifacts:
        - Name: cdk_bootstrap_artifacts
          Files: 
            - "cdk.out/**/*"
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Configuration:
      Region: us-west-2
      CdkCliVersion: version
```

## CDKBootstrapAction
<a name="cdk.boot.name"></a>

(Obligatorio) 

Especifique el nombre de la acción. Todos los nombres de las acciones deben ser únicos dentro del flujo de trabajo. Los nombres de las acciones están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de las acciones.

Predeterminado: `CDKBootstrapAction_nn`.

Interfaz de usuario correspondiente: pestaña Configuración/**Nombre de visualización de la acción**

## Identifier
<a name="cdk.boot.identifier"></a>

(*CDKBootstrapAction*/**Identifier**)

(Obligatorio)

Identifica la acción. No cambie esta propiedad a menos que desee cambiar la versión. Para obtener más información, consulte [Especificación de la versión de la acción que se va a utilizar](workflows-action-versions.md).

**nota**  
Si se especifica `aws/cdk-bootstrap@v2`, la acción se ejecuta en la [imagen de marzo de 2024](build-images.md#build.default-image), que incluye herramientas más recientes, como Node.js 18. Si se especifica `aws/cdk-bootstrap@v1`, la acción se ejecuta en la [imagen de noviembre de 2022](build-images.md#build.previous-image), que incluye herramientas más antiguas, como Node.js 16.

Predeterminado: `aws/cdk-bootstrap@v2`.

Interfaz de usuario correspondiente: Diagrama de flujo de trabajo/CDKBootstrapAction\$1nn/etiqueta **aws/cdk-bootstrap@v2**

## DependsOn
<a name="cdk.boot.dependson"></a>

(*CDKBootstrapAction*/**DependsOn**)

(Opcional)

Especifique la acción, el grupo de acciones o la puerta que debe ejecutarse correctamente para que esta acción se ejecute.

Para obtener más información sobre la funcionalidad “depende de”, consulte [Secuenciación de acciones](workflows-depends-on.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Depende de (opcional)**

## Compute
<a name="cdk.boot.computename"></a>

(*CDKBootstrapAction*/**Compute**)

(Opcional)

El motor de computación utilizado para ejecutar las acciones del flujo de trabajo. Puede especificar el motor de computación en el nivel del flujo de trabajo o en el nivel de acción, pero no en ambos. Cuando se especifica en el nivel de flujo de trabajo, la configuración del motor de computación se aplica a todas las acciones definidas en el flujo de trabajo. En el nivel de flujo de trabajo, también puede ejecutar varias acciones en la misma instancia. Para obtener más información, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md).

Interfaz de usuario correspondiente: *ninguna*

## Type
<a name="cdk.boot.computetype"></a>

(*CDKBootstrapAction*/Compute/**Type**)

(Obligatorio si se incluye [Compute](#cdk.boot.computename))

El tipo de motor de computación. Puede utilizar uno de los siguientes valores:
+ **EC2**(editor visual) o (editor YAML`EC2`)

  Optimizado para ofrecer flexibilidad durante las ejecuciones de acciones.
+ **Lambda** (editor visual) o `Lambda` (editor de YAML)

  Velocidades de inicio de acciones optimizadas.

Para obtener más información sobre los tipos de computación, consulte [Tipos de computación](workflows-working-compute.md#compute.types).

**Interfaz de usuario correspondiente: configuración tab/Advanced : opcional/tipo de cálculo**

## Fleet
<a name="cdk.boot.computefleet"></a>

(*CDKBootstrapAction*/Compute/**Fleet**)

(Opcional)

Especifique la máquina o la flota que ejecutará el flujo de trabajo o las acciones del flujo de trabajo. Con las flotas bajo demanda, cuando se inicia una acción, el flujo de trabajo aprovisiona los recursos que necesita y las máquinas se destruyen cuando finaliza la acción. Ejemplos de flotas bajo demanda: `Linux.x86-64.Large`, `Linux.x86-64.XLarge`. Para obtener más información sobre las flotas bajo demanda, consulte [Propiedades de las flotas bajo demanda](workflows-working-compute.md#compute.on-demand).

Con las flotas aprovisionadas, configura un conjunto de máquinas dedicadas para ejecutar las acciones del flujo de trabajo. Estas máquinas permanecen inactivas, listas para procesar acciones de forma inmediata. Para obtener más información sobre las flotas aprovisionadas, consulte [Propiedades de flotas aprovisionadas](workflows-working-compute.md#compute.provisioned-fleets).

Si `Fleet` se omite, el valor predeterminado es `Linux.x86-64.Large`.

**Interfaz de usuario correspondiente: Configuración: opcional/flota de tab/Advanced cómputo**

## Timeout
<a name="cdk.boot.timeout"></a>

(*CDKBootstrapAction*/**Timeout**)

(Obligatorio) 

Especifique la cantidad de tiempo en minutos (editor YAML) o en horas y minutos (editor visual) que la acción puede ejecutarse antes de que CodeCatalyst finalice la acción. El mínimo es 5 minutos y el máximo se describe en [Cuotas para flujos de trabajo en CodeCatalyst](workflows-quotas.md). El tiempo de espera predeterminado es el mismo que el tiempo de espera máximo.

Interfaz de usuario correspondiente: pestaña Configuración/**Tiempo de espera (opcional)**

## Inputs
<a name="cdk.boot.inputs"></a>

(*CDKBootstrapAction*/**Inputs**)

(Opcional)

La sección `Inputs` define los datos que necesita la acción **Arranque de AWS CDK ** durante la ejecución de un flujo de trabajo.

Interfaz de usuario correspondiente: pestaña **Entradas**

**nota**  
Solo se permite una entrada (ya sea un código fuente o un artefacto) para cada acción **Arranque de AWS CDK **.

## Sources
<a name="cdk.boot.inputs.sources"></a>

(*CDKBootstrapAction*/Inputs/**Sources**)

(Obligatorio si AWS CDK la aplicación está almacenada en un repositorio de código fuente)

Si tu AWS CDK aplicación está almacenada en un repositorio de origen, especifica la etiqueta de ese repositorio de origen. La acción **Arranque de AWS CDK ** sintetiza la aplicación en este repositorio antes de iniciar el proceso de arranque. Actualmente, la única etiqueta de repositorio admitida es `WorkflowSource`.

Si tu AWS CDK aplicación no está incluida en un repositorio de origen, debe residir en un artefacto generado por otra acción.

Para obtener más información sobre orígenes, consulte [Conexión de repositorios de código fuente a flujos de trabajo](workflows-sources.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Orígenes (opcional)**

## Artifacts - input
<a name="cdk.boot.inputs.artifacts"></a>

(*CDKBootstrapAction*/Inputs/**Artifacts**)

(Obligatorio si tu AWS CDK aplicación está almacenada en un [artefacto de salida](workflows-working-artifacts-output.md) de una acción anterior)

Si tu AWS CDK aplicación está incluida en un artefacto generado por una acción anterior, especifica ese artefacto aquí. La acción de **AWS CDK arranque** sintetiza la aplicación del artefacto especificado en una CloudFormation plantilla antes de iniciar el proceso de arranque. Si la aplicación de AWS CDK no está incluida en un artefacto, debe residir en el repositorio de código fuente.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Artefactos (opcional)**

## Outputs
<a name="cdk.boot.outputs"></a>

(*CDKBootstrapAction*/**Outputs**)

(Opcional)

Define los datos que necesita una acción durante la ejecución de un flujo de trabajo.

Interfaz de usuario correspondiente: pestaña **Salidas**

## Artifacts - output
<a name="cdk.boot.outputs.artifacts"></a>

(*CDKBootstrapAction*/Outputs/**Artifacts**)

(Opcional)

Especifique el nombre de los artefactos generados por la acción. Puede hacer referencia a estos artefactos como entrada en otras acciones.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: pestaña Salidas/**Artefactos**

## Name
<a name="cdk.boot.outputs.artifacts.name"></a>

(*CDKBootstrapAction*/Outputs/Artifacts/**Name**)

(Obligatorio si se incluye [Artifacts - output](#cdk.boot.outputs.artifacts))

**Especifique el nombre del artefacto que contendrá la CloudFormation plantilla sintetizada por la acción de arranque en tiempo de ejecución.AWS CDK ** El valor predeterminado es `cdk_bootstrap_artifacts`. Si no especifica un artefacto, la acción sintetizará la plantilla, pero no la guardará en un artefacto. Considere la posibilidad de guardar la plantilla sintetizada en un artefacto para conservar un registro de la misma para probarla o solucionar problemas.

**Interfaz de usuario correspondiente: genera el nombre del artefacto/crea el nombre del tab/Artifacts/Add artefacto**

## Files
<a name="cdk.boot.outputs.artifacts.files"></a>

(*CDKBootstrapAction*/Outputs/Artifacts/**Files**)

(Obligatorio si se incluye [Artifacts - output](#cdk.boot.outputs.artifacts))

Especifique los archivos que desee incluir en el artefacto. Debes especificar si quieres incluir `"cdk.out/**/*"` la plantilla sintetizada de tu AWS CDK aplicación. CloudFormation 

**nota**  
`cdk.out` es el directorio predeterminado en el que se guardan los archivos sintetizados. Si especificó un directorio de salida distinto de `cdk.out` en el archivo `cdk.json`, especifique ese directorio aquí en lugar de `cdk.out`.

Interfaz de usuario correspondiente: genera tab/Artifacts/Add artefactos o **archivos** producidos por la compilación

## Environment
<a name="cdk.boot.environment"></a>

(*CDKBootstrapAction*/**Environment**)

(Obligatorio) 

Especifica el CodeCatalyst entorno que se va a utilizar con la acción. La acción se conecta a Cuenta de AWS la Amazon VPC opcional especificada en el entorno elegido. La acción utiliza la función de IAM predeterminada especificada en el entorno para conectarse a Cuenta de AWS, y utiliza la función de IAM especificada en la [conexión de Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) para conectarse a la Amazon VPC.

**nota**  
Si el rol de IAM predeterminado no tiene los permisos necesarios para la acción, puede configurarla para que utilice un rol diferente. Para obtener más información, consulte [Cambio del rol de IAM de una acción](deploy-environments-switch-role.md).

Para obtener más información sobre los entornos, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md) y [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Name
<a name="cdk.boot.environment.name"></a>

(*CDKBootstrapAction*/Environment/**Name**)

(Obligatorio si se incluye [Environment](#cdk.boot.environment))

Especifique el nombre del entorno existente que desea asociar a la acción.

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Connections
<a name="cdk.boot.environment.connections"></a>

(*CDKBootstrapAction*/Environment/**Connections**)

(Opcional en las versiones más recientes de la acción; obligatorio en las versiones más antiguas)

Especifique la conexión de cuenta que desee asociar a la acción. Puede especificar un máximo de una conexión de cuenta en `Environment`.

Si no especifica una conexión de cuenta:
+ La acción utiliza la Cuenta de AWS conexión y la función de IAM predeterminada especificadas en el entorno de la consola. CodeCatalyst Para obtener información sobre cómo añadir una conexión de cuenta y un rol de IAM predeterminado al entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).
+ El rol de IAM predeterminado debe incluir las políticas y los permisos que requiere la acción. Para determinar cuáles son esas políticas y permisos, consulte la descripción de la propiedad **Role** en la documentación de la definición de YAML de la acción.

Para obtener más información sobre las conexiones de cuenta, consulte [Permitir el acceso a AWS los recursos con conexión Cuentas de AWS](ipa-connect-account.md). Para obtener más información sobre cómo añadir una conexión de cuenta a un entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿tab/Environment/WhatLa configuración está lista? *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ conexión de cuenta Environment/account/role AWS **

## Name
<a name="cdk.boot.environment.connections.name"></a>

(*CDKBootstrapAction*/Environment/Connections/**Name**)

(Obligatorio si se incluye [Connections](#cdk.boot.environment.connections))

Especifique el nombre de la conexión de cuenta.

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿La configuración está lista? tab/Environment/What *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ conexión de cuenta Environment/account/role AWS **

## Role
<a name="cdk.boot.environment.connections.role"></a>

(*CDKBootstrapAction*/Environment/Connections/**Role**)

(Obligatorio si se incluye [Connections](#cdk.boot.environment.connections))

Especifique el nombre de la función de IAM que la acción de **AWS CDK arranque utiliza para acceder a la pila de arranque** AWS y añadirla. Asegúrese de haber [agregado el rol a su CodeCatalyst espacio](ipa-connect-account-addroles.md) y de que el rol incluya las siguientes políticas.

Si no especifica un rol de IAM, la acción utilizará el rol de IAM predeterminado que aparece en el [entorno](deploy-environments.md) de la consola. CodeCatalyst Si usa el rol predeterminado en el entorno, asegúrese de que tenga las políticas adecuadas.

Puede usar el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` con esta acción, si así lo desea. Para obtener más información acerca de este rol, consulte [Creación del rol **CodeCatalystWorkflowDevelopmentRole-*spaceName*** para su cuenta y su espacio](ipa-iam-roles.md#ipa-iam-roles-service-create). Tenga en cuenta que el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` tiene permisos de acceso total, lo que puede suponer un riesgo para la seguridad. Le recomendamos que utilice este rol solo en tutoriales y situaciones en las que la seguridad no sea un problema. 

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿tab/Environment/WhatLa configuración está lista? *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ Rol Environment/account/role**

## Configuration
<a name="cdk.boot.configuration"></a>

(*CDKBootstrapAction*/**Configuration**)

(Obligatorio) 

Una sección en la que puede definir las propiedades de configuración de la acción.

Interfaz de usuario correspondiente: pestaña **Configuración**

## Region
<a name="cdk.boot.region"></a>

(*CDKBootstrapAction*/Configuration/**Region**)

(Obligatorio) 

Especifique el lugar Región de AWS en el que se desplegará la pila de arranque. Esta región debe coincidir con aquella en la que se implementa AWS CDK la aplicación. Para ver una lista de códigos de regiones, consulte [Puntos de conexión regionales](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes).

Interfaz de usuario correspondiente: pestaña Configuración/**Región**

## CdkCliVersion
<a name="cdk.boot.cdk.cli.version"></a>

(*CDKBootstrapAction*/Configuration/**CdkCliVersion**)

(Opcional)

Esta propiedad está disponible en la versión 1.0.13 o posterior de la acción **Implementación de AWS CDK ** y en la versión 1.0.8 o posterior de la acción **Arranque de AWS CDK **.

Especifique uno de los siguientes valores:
+ La versión completa de la interfaz de línea de AWS Cloud Development Kit (AWS CDK) comandos (CLI) (también denominada AWS CDK kit de herramientas) que desea que utilice esta acción. Ejemplo: `2.102.1`. Considere la posibilidad de especificar una versión completa para garantizar la coherencia y la estabilidad al crear e implementar la aplicación.

  O
+ `latest`. Considere la posibilidad de especificar `latest` para aprovechar las características y correcciones más recientes de la CLI de CDK.

La acción descargará la versión especificada (o la última versión) de la AWS CDK CLI a la [imagen de CodeCatalyst compilación](build-images.md) y, a continuación, utilizará esta versión para ejecutar los comandos necesarios para implementar la aplicación CDK o arrancar el entorno. AWS 

Para obtener una lista de las versiones de CLI de CDK compatibles que puede utilizar, consulte [Versiones de AWS CDK](https://docs.aws.amazon.com/cdk/api/versions.html).

Si omite esta propiedad, la acción utilizará una versión AWS CDK CLI predeterminada que se describe en uno de los temas siguientes:
+ [Versiones de CDK CLI utilizadas por la acción de «AWS CDK implementar»](cdk-dep-action.md#cdk-dep-action-cdk-version) 
+ [Versiones de CDK CLI utilizadas por la acción «AWS CDK bootstrap»](cdk-boot-action.md#cdk-boot-action-cdk-version)

Interfaz de usuario correspondiente: pestaña de configuración/versión **AWS CDK CLI**

# Publicación de archivos en Amazon S3 con un flujo de trabajo
<a name="s3-pub-action"></a>

En esta sección se describe cómo publicar archivos en Amazon S3 mediante un CodeCatalyst flujo de trabajo. Para ello, debe añadir la acción **Amazon S3 publish** a su flujo de trabajo. La acción **Amazon S3 publish** copia los archivos desde un directorio de origen a un bucket de Amazon S3. El directorio de origen puede residir en:
+ un [repositorio de código fuente](source.md); o 
+ un [artefacto de salida](workflows-working-artifacts.md) generado por otra acción del flujo de trabajo.

**Topics**
+ [

## Cuándo utilizar la acción Amazon S3 publish
](#s3-pub-action-when-to-use)
+ [

## Imagen de tiempo de ejecución utilizada por la acción Amazon S3 publish
](#s3-pub-action-runtime)
+ [

# Ejemplo: Publicación de archivos en Amazon S3
](s3-pub-action-example-workflow.md)
+ [

# Cómo añadir la acción Amazon S3 publish
](s3-pub-action-add.md)
+ [

# Acción Amazon S3 publish en YAML
](s3-pub-action-ref.md)

## Cuándo utilizar la acción Amazon S3 publish
<a name="s3-pub-action-when-to-use"></a>

Esta acción se usa si:
+ Tiene un flujo de trabajo que genere los archivos que quiera almacenar en Amazon S3.

  Por ejemplo, es posible que tenga un flujo de trabajo que cree un sitio web estático que quiera alojar en Amazon S3. En este caso, su flujo de trabajo incluiría una [acción de compilación](build-add-action.md) para crear el HTML y los archivos auxiliares del sitio, y una acción **Amazon S3 publish** para copiar los archivos en Amazon S3.
+ Tiene un repositorio de código fuente que contenga los archivos que quiera almacenar en Amazon S3.

  Por ejemplo, puede tener un repositorio de código fuente con archivos de código fuente de las aplicaciones que quiera archivar todas las noches en Amazon S3.

## Imagen de tiempo de ejecución utilizada por la acción Amazon S3 publish
<a name="s3-pub-action-runtime"></a>

La acción **Amazon S3 publish** se ejecuta en una [imagen de noviembre de 2022](build-images.md#build.previous-image). Para obtener más información, consulte [Imágenes activas](build-images.md#build-curated-images).

# Ejemplo: Publicación de archivos en Amazon S3
<a name="s3-pub-action-example-workflow"></a>

El siguiente flujo de trabajo de ejemplo incluye la acción **Amazon S3 publish**, junto con una acción de compilación. El flujo de trabajo crea un sitio web de documentación estática y después lo publica en Amazon S3, donde está alojado. El flujo de trabajo consta de los siguientes componentes que se ejecutarán en orden:
+ Un **desencadenador**: este desencadenador inicia la ejecución automática del flujo de trabajo cuando se introduce un cambio en el repositorio de código fuente. Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).
+ Una acción de **compilación** (`BuildDocs`): al activarla, la acción crea un sitio web de documentación estática (`mkdocs build`) y añade los archivos HTML asociados y los metadatos auxiliares a un artefacto llamado `MyDocsSite`. Para obtener más información sobre la acción de compilación, consulte [Compilación con flujos de trabajo](build-workflow-actions.md).
+ Una acción **Amazon S3 publish** (`PublishToS3`): al finalizar la acción de compilación, esta acción copia el sitio del artefacto `MyDocsSite` a Amazon S3 para su alojamiento.

**nota**  
El siguiente ejemplo de flujo de trabajo tiene fines ilustrativos y no funcionará sin una configuración adicional.

**nota**  
En el código de YAML que aparece a continuación, puede omitir la sección `Connections:` si lo desea. Si omite esta sección, debe asegurarse de que el rol especificado en el campo **Rol de IAM predeterminado** de su entorno incluya los permisos y las políticas de confianza requeridos por la acción **Amazon S3 publish**. Para obtener más información sobre cómo configurar un entorno con un rol de IAM predeterminado, consulte [Creación de un entorno](deploy-environments-creating-environment.md). Para obtener más información sobre los permisos y las políticas de confianza que requiere la acción **Amazon S3 publish**, consulte la descripción de la propiedad [Role](s3-pub-action-ref.md#s3.pub.environment.connections.role) en la [Acción Amazon S3 publish en YAML](s3-pub-action-ref.md).

```
Name: codecatalyst-s3-publish-workflow
SchemaVersion: 1.0

Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  BuildDocs:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Steps:
        - Run: echo BuildDocs started on `date`
        - Run: pip install --upgrade pip
        - Run: pip install mkdocs
        - Run: mkdocs build
        - Run: echo BuildDocs completed on `date`
    Outputs:
      Artifacts:
      - Name: MyDocsSite
        Files:
          - "site/**/*"
        
  PublishToS3:
    Identifier: aws/s3-publish@v1
    Environment:
      Name: codecatalyst-s3-publish-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-s3-publish-build-role
    Inputs:
      Sources:
        - WorkflowSource
      Artifacts:
        - MyDocsSite
    Configuration:      
      DestinationBucketName: amzn-s3-demo-bucket
      SourcePath: /artifacts/PublishToS3/MyDocSite/site
      TargetPath: my/docs/site
```

# Cómo añadir la acción Amazon S3 publish
<a name="s3-pub-action-add"></a>

 Siga estas instrucciones para añadir la acción **Amazon S3 publish** a su flujo de trabajo. 

------
#### [ Visual ]

**Cómo añadir la acción Amazon S3 publish con el editor visual**

1. [Abra la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busque la acción **Amazon S3 publish** y realice una de las siguientes opciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija **Amazon S3 publish**. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Ver código fuente** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. En las pestañas **Entradas**, **Configuración** y **Salidas**, complete los campos según sus necesidades. Para obtener una descripción de cada uno de los campos, consulte la [Acción Amazon S3 publish en YAML](s3-pub-action-ref.md). Esta referencia proporciona información detallada sobre cada campo (y el valor de la propiedad de YAML correspondiente) tal como aparece en el editor visual y el de YAML.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Cómo añadir la acción Amazon S3 publish con el editor de YAML**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busque la acción **Amazon S3 publish** y realice una de las siguientes opciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija **Amazon S3 publish**. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Ver código fuente** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. Modifique las propiedades del código de YAML en función de sus necesidades. Encontrará una explicación de todas las propiedades disponibles en la [Acción Amazon S3 publish en YAML](s3-pub-action-ref.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Acción Amazon S3 publish en YAML
<a name="s3-pub-action-ref"></a>

La siguiente es la definición en YAML de la acción **Amazon S3 publish**. Para obtener información sobre cómo utilizar esta acción, consulte [Publicación de archivos en Amazon S3 con un flujo de trabajo](s3-pub-action.md).

Esta definición de acción existe como una sección dentro de un archivo de definición de flujo de trabajo más amplio. Para obtener más información acerca de este archivo, consulte [Definición de flujo de trabajo en YAML](workflow-reference.md).

**nota**  
La mayoría de las propiedades de YAML que se muestran a continuación tienen elementos de interfaz de usuario correspondientes en el editor visual. Para buscar un elemento de la interfaz de usuario, use **Ctrl\$1F**. El elemento aparecerá en la lista con su propiedad de YAML asociada.

```
# The workflow definition starts here.
# See Propiedades de nivel superior for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.    
  S3Publish\$1nn: 
    Identifier: aws/s3-publish@v1
    DependsOn:
      - build-action
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Inputs:
      Sources:
        - source-name-1
      Artifacts:
        - artifact-name
      Variables:
        - Name: variable-name-1
          Value: variable-value-1
        - Name: variable-name-2
          Value: variable-value-2
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Configuration:
      SourcePath: my/source
      DestinationBucketName: amzn-s3-demo-bucket
      TargetPath: my/target
```

## S3Publish
<a name="s3.pub.name"></a>

(Obligatorio) 

Especifique el nombre de la acción. Todos los nombres de las acciones deben ser únicos dentro del flujo de trabajo. Los nombres de las acciones están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de las acciones.

Predeterminado: `S3Publish_nn`.

Interfaz de usuario correspondiente: pestaña Configuración/**Nombre de la acción**

## Identifier
<a name="s3.pub.identifier"></a>

(*S3Publish*/**Identifier**)

(Obligatorio) 

Identifica la acción. No cambie esta propiedad a menos que desee cambiar la versión. Para obtener más información, consulte [Especificación de la versión de la acción que se va a utilizar](workflows-action-versions.md).

Predeterminado: `aws/s3-publish@v1`.

Interfaz de usuario correspondiente: diagrama de flujo de trabajo/S3Publish\$1nn/etiqueta **aws/s3-publish@v1**

## DependsOn
<a name="s3.pub.dependson"></a>

(*S3Publish*/**DependsOn**)

(Opcional)

Especifique la acción, el grupo de acciones o la puerta que debe ejecutarse correctamente para que esta acción se ejecute.

Para obtener más información sobre la funcionalidad “depende de”, consulte [Secuenciación de acciones](workflows-depends-on.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Depende de (opcional)**

## Compute
<a name="s3.pub.computename"></a>

(*S3Publish*/**Compute**)

(Opcional)

El motor de computación utilizado para ejecutar las acciones del flujo de trabajo. Puede especificar el motor de computación en el nivel del flujo de trabajo o en el nivel de acción, pero no en ambos. Cuando se especifica en el nivel de flujo de trabajo, la configuración del motor de computación se aplica a todas las acciones definidas en el flujo de trabajo. En el nivel de flujo de trabajo, también puede ejecutar varias acciones en la misma instancia. Para obtener más información, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md).

Interfaz de usuario correspondiente: *ninguna*

## Type
<a name="s3.pub.computetype"></a>

(*S3Publish*/Compute/**Type**)

(Obligatorio si se incluye [Compute](#s3.pub.computename))

El tipo de motor de computación. Puede utilizar uno de los siguientes valores:
+ **EC2**(editor visual) o (editor YAML`EC2`)

  Optimizado para ofrecer flexibilidad durante las ejecuciones de acciones.
+ **Lambda** (editor visual) o `Lambda` (editor de YAML)

  Velocidades de inicio de acciones optimizadas.

Para obtener más información sobre los tipos de computación, consulte [Tipos de computación](workflows-working-compute.md#compute.types).

Interfaz de usuario correspondiente: pestaña Configuración/**Tipo de computación**

## Fleet
<a name="s3.pub.computefleet"></a>

(*S3Publish*/Compute/**Fleet**)

(Opcional)

Especifique la máquina o la flota que ejecutará el flujo de trabajo o las acciones del flujo de trabajo. Con las flotas bajo demanda, cuando se inicia una acción, el flujo de trabajo aprovisiona los recursos que necesita y las máquinas se destruyen cuando finaliza la acción. Ejemplos de flotas bajo demanda: `Linux.x86-64.Large`, `Linux.x86-64.XLarge`. Para obtener más información sobre las flotas bajo demanda, consulte [Propiedades de las flotas bajo demanda](workflows-working-compute.md#compute.on-demand).

Con las flotas aprovisionadas, configura un conjunto de máquinas dedicadas para ejecutar las acciones del flujo de trabajo. Estas máquinas permanecen inactivas, listas para procesar acciones de forma inmediata. Para obtener más información sobre las flotas aprovisionadas, consulte [Propiedades de flotas aprovisionadas](workflows-working-compute.md#compute.provisioned-fleets).

Si `Fleet` se omite, el valor predeterminado es `Linux.x86-64.Large`.

Interfaz de usuario correspondiente: pestaña Configuración/**Flota de computación**

## Timeout
<a name="s3.pub.timeout"></a>

(*S3Publish*/**Timeout**)

(Obligatorio) 

Especifique la cantidad de tiempo en minutos (editor YAML) o en horas y minutos (editor visual) que la acción puede ejecutarse antes de que CodeCatalyst finalice la acción. El mínimo es 5 minutos y el máximo se describe en [Cuotas para flujos de trabajo en CodeCatalyst](workflows-quotas.md). El tiempo de espera predeterminado es el mismo que el tiempo de espera máximo.

Interfaz de usuario correspondiente: pestaña Configuración/**Tiempo de espera (opcional)**

## Inputs
<a name="s3.pub.inputs"></a>

(*S3Publish*/**Inputs**)

(Opcional)

La sección `Inputs` define los datos que necesita la acción `S3Publish` durante la ejecución de un flujo de trabajo.

**nota**  
Se permite un máximo de cuatro entradas (un origen y tres artefactos) en cada acción **AWS CDK deploy**. Las variables no se contabilizan en este total.

Si necesita hacer referencia a archivos que se encuentran en entradas diferentes (por ejemplo, un código fuente y un artefacto), la entrada de código fuente es la entrada principal y el artefacto es la entrada secundaria. Las referencias a los archivos en las entradas secundarias llevan un prefijo especial para distinguirlas de las principales. Para obtener más información, consulte [Ejemplo: Referencia a archivos en varios artefactos](workflows-working-artifacts-ex.md#workflows-working-artifacts-ex-ref-file).

Interfaz de usuario correspondiente: pestaña **Entradas**

## Sources
<a name="s3.pub.inputs.sources"></a>

(*S3Publish*/Inputs/**Sources**)

(Obligatorio si los archivos que quiera publicar en Amazon S3 están almacenados en un repositorio de código fuente)

Si los archivos que quiera publicar en Amazon S3 están almacenados en un repositorio de código fuente, especifique la etiqueta de ese repositorio de código fuente. Actualmente, la única etiqueta admitida es `WorkflowSource`.

Si los archivos que quiera publicar en Amazon S3 no están incluidos en un repositorio de código fuente, deben residir en un artefacto generado por otra acción.

Para obtener más información sobre orígenes, consulte [Conexión de repositorios de código fuente a flujos de trabajo](workflows-sources.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Orígenes (opcional)**

## Artifacts - input
<a name="s3.pub.inputs.artifacts"></a>

(*S3Publish*/Inputs/**Artifacts**)

(Obligatorio si los archivos que quiera publicar en Amazon S3 están almacenados en un [artefacto de salida](workflows-working-artifacts-output.md) de una acción anterior)

Si los archivos que quiera publicar en Amazon S3 están contenidos en un artefacto generado por una acción anterior, especifique ese artefacto aquí. Si los archivos no están incluidos en un artefacto, deben residir en el repositorio de código fuente.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Artefactos (opcional)**

## Variables - input
<a name="s3.pub.inputs.variables"></a>

(*S3Publish*/Inputs/**Variables**)

(Opcional)

Especifique una secuencia de name/value pares que defina las variables de entrada que desea que estén disponibles para la acción. Los nombres de variables están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de variables.

Para obtener más información sobre las variables, incluidos ejemplos, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Variables (opcional)**

## Environment
<a name="s3.pub.environment"></a>

(*S3Publish*/**Environment**)

(Obligatorio) 

Especifique el CodeCatalyst entorno que se va a utilizar con la acción. La acción se conecta a Cuenta de AWS la Amazon VPC opcional especificada en el entorno elegido. La acción utiliza la función de IAM predeterminada especificada en el entorno para conectarse a Cuenta de AWS, y utiliza la función de IAM especificada en la [conexión de Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) para conectarse a la Amazon VPC.

**nota**  
Si el rol de IAM predeterminado no tiene los permisos necesarios para la acción, puede configurarla para que utilice un rol diferente. Para obtener más información, consulte [Cambio del rol de IAM de una acción](deploy-environments-switch-role.md).

Para obtener más información sobre los entornos, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md) y [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Name
<a name="s3.pub.environment.name"></a>

(*S3Publish*/Environment/**Name**)

(Obligatorio si se incluye [Environment](#s3.pub.environment))

Especifique el nombre del entorno existente que desea asociar a la acción.

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Connections
<a name="s3.pub.environment.connections"></a>

(*S3Publish*/Environment/**Connections**)

(Opcional en las versiones más recientes de la acción; obligatorio en las versiones más antiguas)

Especifique la conexión de cuenta que desee asociar a la acción. Puede especificar un máximo de una conexión de cuenta en `Environment`.

Si no especifica una conexión de cuenta:
+ La acción utiliza la Cuenta de AWS conexión y la función de IAM predeterminada especificadas en el entorno de la consola. CodeCatalyst Para obtener información sobre cómo añadir una conexión de cuenta y un rol de IAM predeterminado al entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).
+ El rol de IAM predeterminado debe incluir las políticas y los permisos que requiere la acción. Para determinar cuáles son esas políticas y permisos, consulte la descripción de la propiedad **Role** en la documentación de la definición de YAML de la acción.

Para obtener más información sobre las conexiones de cuenta, consulte [Permitir el acceso a AWS los recursos con conexión Cuentas de AWS](ipa-connect-account.md). Para obtener más información sobre cómo añadir una conexión de cuenta a un entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿tab/Environment/WhatLa configuración está lista? *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ conexión de cuenta Environment/account/role AWS **

## Name
<a name="s3.pub.environment.connections.name"></a>

(*S3Publish*/Environment/Connections/**Name**)

(Obligatorio si se incluye [Connections](#s3.pub.environment.connections))

Especifique el nombre de la conexión de cuenta.

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿La configuración está lista? tab/Environment/What *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ conexión de cuenta Environment/account/role AWS **

## Role
<a name="s3.pub.environment.connections.role"></a>

(*S3Publish*/Environment/Connections/**Role**)

(Obligatorio si se incluye [Connections](#s3.pub.environment.connections))

Especifique el nombre de la función de IAM que la acción de **publicación de Amazon S3** utiliza para acceder a los archivos de Amazon S3 AWS y copiarlos. Asegúrese de haber [agregado el rol a su CodeCatalyst espacio](ipa-connect-account-addroles.md) y de que el rol incluya las siguientes políticas.

Si no especifica un rol de IAM, la acción utilizará el rol de IAM predeterminado que aparece en el [entorno](deploy-environments.md) de la consola. CodeCatalyst Si usa el rol predeterminado en el entorno, asegúrese de que tenga las siguientes políticas.
+ La siguiente política de permisos:
**aviso**  
Limite los permisos a los que se muestran en la siguiente política. El uso de un rol con permisos más amplios puede suponer un riesgo de seguridad.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "VisualEditor0",
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject",
                  "s3:ListBucket",
                  "s3:DeleteObject"
              ],
              "Resource": [
                  "arn:aws:s3:::bucket-name",
                  "arn:aws:s3:::bucket-name/*"
              ]
          }
      ]
  }
  ```

------
+ La siguiente política de confianza personalizada:

**nota**  
Puede usar el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` con esta acción, si así lo desea. Para obtener más información acerca de este rol, consulte [Creación del rol **CodeCatalystWorkflowDevelopmentRole-*spaceName*** para su cuenta y su espacio](ipa-iam-roles.md#ipa-iam-roles-service-create). Tenga en cuenta que el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` tiene permisos de acceso total, lo que puede suponer un riesgo para la seguridad. Le recomendamos que utilice este rol solo en tutoriales y situaciones en las que la seguridad no sea un problema. 

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿tab/Environment/WhatLa configuración está lista? *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ Rol Environment/account/role**

## Configuration
<a name="s3.pub.configuration"></a>

(*S3Publish*/**Configuration**)

(Obligatorio) 

Una sección en la que puede definir las propiedades de configuración de la acción.

Interfaz de usuario correspondiente: pestaña **Configuración**

## SourcePath
<a name="s3.pub.source.directory"></a>

(*S3Publish*/Configuration/**SourcePath**)

(Obligatorio) 

Especifique el nombre y la ruta del directorio o archivo que quiera publicar en Amazon S3. El directorio o archivo puede residir en un repositorio de código fuente o en un artefacto de una acción anterior y son relativas a la raíz del repositorio de código fuente o del artefacto.

Ejemplos:

La especificación de `./myFolder/` copia el contenido de `/myFolder` en Amazon S3 y conserva la estructura de directorios subyacente.

La especificación de `./myFolder/myfile.txt` copia *únicamente *`myfile.txt` en Amazon S3. (Se elimina la estructura de directorios).

No puede utilizar caracteres comodín.

**nota**  
Puede que tenga que añadir un prefijo al directorio o ruta del archivo para indicar en qué artefacto u origen debe encontrarlo. Para obtener más información, consulte [Referencia a los archivos del repositorio de código fuente](workflows-sources-reference-files.md) y [Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Ruta de origen**

## DestinationBucketName
<a name="s3.pub.dest.bucket"></a>

(*S3Publish*/Configuration/**DestinationBucketName**)

(Obligatorio) 

Especifique el nombre del bucket de Amazon S3 donde quiera publicar los archivos.

Interfaz de usuario correspondiente: pestaña Configuración/**Bucket de destino (opcional)**

## TargetPath
<a name="s3.pub.dest.directory"></a>

(*S3Publish*/Configuration/**TargetPath**)

(Opcional)

Especifique el nombre y la ruta del directorio de Amazon S3 donde quiera publicar los archivos. Si el directorio no existe, se creará. La ruta del directorio no debe incluir el nombre del bucket.

Ejemplos:

`myS3Folder`

`./myS3Folder/myS3Subfolder`

Interfaz de usuario correspondiente: pestaña Configuración/**Directorio de destino (opcional)**

# Implementación en Cuentas de AWS y VPCs
<a name="deploy-environments"></a>

Con [CodeCatalyst los flujos de trabajo](workflow.md), puedes implementar aplicaciones y otros recursos para segmentar Cuenta de AWS s y Amazon VPCs en la AWS nube. Para habilitar estas implementaciones, debe configurar los CodeCatalyst entornos.

Un CodeCatalyst *entorno*, que no debe confundirse con un [entorno de desarrollo](https://docs.aws.amazon.com/codecatalyst/latest/userguide/devenvironment.html), define la Amazon VPC de destino Cuenta de AWS y opcional a la que se conecta un CodeCatalyst [flujo de trabajo](workflow.md). Un entorno también define la [función de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que necesita un flujo de trabajo para acceder a los AWS servicios y recursos de la cuenta de destino.

Puede configurar varios entornos y asignarles nombres, como desarrollo, pruebas, almacenamiento provisional y producción. Al realizar un despliegue en estos entornos, la información sobre los despliegues aparece en las pestañas **Actividad de CodeCatalyst despliegue** y **Objetivos de despliegue** del entorno.

## ¿Cómo empiezo a utilizar los entornos?
<a name="deploy-environments-get-started"></a>

Los pasos generales para agregar y usar un CodeCatalyst entorno son los siguientes:

1. En tu CodeCatalyst espacio, **conecta una o más AWS cuentas**. Durante este proceso, añada los roles de IAM que requiere su flujo de trabajo para acceder a los recursos de la Cuenta de AWS. Para obtener más información, consulte [Permitir el acceso a AWS los recursos con conexión Cuentas de AWS](ipa-connect-account.md).

1. En su CodeCatalyst proyecto, **cree un entorno** que incluya una de las funciones de Cuenta de AWS s e IAM del paso 1. Para obtener más información, consulte [Creación de un entorno](deploy-environments-creating-environment.md).

1. En tu CodeCatalyst proyecto, en un flujo de trabajo, **añade una [acción](workflows-actions.md) que apunte al entorno** que creaste en el paso 2. Para obtener más información, consulte [Cómo añadir una acción a un flujo de trabajo](workflows-add-action.md).

   Ahora ha configurado un entorno. La acción ahora puede implementar recursos en la Cuenta de AWS especificada en el entorno.

**nota**  
También puede añadir una Amazon VPC al entorno. Para obtener más información, consulte [Agregar conexiones de VPC para un espacio](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) en la *Guía de CodeCatalyst administración* y. [Asociación de una VPC a un entorno](deploy-environments-associate-vpc.md)

## ¿Puede haber varios entornos dentro de un único flujo de trabajo?
<a name="deploy-environments-multiple"></a>

Sí. Si un flujo de trabajo incluye varias acciones, a cada una de ellas se le puede asignar un entorno. Por ejemplo, puede tener un flujo de trabajo que incluya dos acciones de implementación: una asignada a un entorno de `my-staging-enviroment` y otra asignada a un entorno de `my-production-environment`.

## ¿Qué acciones de flujo de trabajo admiten entornos?
<a name="deploy-environments-supported"></a>

Cualquier acción de flujo de trabajo que despliegue recursos en la AWS nube o se comunique con AWS los servicios por otros motivos (como la supervisión y la generación de informes) es compatible con los entornos.

## ¿Qué acciones permiten que se muestre la información de implementación? CodeCatalyst
<a name="deploy-environments-supported-targets"></a>

De las acciones de flujo de trabajo compatibles con los entornos, solo unas pocas permiten que su información de despliegue aparezca en las páginas de **actividad** de **despliegue y objetivos** del despliegue de la CodeCatalyst consola.

Las siguientes acciones del flujo de trabajo permiten que se muestre su información de implementación:
+ Pila ** CloudFormation de implementación**: para obtener más información, consulte [Implementación de una CloudFormation pila](deploy-action-cfn.md)
+ **Implementar en Amazon ECS**: para obtener más información, consulte [Implementación en Amazon ECS con un flujo de trabajo](deploy-action-ecs.md)
+ **Implementar el clúster de Kubernetes**: para obtener más información, consulte [Implementación en Amazon EKS con un flujo de trabajo](deploy-action-eks.md)
+ **AWS CDK implementar**: para obtener más información, consulte [Implementación de una AWS CDK aplicación con un flujo de trabajo](cdk-dep-action.md)

## Regiones admitidas
<a name="deploy-environments-supported-regions"></a>

La página **Entornos** puede mostrar los recursos de cualquier región de AWS .

## ¿Es obligatorio disponer de un entorno?
<a name="deploy-environments-optional-or-mandatory"></a>

Un entorno es obligatorio si la acción de flujo de trabajo a la que se le asigna despliega recursos en la AWS nube o se comunica con AWS los servicios por otros motivos (como la supervisión y la generación de informes).

Por ejemplo, si tiene una acción de compilación que crea una aplicación pero no necesita comunicarse con su VPC Cuenta de AWS o con Amazon VPC, no necesita asignar un entorno a la acción. Sin embargo, si la acción de compilación envía registros al CloudWatch servicio de Amazon que tengas Cuenta de AWS, la acción debe tener un entorno asignado. 

**Topics**
+ [

## ¿Cómo empiezo a utilizar los entornos?
](#deploy-environments-get-started)
+ [

## ¿Puede haber varios entornos dentro de un único flujo de trabajo?
](#deploy-environments-multiple)
+ [

## ¿Qué acciones de flujo de trabajo admiten entornos?
](#deploy-environments-supported)
+ [

## ¿Qué acciones permiten que se muestre la información de implementación? CodeCatalyst
](#deploy-environments-supported-targets)
+ [

## Regiones admitidas
](#deploy-environments-supported-regions)
+ [

## ¿Es obligatorio disponer de un entorno?
](#deploy-environments-optional-or-mandatory)
+ [

# Creación de un entorno
](deploy-environments-creating-environment.md)
+ [

# Asociación de un entorno a una acción
](deploy-environments-add-app-to-environment.md)
+ [

# Asociación de una VPC a un entorno
](deploy-environments-associate-vpc.md)
+ [

# Asociar un hombre Cuenta de AWS con un entorno
](deploy-environments-associate-account.md)
+ [

# Cambio del rol de IAM de una acción
](deploy-environments-switch-role.md)

# Creación de un entorno
<a name="deploy-environments-creating-environment"></a>

Siga estas instrucciones para crear un entorno que pueda asociar posteriormente a una acción de flujo de trabajo.

**Antes de empezar**

Necesitará lo siguiente:
+ Un CodeCatalyst espacio. Para obtener más información, consulte [Configuración e inicio de sesión en CodeCatalystConfiguración e inicio de sesión en CodeCatalyst](setting-up-topnode.md).
+ Un CodeCatalyst proyecto. Para obtener más información, consulte [Creación de un proyecto con un esquema](projects-create.md#projects-create-console-template).
+ Una conexión de AWS cuenta que incluye las funciones de IAM a las que necesitará acceder AWS tu acción de flujo de trabajo. Para obtener más información sobre la creación de una conexión de cuenta, consulte [Permitir el acceso a AWS los recursos con conexión Cuentas de AWS](ipa-connect-account.md). Puede utilizar como máximo una conexión de cuenta por entorno.
**nota**  
Puede crear un entorno sin una conexión de cuenta; sin embargo, tendrá que volver y añadir la conexión más adelante.
+ Uno de los siguientes CodeCatalyst roles:
  + **Administrador del espacio**
  + **Administrador del proyecto**
  + **Colaborador**
**nota**  
Si tiene el **rol Colaborador**, podrá crear un entorno, pero no podrá asociarlo a una conexión de Cuenta de AWS . Deberás pedirle a alguien con el rol de **administrador del espacio** o **administrador del proyecto** que asocie el entorno a una Cuenta de AWS conexión.

   Para obtener más información acerca de los permisos y roles, consulte [Concesión de permisos de proyecto a los usuarios](projects-members.md).

**Creación de un entorno**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Entornos**.

1. En **Nombre del entorno**, introduzca un nombre, como **Production** o **Staging**.

1. En **Tipo de entorno**, seleccione una de las siguientes opciones:
   + **No producción**: un entorno en el que puede probar la aplicación para asegurarse de que funcione según lo previsto antes de moverla a producción.
   + **Producción**: un entorno “en vivo” que está disponible públicamente y que aloja la aplicación finalizada.

     Si elige **Producción**, aparecerá el distintivo **Producción** en la interfaz de usuario junto a cualquier acción a la que esté asociado el entorno. El distintivo le ayuda a saber rápidamente qué acciones se están implementando en producción. Aparte de la apariencia del distintivo, no hay diferencias entre los entornos de producción y los que no son de producción.

1. (Opcional) En **Descripción**, escriba una descripción, como **Production environment for the hello-world app**.

1. En **Cuenta de AWS Conexión (opcional)**, elija la conexión de AWS cuenta que desee asociar a este entorno. Las acciones del flujo de trabajo que estén asignadas al entorno podrán conectarse a la Cuenta de AWS asociada. Para obtener más información sobre la creación de Cuenta de AWS conexiones en CodeCatalyst, consulte[Permitir el acceso a AWS los recursos con conexión Cuentas de AWS](ipa-connect-account.md).

   Si la Cuenta de AWS conexión que desea usar no aparece en la lista, es posible que se deba a que no está permitida en su proyecto. Para obtener más información, consulte [Configuración de conexiones de cuentas restringidas por proyectos](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html) en la Guía * CodeCatalyst del administrador de Amazon*.

1. En **Rol de IAM predeterminado**, elija el rol de IAM que desea asociar a este entorno. Las acciones de flujo de trabajo a las que se asigne este entorno heredarán esta función de IAM y podrán utilizarla para conectarse a los servicios y recursos de su entorno. Cuenta de AWS

   Si necesita asignar el entorno a varias acciones y esas acciones requieren roles de IAM distintos de los que se especifican aquí de forma predeterminada, puede especificar los distintos roles en la pestaña **Configuración** de cada acción mediante la opción **Cambiar rol**. Para obtener más información, consulte [Cambio del rol de IAM de una acción](deploy-environments-switch-role.md).

   Si la función de IAM que desea usar como predeterminada no aparece en la lista, es posible que se deba a que aún no la ha agregado a su Cuenta de AWS conexión. Para añadir un rol de IAM a una conexión de cuenta, consulte [Adición de roles de IAM a las conexiones de cuentas](ipa-connect-account-addroles.md).

1. (Opcional) En **Conexión de VPC**, elija la conexión de VPC que desee asociar a este entorno. Para obtener más información sobre la creación de conexiones de VPC, consulte Gestión de [Amazon Virtual Private Clouds](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.html) en la Guía * CodeCatalyst del administrador de Amazon*.

   Si la conexión de VPC que quieres usar no aparece en la lista, puede que se deba a que incluye una Cuenta de AWS conexión que no está permitida en tu proyecto. Para obtener más información, consulte [Configuración de conexiones de cuentas restringidas por proyectos](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html) en la Guía * CodeCatalyst del administrador de Amazon*.

1. Seleccione **Crear** entorno. CodeCatalyst crea un entorno vacío.

**Siguientes pasos**
+ Ahora que ha creado un entorno, puede asociarlo a una acción del flujo de trabajo. Para obtener más información, consulte [Asociación de un entorno a una acción](deploy-environments-add-app-to-environment.md).

# Asociación de un entorno a una acción
<a name="deploy-environments-add-app-to-environment"></a>

Al asociar un entorno a una [acción de flujo de trabajo compatible](deploy-environments.md#deploy-environments-supported), el entorno Cuenta de AWS, la función de IAM predeterminada y la Amazon VPC opcional se asignan a la acción. A continuación, la acción puede conectarse e implementarse en la Cuenta de AWS con el rol de IAM y también conectarse a Amazon VPC opcional.

Siga estas instrucciones para asociar un entorno a una acción.

## Paso 1: asociación del entorno a una acción de flujo de trabajo
<a name="deploy-environments-add-app-to-environment-assoc"></a>

Utilice el siguiente procedimiento para asociar un entorno a una acción de flujo de trabajo.

------
#### [ Visual ]

**Asociación de un entorno a una acción de flujo de trabajo mediante el editor visual**

1. [Abra la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, elija una acción que sea compatible con los entornos. Para obtener más información, consulte [¿Qué acciones permiten que se muestre la información de implementación? CodeCatalyst](deploy-environments.md#deploy-environments-supported-targets).

1. Seleccione la pestaña **Configuración** y especifique la información en el campo **Entorno**, de la siguiente manera.

   **Entorno**

   Especifique el CodeCatalyst entorno que se va a utilizar con la acción. La acción se conecta a Cuenta de AWS la Amazon VPC opcional especificada en el entorno elegido. La acción utiliza la función de IAM predeterminada especificada en el entorno para conectarse a Cuenta de AWS, y utiliza la función de IAM especificada en la [conexión de Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) para conectarse a la Amazon VPC.
**nota**  
Si el rol de IAM predeterminado no tiene los permisos necesarios para la acción, puede configurarla para que utilice un rol diferente. Para obtener más información, consulte [Cambio del rol de IAM de una acción](deploy-environments-switch-role.md).

   Para obtener más información sobre los entornos, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md) y [Creación de un entorno](deploy-environments-creating-environment.md).

1. (Opcional) Cambie el rol de IAM asociado a la acción. Es posible que desee cambiar el rol si contiene un conjunto de permisos incorrecto para la acción.

    Para cambiar el rol:

   1. **En la sección ¿Qué hay de nuevo? *my-environment*** y selecciona el icono de puntos suspensivos verticales (![\[Ellipsis.\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/images/flows/elipsis.png)).

   1. Seleccione una de las siguientes opciones:
      +  **Cambiar el rol**. Seleccione esta opción para cambiar el rol de IAM utilizado por esta acción y solo por esta acción. Otras acciones seguirán utilizando el rol de IAM predeterminado especificado en su entorno asociado. Para obtener más información, consulte [Cambio del rol de IAM de una acción](deploy-environments-switch-role.md).
      +  **Editar entorno**. Seleccione esta opción para cambiar el rol de IAM predeterminado que se muestra en el entorno. Si elige esta opción, la acción (y cualquier otra acción asociada al mismo entorno) comienza a utilizar el nuevo rol de IAM predeterminado.
**importante**  
Tenga cuidado al actualizar el rol de IAM predeterminado. Si los permisos del rol no son suficientes para todas las acciones que comparten el entorno, es posible que se produzcan errores en las acciones.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Asociación de un entorno a una acción de flujo de trabajo mediante el editor de YAML**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la acción de flujo de trabajo que desea asociar a un entorno, añada un código similar al siguiente:

   ```
   action-name:
     Environment:
       Name: environment-name
   ```

   Para obtener más información, consulte el tema [Tipos de acción](workflows-actions.md#workflows-actions-types). Este tema contiene enlaces a la documentación de cada acción, incluida su referencia de YAML.

1. (Opcional) Si desea que la acción utilice un rol diferente del rol de IAM predeterminado que aparece en el entorno, añada una sección `Connections:` que incluya el rol que quiere usar. Para obtener más información, consulte [Cambio del rol de IAM de una acción](deploy-environments-switch-role.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

## Paso 2: cumplimentación de la página de actividades de implementación
<a name="deploy-environments-add-app-to-environment-run"></a>

Tras asociar un entorno a una acción de flujo de trabajo, puede rellenar las páginas **Actividad de despliegue** y **Destino del despliegue** en la sección **Entornos** de la CodeCatalyst consola con información sobre el despliegue. Siga estas instrucciones para rellenar estas páginas.

**nota**  
Solo unas pocas acciones permiten que su información de despliegue se muestre en la CodeCatalyst consola. Para obtener más información, consulte [¿Qué acciones permiten que se muestre la información de implementación? CodeCatalyst](deploy-environments.md#deploy-environments-supported-targets).

**Para añadir información de despliegue a CodeCatalyst**

1. Si la ejecución de un flujo de trabajo no se inició automáticamente cuando realizó los cambios en [Paso 1: asociación del entorno a una acción de flujo de trabajo](#deploy-environments-add-app-to-environment-assoc), inicie una ejecución manualmente de la siguiente manera:

   1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

   1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

   1. Seleccione **Ejecutar**.

   La ejecución del flujo de trabajo inicia una nueva implementación, lo que hace CodeCatalyst que se agregue información de implementación a CodeCatalyst.

1. Compruebe que la actividad de despliegue se haya agregado a la CodeCatalyst consola:

   1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Entornos**.

   1. Elija su entorno (por ejemplo, `Production`).

   1. Seleccione la pestaña **Actividad de implementación** y compruebe que aparezca una implementación con el **estado** **CORRECTO**. Esto indica que un flujo de trabajo ejecutado implementó correctamente los recursos de la aplicación.

   1. Seleccione la pestaña **Destinos de implementación** y compruebe que aparecen los recursos de la aplicación.

# Asociación de una VPC a un entorno
<a name="deploy-environments-associate-vpc"></a>

Cuando se configura una acción con un entorno que tiene una conexión de VPC, la acción se ejecutará conectada a la VPC, respetando las reglas de red y los recursos de acceso especificados por la VPC asociada. Uno o varios entornos pueden utilizar la misma conexión de VPC.

Siga estas instrucciones para asociar una conexión de VPC a un entorno.

**Asociación de una conexión de VPC a un entorno**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Entornos**.

1. Elija su entorno (por ejemplo, `Production`).

1. Elija la pestaña de **Propiedades del entorno**.

1. Elija **Administrar la conexión de VPC**, elija la conexión de VPC que desee y elija **Confirmar**. Esto asocia la conexión de VPC seleccionada a este entorno.
**nota**  
Si la conexión de VPC que quieres usar no aparece en la lista, puede que se deba a que incluye una Cuenta de AWS conexión que no está permitida en tu proyecto. Para obtener más información, consulte [Configuración de conexiones de cuentas restringidas por proyectos](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html) en la Guía * CodeCatalystdel administrador de Amazon*.

Para obtener más información, consulte [Gestión de Amazon Virtual Private Clouds](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.html) en la *Guía CodeCatalyst del administrador*.

# Asociar un hombre Cuenta de AWS con un entorno
<a name="deploy-environments-associate-account"></a>

Utilice las siguientes instrucciones para Cuenta de AWS asociar y a un entorno. Al Cuenta de AWS asociar un a un entorno, las acciones del flujo de trabajo que estén asignadas al entorno podrán conectarse al Cuenta de AWS.

Para obtener más información sobre las conexiones de cuenta, consulte [Permitir el acceso a AWS los recursos con conexión Cuentas de AWS](ipa-connect-account.md).

**Antes de empezar**

Necesitará lo siguiente:
+ Una conexión de AWS cuenta que incluya las funciones de IAM a las que necesitará acceder AWS tu acción de flujo de trabajo. Para obtener más información sobre la creación de una conexión de cuenta, consulte [Permitir el acceso a AWS los recursos con conexión Cuentas de AWS](ipa-connect-account.md). Puede utilizar como máximo una conexión de cuenta por entorno.
+ Uno de los siguientes CodeCatalyst roles: **administrador del espacio o administrador** **del proyecto**. Para obtener más información, consulte [Concesión de permisos de proyecto a los usuarios](projects-members.md).

**Para asociar y Cuenta de AWS a un entorno**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Entornos**.

1. Elija su entorno (por ejemplo, `Production`).

1. Elija **Editar entorno**.

1. En **Propiedades del entorno**, en la lista desplegable **Cuenta de AWS conexión (opcional)**, elija la Cuenta de AWS que desee.

   Si la Cuenta de AWS conexión que quieres usar no aparece en la lista, puede que se deba a que no está permitida en tu proyecto. Para obtener más información, consulte [Configuración de conexiones de cuentas restringidas por proyectos](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html) en la Guía * CodeCatalyst del administrador de Amazon*.

1. En **Rol de IAM predeterminado**, elija el rol de IAM que desea asociar a este entorno. Las acciones de flujo de trabajo a las que se asigne este entorno heredarán esta función de IAM y podrán utilizarla para conectarse a los servicios y recursos de su entorno. Cuenta de AWS

   Si la función de IAM que desea usar como predeterminada no aparece en la lista, es posible que se deba a que aún no la ha agregado a su Cuenta de AWS conexión. Para añadir un rol de IAM a una conexión de cuenta, consulte [Adición de roles de IAM a las conexiones de cuentas](ipa-connect-account-addroles.md).

# Cambio del rol de IAM de una acción
<a name="deploy-environments-switch-role"></a>

De forma predeterminada, al asociar un [entorno](deploy-environments.md) a una acción de flujo de trabajo, la [acción](workflows-actions.md) hereda el rol de IAM predeterminado especificado en el entorno. Puede cambiar este comportamiento para que la acción utilice un rol diferente. Es posible que desee que una acción utilice un rol diferente si al rol de IAM predeterminado le faltan los permisos que la acción necesita para funcionar en la nube de AWS .

Para asignar un rol de IAM diferente a una acción, puede usar la opción **Cambiar rol** en el editor visual o la propiedad `Connections:` en el editor de YAML. El nuevo rol invalida el rol de IAM predeterminado especificado en el entorno, lo que le permite mantener el rol de IAM predeterminado tal como está. Es posible que desee mantener el rol de IAM predeterminado tal como está si hay otras acciones que lo utilizan.

Siga estas instrucciones para configurar una acción que utilice un rol de IAM diferente del especificado en su entorno.

------
#### [ Visual ]

**Asignación de un rol de IAM diferente a una acción (editor visual)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Seleccione la casilla que representa la acción cuyo rol de IAM desea actualizar.

1. Elija la pestaña **Configuración**.

1. En la **sección ¿Qué hay*my-environment*?** selecciona el icono de puntos suspensivos verticales (![\[Ellipsis.\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/images/flows/elipsis.png)).

1. Elija **Cambiar rol**.

1. En el cuadro de diálogo **Cambiar rol**, en la lista desplegable **Rol de IAM**, elija el rol de IAM que desee que utilice la acción. Este rol invalidará el rol de IAM predeterminado del entorno. Si el rol que quiere usar no está en la lista, asegúrese de haberlo añadido a su espacio. Para obtener más información, consulte [Adición de roles de IAM a las conexiones de cuentas](ipa-connect-account-addroles.md).

   El rol elegido aparece ahora en la sección **¿Qué hay? *my-environment*** cuadro junto con la insignia **Definido en el flujo de trabajo**. El rol también aparece en el archivo de definición del flujo de trabajo, en la sección `Connections:`.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Asignación de un rol de IAM diferente a una acción (editor de YAML)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la acción del flujo de trabajo en la que desee utilizar un rol de IAM diferente, añada una sección `Connections:` similar a la siguiente:

   ```
   action-name:
     Environment:
       Name: environment-name
       Connections: 
         - Name: account-connection-name
           Role: iam-role-name
   ```

   En el código anterior, *account-connection-name* sustitúyalo por el nombre de la [conexión de cuenta](ipa-connect-account.md) que contiene el rol de IAM y *iam-role-name* sustitúyelo por el nombre del rol de IAM que quieres que utilice la acción. Este rol invalidará el rol de IAM predeterminado del entorno. Asegúrese de haber añadido el rol a su espacio. Para obtener más información, consulte [Adición de roles de IAM a las conexiones de cuentas](ipa-connect-account-addroles.md).

   Para obtener más información, consulte el tema [Tipos de acción](workflows-actions.md#workflows-actions-types). Este tema contiene enlaces a la documentación de cada acción, incluida su referencia de YAML.

------

# Visualización de la URL de la aplicación en el diagrama de flujo de trabajo
<a name="deploy-app-url"></a>

Si tu flujo de trabajo implementa una aplicación, puedes configurar Amazon CodeCatalyst para que muestre la URL de la aplicación como un enlace en el que se puede hacer clic. Este enlace aparece en la CodeCatalyst consola, dentro de la acción que lo implementó. En el siguiente diagrama de flujo de trabajo se muestra la URL de **Ver aplicación** que aparece en la parte inferior de una acción.

![\[Visualización de la URL de la aplicación\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/images/deploy/view-app-url.png)


Al hacer clic en esta URL en la CodeCatalyst consola, puede verificar rápidamente la implementación de la aplicación.

**nota**  
La URL de la aplicación no se admite con la acción **Implementar en Amazon ECS**.

Para habilitar esta característica, añada una variable de salida a la acción con un nombre que contenga `appurl` o `endpointurl`. Puede usar un nombre con o sin un guion (`-`), un guión bajo (`_`) o un espacio (` `) que lo unan. La cadena no distingue entre mayúsculas y minúsculas. Establezca el valor de la variable en la URL `http` o `https` de la aplicación implementada.

**nota**  
Si está actualizando una variable de salida existente para incluir la cadena `app url` o `endpoint url`, actualice todas las referencias a esta variable para usar el nombre de la nueva variable.

Para ver los pasos detallados, consulte uno de los siguientes procedimientos:
+ [Para mostrar la URL de la aplicación en la acción «AWS CDK implementar»](#deploy-app-url-cdk)
+ [Para mostrar la URL de la aplicación en la acción «Implementar CloudFormation pila»](#deploy-app-url-cfn)
+ [Visualización de la URL de la aplicación en todas las demás acciones](#deploy-app-url-other)

Cuando haya terminado de configurar la URL, compruebe que aparece como se espera siguiendo estas instrucciones:
+ [Comprobación de que se añadió la URL de la aplicación](#deploy-app-url-verify)<a name="deploy-app-url-cdk"></a>

**Para mostrar la URL de la aplicación en la acción «AWS CDK implementar»**

1. Si utilizas la acción de **AWS CDK despliegue**, añade una `CfnOutput` construcción (que es un par clave-valor) en el código de tu AWS CDK aplicación:
   + El nombre de la clave debe contener `appurl` o `endpointurl`, con o sin un guion (`-`), un guión bajo (`_`) o un espacio (` `). La cadena no distingue entre mayúsculas y minúsculas.
   + El valor debe ser la URL `http` o `https` de la aplicación implementada.

   Por ejemplo, el AWS CDK código podría tener este aspecto:

   ```
   import { Duration, Stack, StackProps, CfnOutput, RemovalPolicy} from 'aws-cdk-lib';
   import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
   import * as s3 from 'aws-cdk-lib/aws-s3';
   import { Construct } from 'constructs';
   import * as cdk from 'aws-cdk-lib';
   export class HelloCdkStack extends Stack {
     constructor(scope: Construct, id: string, props?: StackProps) {
       super(scope, id, props);
       const bucket = new s3.Bucket(this, 'amzn-s3-demo-bucket', {
         removalPolicy: RemovalPolicy.DESTROY,
       });
       new CfnOutput(this, 'APP-URL', {
         value: https://mycompany.myapp.com,
         description: 'The URL of the deployed application',
         exportName: 'myApp',
       });
       ...
     }
   }
   ```

   Para obtener más información sobre la `CfnOutput` construcción, consulta la [interfaz CfnOutputProps](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnOutputProps.html) en la *referencia de la AWS Cloud Development Kit (AWS CDK) API*.

1. Guarde y confirme el código.

1. Continúe en [Comprobación de que se añadió la URL de la aplicación](#deploy-app-url-verify).<a name="deploy-app-url-cfn"></a>

**Para mostrar la URL de la aplicación en la acción «Implementar CloudFormation pila»**

1. Si utilizas la acción **Implementar CloudFormation pila**, añade un resultado a la `Outputs` sección de tu CloudFormation plantilla o AWS SAM plantilla con estas características:
   + La clave (llamada también ID lógico) debe contener `appurl` o `endpointurl`, con o sin un guion (`-`), un guión bajo (`_`) o un espacio (` `). La cadena no distingue entre mayúsculas y minúsculas.
   + El valor debe ser la URL `http` o `https` de la aplicación implementada.

   Por ejemplo, la CloudFormation plantilla podría tener este aspecto:

   ```
   "Outputs" : {
     "APP-URL" : {
       "Description" : "The URL of the deployed app",
       "Value" : "https://mycompany.myapp.com",
       "Export" : {
         "Name" : "My App"
       }
     }
   }
   ```

   Para obtener más información sobre CloudFormation las salidas, consulte [las salidas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html) en la *Guía del AWS CloudFormation usuario*.

1. Guarde y confirme el código.

1. Continúe en [Comprobación de que se añadió la URL de la aplicación](#deploy-app-url-verify).<a name="deploy-app-url-other"></a>

**Visualización de la URL de la aplicación en todas las demás acciones**

Si utilizas otra acción para implementar la aplicación, como la acción de creación o **GitHub las acciones**, haz lo siguiente para que se muestre la URL de la aplicación.

1. Defina una variable de entorno en la sección `Inputs` o `Steps` de la acción en el archivo de definición del flujo de trabajo. La entrada debe tener las características siguientes:
   + El `name` debe contener `appurl` o `endpointurl`, con o sin un guion (`-`), un guión bajo (`_`) o un espacio (` `). La cadena no distingue entre mayúsculas y minúsculas.
   + El valor debe ser la URL `http` o `https` de la aplicación implementada.

   Por ejemplo, una acción de compilación podría tener el siguiente aspecto:

   ```
   Build-action:
     Identifier: aws/build@v1
     Inputs:
       Variables:
         - Name: APP-URL
           Value: https://mycompany.myapp.com
   ```

   O este:

   ```
   Actions:
     Build:
       Identifier: aws/build@v1
       Configuration:    
         Steps:
           - Run: APP-URL=https://mycompany.myapp.com
   ```

   Para obtener más información sobre cómo definir variables de entorno, consulte [Definición de una variable](workflows-working-with-variables-define-input.md).

1. Exporte la variable.

   Por ejemplo, la acción de compilación podría tener el siguiente aspecto:

   ```
   Build-action:
     ...
     Outputs:
       Variables:
         - APP-URL
   ```

   Para obtener más información sobre cómo exportar variables, consulte [Exportación de una variable para que otras acciones puedan utilizarla](workflows-working-with-variables-export-input.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

1. Continúe en [Comprobación de que se añadió la URL de la aplicación](#deploy-app-url-verify).<a name="deploy-app-url-verify"></a>

**Comprobación de que se añadió la URL de la aplicación**
+ Inicie una ejecución de flujo de trabajo, si no se ha iniciado automáticamente. La nueva ejecución debe mostrar la URL de la aplicación como un enlace en el que se pueda hacer clic en el diagrama de flujo de trabajo. Para obtener más información sobre cómo iniciar ejecuciones, consulte [Inicio manual de la ejecución de un flujo de trabajo](workflows-manually-start.md). 

# Eliminación de un destino de implementación
<a name="deploy-remove-target"></a>

Puede eliminar un objetivo de despliegue, como un clúster o CloudFormation pila de Amazon ECS, de la página de **objetivos de despliegue** de la CodeCatalyst consola.

**importante**  
Al eliminar un objetivo de despliegue, se elimina de la CodeCatalyst consola, pero permanece disponible en el AWS servicio que lo aloja (si aún existe).

Considere la posibilidad de eliminar un objetivo de despliegue si el objetivo se ha quedado obsoleto. CodeCatalyst Los destinos de implementación pueden quedarse obsoletos si:
+ Ha eliminado el flujo de trabajo que se implementó en el destino.
+ Ha cambiado la pila o el clúster en el que se realiza la implementación. 
+ Eliminó la pila o el clúster del CloudFormation servicio Amazon ECS de la AWS consola.

**Eliminación de un destino de implementación**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Entornos**.

1. Elija el nombre del entorno que contiene el destino de implementación que desea eliminar. Para obtener más información sobre los entornos, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md).

1. Elija la pestaña **Destinos de implementación**.

1. Seleccione el botón de opción situado junto al destino de implementación que desea quitar.

1. Elija **Eliminar **.

   El destino se elimina de la página.

# Seguimiento del estado de la implementación por confirmación
<a name="track-changes"></a>

En cualquier momento del ciclo de vida del desarrollo, es importante conocer el estado de implementación de determinadas confirmaciones, como las correcciones de errores, las nuevas características u otros cambios importantes. Tenga en cuenta los siguientes escenarios en los que la capacidad de seguimiento del estado de la implementación resulta útil para los equipos de desarrollo:
+ Como desarrollador, ha realizado una corrección para solventar un error y quiere informar del estado de su implementación en todos los entornos de implementación del equipo.
+ Como administrador de versiones, quiere ver una lista de las confirmaciones implementadas para hacer un seguimiento de su estado de implementación e informar al respecto.

CodeCatalyst proporciona una vista que puede utilizar para determinar de un vistazo dónde se han implementado las confirmaciones o los cambios individuales y en qué entorno. Esta vista incluye: 
+ Una lista de confirmaciones.
+ El estado de las implementaciones que incluyen las confirmaciones.
+ Los entornos en los que las confirmaciones se han implementado correctamente.
+ El estado de cualquier prueba que se ejecute en función de las confirmaciones de su CI/CD flujo de trabajo.

El siguiente procedimiento detalla cómo navegar hasta esta vista y utilizarla para realizar un seguimiento de los cambios en el proyecto.

**nota**  
El seguimiento del estado de la implementación por confirmación solo se admite en los [CodeCatalyst repositorios](source.md). No puedes usar esta función con un [GitHub repositorio, un repositorio de Bitbucket o un repositorio de GitLab proyectos](extensions.md).

**Seguimiento del estado de la implementación por confirmación**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Control de cambios**.

1. En las dos listas desplegables de la parte superior del panel principal, seleccione el repositorio y la ramificación de origen que contengan las confirmaciones cuyo estado de publicación quiera ver.

1. Seleccione **Ver cambios**.

   Aparecerá una lista de confirmaciones.

   Para cada confirmación, puede ver lo siguiente:
   + Información de confirmación, como el ID, el autor, el mensaje y cuándo se confirmó. Para obtener más información, consulte [Almacene código y colabore en él con los repositorios de código fuente en CodeCatalystAlmacenamiento de código y colaboración con los repositorios de código fuente](source.md).
   + El estado de las implementaciones en cada entorno. Para obtener más información, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md).
   + Resultados de las pruebas y la cobertura del código. Para obtener más información, consulte [Pruebas con flujos de trabajoPruebas con flujos de trabajo](test-workflow-actions.md).
**nota**  
No se muestran los resultados de los análisis de composición del software (SCA).

1. (Opcional) Para ver más información sobre los cambios relacionados con una confirmación específica, incluida la última implementación y la información detallada de la cobertura de código y las pruebas unitarias, seleccione **Ver detalles** para esa confirmación.

# Visualización de los registros de implementación
<a name="deploy-deployment-logs"></a>

Puedes ver los registros relacionados con acciones de implementación específicas para solucionar problemas en Amazon CodeCatalyst.

Puede ver los registros de un [flujo de trabajo](workflow.md) o un [entorno](deploy-environments.md).

**Visualización de los registros de una acción de implementación de un flujo de trabajo**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Ejecuciones**.

1. Elija la ejecución del flujo de trabajo que implementó la aplicación.

1. En el diagrama de flujo de trabajo, elija la acción cuyos registros desea ver.

1. Seleccione la pestaña **Registros** y expanda las secciones para mostrar los mensajes de registro.

1. Para ver más registros, selecciona la pestaña **Resumen** y, a continuación, selecciona **Ver en CloudFormation** (si está disponible) para ver allí más registros. Es posible que tenga que iniciar sesión en AWS.

**Visualización de los registros de una acción de implementación de un entorno**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Entornos**.

1. Elija el entorno en el que se implementó la aplicación.

1. En **Actividad de despliegue**, busque la columna **ID de ejecución de flujo de trabajo** y elija la ejecución del flujo de trabajo que implementó la pila.

1. En el diagrama de flujo de trabajo, elija la acción cuyos registros desea ver.

1. Seleccione la pestaña **Registros** y expanda las secciones para mostrar los mensajes de registro.

1. Para ver más registros, selecciona la pestaña **Resumen** y, a continuación, selecciona **Ver en CloudFormation** (si está disponible) para ver allí más registros. Es posible que tenga que iniciar sesión en AWS.

# Consulta de la información de implementación
<a name="deploy-view-deployment-info"></a>

Puedes ver la siguiente información sobre una implementación en Amazon CodeCatalyst:
+ La actividad de implementación, incluidos el estado de la implementación, la hora de inicio, la hora de finalización, el historial y la duración de los eventos.
+ Nombre de la pila Región de AWS, hora de la última actualización y flujos de trabajo asociados.
+ Solicitudes de confirmación y extracción.
+ Información específica sobre la acción, por ejemplo, CloudFormation eventos y resultados.

Puede ver la información de implementación desde un [flujo de trabajo](workflow.md), un [entorno](deploy-environments.md) o una [acción](workflows-concepts.md#workflows-concepts-actions) del flujo de trabajo.

**Consulta de la información de implementación desde un flujo de trabajo**
+ Elija la ejecución del flujo de trabajo que implementó la aplicación. Para obtener instrucciones, consulte [Visualización del estado y los detalles de la ejecución de un flujo de trabajo](workflows-view-run.md). 

**Consulta de la información de implementación desde un entorno**

1. [Abra la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Entornos**.

1. Elija el entorno en el que se implementó la pila, por ejemplo, `Production`.

1. Seleccione **Actividad de implementación** para ver el historial de implementación de sus pilas, el estado de las implementaciones (por ejemplo, **CORRECTO** O **ERROR**) y otra información relacionada con la implementación.

1. Seleccione **Destino de implementación** para ver información sobre las pilas, los clústeres u otros destinos implementados en el entorno. Puede ver información como el nombre de la pila, la región, el proveedor y el identificador.

**Consulta de la información de implementación desde una acción**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. En el diagrama de flujo de trabajo, elija la acción de flujo de trabajo que implementó la aplicación. Por ejemplo, puede elegir **DeployCloudFormationStack**.

1. Revise el contenido del panel derecho para obtener información sobre la implementación específica para cada acción. 

# Creación de un flujo de trabajo
<a name="workflows-create-workflow"></a>

Un *flujo de trabajo* es un procedimiento automatizado que describe cómo compilar, probar e implementar su código como parte de un sistema de integración y entrega continuas (CI/CD). Un flujo de trabajo define una serie de pasos o *acciones* que se realizan durante la ejecución de un flujo de trabajo. Un flujo de trabajo también define los eventos, o *desencadenadores*, que activan el inicio del flujo de trabajo. Para configurar un flujo de trabajo, se crea un *archivo de definición del flujo* de trabajo mediante el [editor visual o YAML](https://docs.aws.amazon.com//codecatalyst/latest/userguide/flows.html#workflow.editors) de la CodeCatalyst consola.

**sugerencia**  
Para ver rápidamente cómo se pueden utilizar los flujos de trabajo en un proyecto, [cree un proyecto con un esquema](https://docs.aws.amazon.com//codecatalyst/latest/userguide/projects-create.html#projects-create-console-template). Cada esquema implementa un flujo de trabajo funcional que puede revisar, ejecutar y probar.

Utilice el siguiente procedimiento para crear un flujo de trabajo en CodeCatalyst. El flujo de trabajo se almacenará como un archivo YAML en una carpeta `~/.codecatalyst/workflows/` del repositorio de código fuente elegido. Opcionalmente, puede almacenar el flujo de trabajo en una subcarpeta de `~/.codecatalyst/workflows/` anteponiendo un nombre de carpeta al nombre del archivo de flujo de trabajo al confirmarlo. Para obtener más información, consulte las siguientes instrucciones.

Para obtener más información acerca de los flujos de trabajo, consulte [Creación, pruebas e implementaciones con flujos de trabajoCreación, pruebas e implementaciones con flujos de trabajo](workflow.md).

------
#### [ Visual ]<a name="workflows-create"></a>

**Creación de un flujo de trabajo con el editor visual**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Seleccione **Crear flujo de trabajo**.

   Aparecerá el cuadro de diálogo **Crear flujo de trabajo**.

1. En el campo **Repositorio de origen**, elija el repositorio de código fuente en el que residirá el archivo de definición del flujo de trabajo. Si no existe ningún repositorio de código fuente, [cree uno](source-repositories-create.md).

1. En el campo **Ramificación**, elija una ramificación en la que residirá el archivo de definición del flujo de trabajo.

1. Seleccione **Crear**.

   Amazon CodeCatalyst guarda la información del repositorio y la sucursal en la memoria, pero el flujo de trabajo aún no está comprometido.

1. Elija **Visual**.

1. Creación del flujo de trabajo:

   1. (Opcional) En el diagrama de flujo de trabajo, seleccione las casillas **Origen** y **Desencadenadores**. Aparece un panel de **Desencadenadores**. Para agregar un desencadenador, seleccione **Agregar desencadenador**. Para obtener más información, consulte [Adición de desencadenadores a flujos de trabajo](workflows-add-trigger-add.md).

   1. Seleccione **\$1 Acciones** (arriba a la izquierda). Aparece el catálogo de **Acciones**.

   1. Seleccione el signo más (**\$1**) dentro de una acción para añadirla a su flujo de trabajo. Utilice el panel de la derecha para configurar la acción. Para obtener más información, consulte [Cómo añadir una acción a un flujo de trabajo](workflows-add-action.md).

   1. (Opcional) Seleccione **Propiedades del flujo de trabajo** (arriba a la derecha). Aparece un panel de **Propiedades del flujo de trabajo**. Configure el nombre del flujo de trabajo, el modo de ejecución y la computación. Para obtener más información, consulte [Configuración del comportamiento de puesta en cola de las ejecuciones](workflows-configure-runs.md) y [Configuración de imágenes de computación y tiempo de ejecución](workflows-working-compute.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Elija **Confirmar** y, en el cuadro de diálogo **Confirmar flujo de trabajo**, haga lo siguiente:

   1. Para **Nombre del archivo de flujo de trabajo**, deje el nombre predeterminado o especifique uno propio. El archivo se almacenará en una carpeta `~/.codecatalyst/workflows/` en el repositorio y la ramificación de origen elegidos. Puede anteponer al nombre del archivo una carpeta o subcarpeta. Ejemplos:
      + Si se especifica `my-workflow` (sin carpeta), se almacena el archivo como `~/.codecatalyst/workflows/my-workflow.yaml`
      + Si se especifica `folder/subfolder/my-workflow`, se almacena el archivo como `~/.codecatalyst/workflows/folder/subfolder/my-workflow.yaml`

   1. Para el **Mensaje de confirmación**, deje el mensaje predeterminado o especifique uno propio.

   1. En **Repositorio** y **Ramificación**, elija el repositorio y la ramificación de origen para el archivo de definición del flujo de trabajo. Estos campos deben estar configurados en el repositorio y la ramificación que haya especificado anteriormente en el cuadro de diálogo **Crear flujo de trabajo**. Si quiere, puede cambiar el repositorio y la ramificación ahora.
**nota**  
Tras confirmar el archivo de definición de flujo de trabajo, no se podrá asociar a otro repositorio o ramificación, así que asegúrese de elegirlos con cuidado.

   1. Seleccione **Confirmar** para confirmar el archivo de definición del flujo de trabajo.

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

**Creación de un flujo de trabajo con el editor de YAML**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Seleccione **Crear flujo de trabajo**.

   Aparecerá el cuadro de diálogo **Crear flujo de trabajo**.

1. En el campo **Repositorio de origen**, elija el repositorio de código fuente en el que residirá el archivo de definición del flujo de trabajo. Si no existe ningún repositorio de código fuente, [cree uno](source-repositories-create.md).

1. En el campo **Ramificación**, elija una ramificación en la que residirá el archivo de definición del flujo de trabajo.

1. Seleccione **Crear**.

   Amazon CodeCatalyst guarda la información del repositorio y la sucursal en la memoria, pero el flujo de trabajo aún no está comprometido.

1. Elija **YAML**.

1. Creación del flujo de trabajo:

   1. (Opcional) Agregue un desencadenador al código de YAML. Para obtener más información, consulte [Adición de desencadenadores a flujos de trabajo](workflows-add-trigger-add.md).

   1. Seleccione **\$1 Acciones** (arriba a la izquierda). Aparece el catálogo de **Acciones**.

   1. Seleccione el signo más (**\$1**) dentro de una acción para añadirla a su flujo de trabajo. Utilice el panel de la derecha para configurar la acción. Para obtener más información, consulte [Cómo añadir una acción a un flujo de trabajo](workflows-add-action.md).

   1. (Opcional) Seleccione **Propiedades del flujo de trabajo** (arriba a la derecha). Aparece un panel de **Propiedades del flujo de trabajo**. Configure el nombre del flujo de trabajo, el modo de ejecución y la computación. Para obtener más información, consulte [Configuración del comportamiento de puesta en cola de las ejecuciones](workflows-configure-runs.md) y [Configuración de imágenes de computación y tiempo de ejecución](workflows-working-compute.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Elija **Confirmar** y, en el cuadro de diálogo **Confirmar flujo de trabajo**, haga lo siguiente:

   1. Para **Nombre del archivo de flujo de trabajo**, deje el nombre predeterminado o especifique uno propio. El archivo se almacenará en una carpeta `~/.codecatalyst/workflows/` en el repositorio y la ramificación de origen elegidos. Puede anteponer al nombre del archivo una carpeta o subcarpeta. Ejemplos:
      + Si se especifica `my-workflow` (sin carpeta), se almacena el archivo como `~/.codecatalyst/workflows/my-workflow.yaml`
      + Si se especifica `folder/subfolder/my-workflow`, se almacena el archivo como `~/.codecatalyst/workflows/folder/subfolder/my-workflow.yaml`

   1. Para el **Mensaje de confirmación**, deje el mensaje predeterminado o especifique uno propio.

   1. En **Repositorio** y **Ramificación**, elija el repositorio y la ramificación de origen para el archivo de definición del flujo de trabajo. Estos campos deben estar configurados en el repositorio y la ramificación que haya especificado anteriormente en el cuadro de diálogo **Crear flujo de trabajo**. Si quiere, puede cambiar el repositorio y la ramificación ahora.
**nota**  
Tras confirmar el archivo de definición de flujo de trabajo, no se podrá asociar a otro repositorio o ramificación, así que asegúrese de elegirlos con cuidado.

   1. Seleccione **Confirmar** para confirmar el archivo de definición del flujo de trabajo.

------

# Ejecución de un flujo de trabajo
<a name="workflows-working-runs"></a>

Una *ejecución* es una iteración única de un flujo de trabajo. Durante una ejecución, CodeCatalyst realiza las acciones definidas en el archivo de configuración del flujo de trabajo y genera los registros, artefactos y variables asociados.

Puede iniciar una ejecución manualmente o puede iniciarla automáticamente mediante un *desencadenador de flujo de trabajo*. Un ejemplo de desencadenador de flujo de trabajo podría ser un desarrollador de software que inserte una confirmación a la ramificación principal.

También puede detener manualmente la ejecución de un flujo de trabajo a mitad de su procesamiento si lo ha iniciado por error.

Si se inician varias ejecuciones de flujo de trabajo aproximadamente al mismo tiempo, puede configurar la forma en que desee que se pongan en cola estas ejecuciones. Puede utilizar el comportamiento de cola predeterminado, en el que las ejecuciones se ponen en cola una tras otra en el orden en que se iniciaron, o bien puede hacer que una ejecución posterior sustituya (o reemplace) a una anterior para acelerar la ejecución. También es posible configurar las ejecuciones del flujo de trabajo para que se produzcan en paralelo, de modo que ninguna ejecución espere a otra.

Después de iniciar una ejecución del flujo de trabajo, de forma manual o automática, puede ver el estado de la ejecución y otros detalles. Por ejemplo, puede ver cuándo se inició, quién lo inició y si aún se está ejecutando.

**Topics**
+ [

# Inicio manual de la ejecución de un flujo de trabajo
](workflows-manually-start.md)
+ [

# Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores
](workflows-add-trigger.md)
+ [

# Configuración de desencadenadores exclusivamente manuales
](workflows-manual-only.md)
+ [

# Detención de una ejecución de flujo de trabajo
](workflows-stop.md)
+ [

# Uso de puertas en una ejecución de flujo de trabajo
](workflows-gates.md)
+ [

# Exigencia de aprobaciones en ejecuciones de flujos de trabajo
](workflows-approval.md)
+ [

# Configuración del comportamiento de puesta en cola de las ejecuciones
](workflows-configure-runs.md)
+ [

# Almacenamiento en caché de archivos entre ejecuciones de flujos de trabajo
](workflows-caching.md)
+ [

# Visualización del estado y los detalles de la ejecución de un flujo de trabajo
](workflows-view-run.md)

# Inicio manual de la ejecución de un flujo de trabajo
<a name="workflows-manually-start"></a>

En Amazon CodeCatalyst, puedes iniciar un flujo de trabajo que se ejecute manualmente desde la CodeCatalyst consola.

Para obtener más información acerca de las ejecuciones de flujos de trabajo, consulte [Ejecución de un flujo de trabajo](workflows-working-runs.md).

**nota**  
También puede iniciar la ejecución de un flujo de trabajo automáticamente mediante la [configuración de un desencadenador](workflows-add-trigger.md).

**Inicio de una ejecución de flujo de trabajo manualmente**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Ejecutar**.

# Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores
<a name="workflows-add-trigger"></a>

Puedes iniciar la ejecución automática de un CodeCatalyst flujo de trabajo de Amazon con un activador de flujo de trabajo.

Un *desencadenador de flujo de trabajo*, o simplemente un *desencadenador*, permite iniciar la ejecución automática de un flujo de trabajo cuando se producen determinados eventos, como una inserción de código. Es posible que desee configurar los activadores para que sus desarrolladores de software no tengan que iniciar manualmente las ejecuciones del flujo de trabajo a través de la CodeCatalyst consola.

Puede utilizar tres tipos de desencadenadores:
+ **Inserción**: un desencadenador de inserción de código hace que se inicie la ejecución de un flujo de trabajo cada vez que se ejecute una confirmación.
+ **Solicitud de extracción**: un desencadenador de solicitud de extracción hace que se inicie la ejecución de un flujo de trabajo cada vez que se cree, revise o cierre una solicitud de extracción.
+ **Programación**: un desencadenador de programación hace que la ejecución de un flujo de trabajo comience según los plazos que defina. Plantéese la posibilidad de utilizar un desencadenador de programación para ejecutar compilaciones nocturnas de su software, de modo que la última versión esté lista para que los desarrolladores de software puedan trabajar en ella a la mañana siguiente.

Puede usar los desencadenadores de inserción, solicitud de extracción y programación solos o combinados en el mismo flujo de trabajo.

Los desencadenadores son opcionales; si no se configura ninguno, solo se puede iniciar un flujo de trabajo manualmente.

**sugerencia**  
Para ver un desencadenador en acción, lance un proyecto con un esquema. La mayoría de los esquemas contienen un flujo de trabajo con un desencadenador. Busque la propiedad `Trigger` en el archivo de definición del flujo de trabajo del esquema. Para obtener más información acerca de los esquemas, consulte [Creación de un proyecto con un esquema](projects-create.md#projects-create-console-template).

**Topics**
+ [

# Ejemplos: Desencadenadores en flujos de trabajo
](workflows-add-trigger-examples.md)
+ [

# Directrices de uso para activadores y ramificaciones
](workflows-add-trigger-considerations.md)
+ [

# Adición de desencadenadores a flujos de trabajo
](workflows-add-trigger-add.md)

# Ejemplos: Desencadenadores en flujos de trabajo
<a name="workflows-add-trigger-examples"></a>

Los siguientes ejemplos muestran cómo añadir distintos tipos de activadores en un archivo de definición de CodeCatalyst flujo de trabajo de Amazon.

Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).

**Topics**
+ [

## Ejemplo: Desencadenador de inserción de código sencillo
](#workflows-add-trigger-examples-push-simple)
+ [

## Ejemplo: Desencadenador de inserción en main sencillo
](#workflows-add-trigger-examples-push-main)
+ [

## Ejemplo: Desencadenador de solicitud de extracción sencillo
](#workflows-add-trigger-examples-pull-simple)
+ [

## Ejemplo: Desencadenador de programación sencillo
](#workflows-add-trigger-examples-schedule-simple)
+ [

## Ejemplo: Desencadenador con programación y ramificaciones
](#workflows-add-trigger-examples-schedule-branches)
+ [

## Ejemplo: Desencadenador con una programación, una inserción y ramificaciones
](#workflows-add-trigger-examples-schedule-push-branches)
+ [

## Ejemplo: Desencadenador con una extracción y ramificaciones
](#workflows-add-trigger-examples-pull-branches)
+ [

## Ejemplo: Desencadenador con una extracción, ramificaciones y un evento CLOSED
](#workflows-add-trigger-examples-push-pull-close)
+ [

## Ejemplo: Desencadenador con inserción, ramificaciones y archivos
](#workflows-add-trigger-examples-push-multi)
+ [

## Ejemplo: Disparador manual
](#workflows-add-trigger-examples-manual)
+ [

## Ejemplo: activadores en una configuración de CI/CD flujo de trabajo múltiple
](#workflows-add-trigger-usecases)

## Ejemplo: Desencadenador de inserción de código sencillo
<a name="workflows-add-trigger-examples-push-simple"></a>

El siguiente ejemplo muestra un desencadenador que inicia la ejecución de un flujo de trabajo cada vez que se envía código a *cualquier* ramificación del repositorio de código fuente.

Cuando se activa este activador, se CodeCatalyst inicia una ejecución de flujo de trabajo con los archivos de la rama *a la que estás accediendo* (es decir, la rama de destino). 

Por ejemplo, si presionas una confirmación a`main`, se CodeCatalyst inicia una ejecución de flujo de trabajo utilizando el archivo de definición del flujo de trabajo y otros archivos fuente. `main`

Como otro ejemplo, si se envía una confirmación a`feature-branch-123`, se CodeCatalyst inicia una ejecución de flujo de trabajo utilizando el archivo de definición del flujo de trabajo y otros archivos fuente activados. `feature-branch-123`

```
Triggers:
  - Type: PUSH
```

**nota**  
Si desea que la ejecución de un flujo de trabajo se inicie solo cuando realice inserciones en `main`, consulte [Ejemplo: Desencadenador de inserción en main sencillo](#workflows-add-trigger-examples-push-main).

## Ejemplo: Desencadenador de inserción en main sencillo
<a name="workflows-add-trigger-examples-push-main"></a>

El siguiente ejemplo muestra un desencadenador que inicia la ejecución de un flujo de trabajo cada vez que se inserta código en la ramificación `main` (y *solo* en la ramificación `main`) en el repositorio de código fuente.

```
Triggers:
  - Type: PUSH
    Branches:
      - main
```

## Ejemplo: Desencadenador de solicitud de extracción sencillo
<a name="workflows-add-trigger-examples-pull-simple"></a>

El siguiente ejemplo muestra un desencadenador que inicia la ejecución de un flujo de trabajo cada vez que se crea o revisa una solicitud de extracción en el repositorio de código fuente.

Cuando se activa este activador, CodeCatalyst inicia una ejecución de flujo de trabajo con el archivo de definición del flujo de trabajo y otros archivos fuente de la rama de la que se *extrae* (es decir, la rama de origen).

Por ejemplo, si creas una solicitud de extracción con una rama de origen llamada `feature-123` y una rama de destino llamada`main`, CodeCatalyst inicia una ejecución de flujo de trabajo utilizando el archivo de definición del flujo de trabajo y otros archivos de origen. `feature-123`

```
Triggers:
  - Type: PULLREQUEST
    Events:
      - OPEN
      - REVISION
```

## Ejemplo: Desencadenador de programación sencillo
<a name="workflows-add-trigger-examples-schedule-simple"></a>

El siguiente ejemplo muestra un desencadenador que inicia una ejecución de flujo de trabajo a medianoche (UTC\$10) de lunes a viernes.

Cuando se activa este activador, se CodeCatalyst inicia una sola ejecución de flujo de trabajo para cada rama del repositorio de origen que contenga un archivo de definición de flujo de trabajo con este activador.

Por ejemplo, si tienes tres ramas en tu repositorio de origen, `main` `release-v1``feature-123`, y cada una de estas ramas contiene un archivo de definición de flujo de trabajo con el siguiente desencadenante, CodeCatalyst inicia tres ejecuciones de flujo de trabajo: una con los archivos de dentro`main`, otra con los archivos de y otra con los archivos de`feature-123`. `release-v1`

```
Triggers:
  - Type: SCHEDULE
    Expression: "0 0 ? * MON-FRI *"
```

Para ver más ejemplos de expresiones cron que puede utilizar en la propiedad `Expression`, consulte [Expression](workflow-reference.md#workflow.triggers.expression).

## Ejemplo: Desencadenador con programación y ramificaciones
<a name="workflows-add-trigger-examples-schedule-branches"></a>

El siguiente ejemplo muestra un desencadenador que inicia una ejecución de flujo de trabajo a las 18:15 h (UTC\$10) cada día.

Cuando se activa este activador, CodeCatalyst inicia una ejecución de flujo de trabajo con los archivos de la `main` rama e inicia ejecuciones adicionales para cada rama que comience con`release-`.

Por ejemplo, si tiene ramas denominadas`main`, `release-v1``bugfix-1`, y `bugfix-2` en el repositorio de origen, CodeCatalyst inicia dos ejecuciones de flujo de trabajo: una con los archivos de y otra con los archivos de`release-v1`. `main` *No* inicia ejecuciones del flujo de trabajo para las ramificaciones `bugfix-1` y `bugfix-1`.

```
Triggers:
  - Type: SCHEDULE
    Expression: "15 18 * * ? *"
    Branches:
      - main
      - release\-.*
```

Para ver más ejemplos de expresiones cron que puede utilizar en la propiedad `Expression`, consulte [Expression](workflow-reference.md#workflow.triggers.expression).

## Ejemplo: Desencadenador con una programación, una inserción y ramificaciones
<a name="workflows-add-trigger-examples-schedule-push-branches"></a>

El siguiente ejemplo muestra un desencadenador que inicia una ejecución de flujo de trabajo a medianoche (UTC\$10) todos los días y siempre que se inserte código a la ramificación `main`.

En este ejemplo:
+ La ejecución de un flujo de trabajo comienza todos los días a medianoche. La ejecución del flujo de trabajo utiliza el archivo de definición del flujo de trabajo y otros archivos de origen en la ramificación `main`.
+ Una ejecución de flujo de trabajo también se inicia cada vez que se inserta una confirmación a la ramificación `main`. La ejecución del flujo de trabajo utiliza el archivo de definición del flujo de trabajo y otros archivos de origen en la ramificación de destino (`main`).

```
Triggers:
  - Type: SCHEDULE
    Expression: "0 0 * * ? *"
    Branches:
      - main
  - Type: PUSH
    Branches: 
      - main
```

Para ver más ejemplos de expresiones cron que puede utilizar en la propiedad `Expression`, consulte [Expression](workflow-reference.md#workflow.triggers.expression).

## Ejemplo: Desencadenador con una extracción y ramificaciones
<a name="workflows-add-trigger-examples-pull-branches"></a>

En el siguiente ejemplo, se muestra un desencadenador que inicia una ejecución de flujo de trabajo cada vez que alguien abre o modifica una solicitud de extracción con una ramificación de destino llamada `main`. Aunque la ramificación especificada en la configuración de `Triggers` sea `main`, la ejecución del flujo de trabajo utilizará el archivo de definición del flujo de trabajo y otros archivos de origen de la ramificación de *origen* (que es la ramificación *desde* la que se extrae).

```
Triggers:      
  - Type: PULLREQUEST
    Branches:
      - main
    Events:
      - OPEN
      - REVISION
```

## Ejemplo: Desencadenador con una extracción, ramificaciones y un evento CLOSED
<a name="workflows-add-trigger-examples-push-pull-close"></a>

En el siguiente ejemplo, se muestra un desencadenador que inicia una ejecución de flujo de trabajo cada vez que se cierra una solicitud de extracción en una ramificación que comience por `main`.

En este ejemplo:
+ Cuando se cierras una solicitud de extracción con una ramificación de destino que comience por `main`, se inicia automáticamente una ejecución de flujo de trabajo con el archivo de definición del flujo de trabajo y otros archivos de origen de la ramificación de origen (ahora cerrada).
+ Si ha configurado el repositorio de código fuente para que elimine las ramificaciones automáticamente después de combinar una solicitud de extracción, estas ramificaciones nunca tendrán la oportunidad de entrar en el estado `CLOSED`. Esto significa que las ramificaciones combinadas no activarán el desencadenador de la solicitud de extracción `CLOSED`. La única forma de activar el desencadenador `CLOSED` en este escenario es cerrar la solicitud de extracción sin combinarla.

```
Triggers:     
  - Type: PULLREQUEST
    Branches:
      - main.*               
    Events:
      - CLOSED
```

## Ejemplo: Desencadenador con inserción, ramificaciones y archivos
<a name="workflows-add-trigger-examples-push-multi"></a>

El siguiente ejemplo muestra un desencadenador que inicia la ejecución de un flujo de trabajo cada vez que se realiza un cambio en el archivo `filename.txt` o en cualquier archivo del directorio `src` en la ramificación `main`.

Cuando se activa este activador, CodeCatalyst inicia una ejecución de flujo de trabajo con el archivo de definición del flujo de trabajo y otros archivos fuente de la `main` rama.

```
Triggers:
  - Type: PUSH
    Branches:
      - main
    FilesChanged:
      - filename.txt
      - src\/.*
```

## Ejemplo: Disparador manual
<a name="workflows-add-trigger-examples-manual"></a>

Para configurar un disparador manual, omita la sección `Triggers` del archivo de definición del flujo de trabajo. Sin esta sección, los usuarios se ven obligados a iniciar el flujo de trabajo manualmente pulsando el botón **Ejecutar** de la CodeCatalyst consola. Para obtener más información, consulte [Inicio manual de la ejecución de un flujo de trabajo](workflows-manually-start.md).

## Ejemplo: activadores en una configuración de CI/CD flujo de trabajo múltiple
<a name="workflows-add-trigger-usecases"></a>

En este ejemplo, se describe cómo configurar los activadores cuando se desean utilizar CodeCatalyst flujos de trabajo de Amazon independientes para la integración continua (CI) y el despliegue continuo (CD).

En este escenario, debe configurar dos flujos de trabajo:
+ un **flujo de trabajo de CI**: este flujo de trabajo crea y prueba la aplicación cuando se crea o revisa una solicitud de extracción;
+ un **flujo de trabajo de CD**: este flujo de trabajo crea e implementa la aplicación cuando se combina una solicitud de extracción.

El archivo de definición del **flujo de trabajo de CI** tendría un aspecto similar al siguiente:

```
Triggers:      
  - Type: PULLREQUEST
    Branches:
      - main
    Events:
      - OPEN
      - REVISION
Actions:
  BuildAction:
    instructions-for-building-the-app
  TestAction:
    instructions-for-test-the-app
```

El `Triggers` código indica que hay que iniciar automáticamente un flujo de trabajo cada vez que un desarrollador de software cree una solicitud de cambios (o [modifique una](pull-requests-update.md)) solicitando la fusión de su rama de funciones con la `main` rama. CodeCatalyst inicia la ejecución del flujo de trabajo utilizando el código fuente de la rama fuente (que es la rama de funciones).

El archivo de definición del **flujo de trabajo de CD** tendría un aspecto similar al siguiente:

```
Triggers:      
  - Type: PUSH
    Branches:
      - main
Actions:
  BuildAction:
    instructions-for-building-the-app
  DeployAction:
    instructions-for-deploying-the-app
```

El `Triggers` código indica que el flujo de trabajo se inicie automáticamente cuando `main` se produzca una fusión. CodeCatalyst inicia la ejecución del flujo de trabajo utilizando el código fuente de la `main` rama.

# Directrices de uso para activadores y ramificaciones
<a name="workflows-add-trigger-considerations"></a>

En esta sección se describen algunas de las principales pautas a la hora de configurar los CodeCatalyst activadores de Amazon que incluyen sucursales.

Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).
+ **Directriz 1:** para los activadores de solicitudes de extracción e inserción, si va a especificar una ramificación, debe especificar la ramificación de destino (o “a”) en la configuración del desencadenador. Nunca especifiques la ramificación de origen (o “desde”).

  En el siguiente ejemplo, una inserción desde cualquier ramificación a `main` activa el flujo de trabajo.

  ```
  Triggers:
    - Type: PUSH
      Branches:
        - main
  ```

  En el siguiente ejemplo, una solicitud de extracción desde cualquier ramificación a `main` activa el flujo de trabajo.

  ```
  Triggers:
    - Type: PULLREQUEST
      Branches:
        - main
      Events:
        - OPEN
        - REVISION
  ```
+ **Directriz 2:** para los desencadenadores de inserción, una vez activado el flujo de trabajo, este se ejecutará utilizando el archivo de definición del flujo de trabajo y los archivos de origen de la ramificación de *destino*.
+ **Directriz 3:** para los desencadenadores de solicitud de extracción, una vez activado el flujo de trabajo, este se ejecutará utilizando el archivo de definición del flujo de trabajo y los archivos de origen de la ramificación de *origen* (aunque haya especificado la ramificación de destino en la configuración del desencadenador).
+ **Directriz 4:** es posible que el mismo activador exacto en una ramificación no se ejecute en otra ramificación.

  Considere el siguiente desencadenador de inserción:

  ```
  Triggers:
    - Type: PUSH
      Branches:
        - main
  ```

  Si el archivo de definición del flujo de trabajo que contiene este activador existe en `main` y se clona en `test`, el flujo de trabajo nunca empezará automáticamente a utilizar los archivos en `test` (aunque puede iniciar el flujo de trabajo *manualmente* para que utilice los archivos en `test`). Consulte la **directriz 2** para entender por qué el flujo de trabajo nunca se ejecutará automáticamente con los archivos en `test`.

  Piense también en el siguiente desencadenador de solicitud de extracción:

  ```
  Triggers:
    - Type: PULLREQUEST
      Branches:
        - main
      Events:
        - OPEN
        - REVISION
  ```

  Si el archivo de definición del flujo de trabajo que contiene este desencadenador existe en `main`, el flujo de trabajo nunca se ejecutará con los archivos en `main`. (Sin embargo, si crea una ramificación `test` a partir de `main`, el flujo de trabajo se ejecutará con los archivos en `test`). Revise la **directriz 3** para entender por qué.

# Adición de desencadenadores a flujos de trabajo
<a name="workflows-add-trigger-add"></a>

Sigue las siguientes instrucciones para añadir un activador de inserción, extracción o programación a tu CodeCatalyst flujo de trabajo de Amazon.

Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).

------
#### [ Visual ]<a name="workflows-add-trigger-add-console"></a>

**Adición de un desencadenador (editor visual)**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, seleccione las casillas **Origen** y **Desencadenadores**.

1. En el panel de configuración, seleccione **Agregar desencadenador**.

1. En el cuadro de diálogo **Agregar desencadenador**, introduzca la información en los campos, de la siguiente manera.

    **Tipo de desencadenador** 

   Especifique el tipo de desencadenador. Puede utilizar uno de los siguientes valores:
   + **Insertar** (editor visual) o `PUSH` (editor de YAML)

     Un desencadenador de inserción inicia la ejecución de un flujo de trabajo cuando se envía un cambio al repositorio de código fuente. La ejecución del flujo de trabajo utilizará los archivos de la ramificación *a* la que realiza la inserción (es decir, la ramificación de destino).
   + **Solicitud de extracción** (editor visual) o `PULLREQUEST` (editor de YAML)

     Un desencadenador de este tipo inicia la ejecución de un flujo de trabajo cuando se abre, actualiza o cierra una solicitud de extracción en el repositorio de código fuente. La ejecución del flujo de trabajo utilizará los archivos de la ramificación *desde* la que realiza la extracción (es decir, la ramificación de origen).
   + **Programación** (editor visual) o `SCHEDULE` (editor de YAML)

     Un desencadenador de tipo programación inicia las ejecuciones del flujo de trabajo según una programación definida por una expresión cron que especifique. Se iniciará una ejecución de flujo de trabajo independiente para cada ramificación del repositorio de código fuente utilizando los archivos de la ramificación. (Para limitar las ramificaciones en las que se activa el desencadenador, use el campo **Ramificaciones** (editor visual) o la propiedad `Branches` (editor de YAML)).

     Cuando configure un desencadenador de programación, siga estas directrices:
     + Utilice solo un desencadenador de programación por flujo de trabajo.
     + Si ha definido varios flujos de trabajo en su CodeCatalyst espacio, le recomendamos que no programe más de 10 de ellos para que se inicien simultáneamente.
     + Asegúrese de configurar la expresión cron del desencadenador con el tiempo adecuado entre ejecuciones. Para obtener más información, consulte [Expression](workflow-reference.md#workflow.triggers.expression).

   Para ver ejemplos, consulte [Ejemplos: Desencadenadores en flujos de trabajo](workflows-add-trigger-examples.md).

    **Eventos para solicitud de extracción** 

   Este campo solo aparece si ha seleccionado el tipo de desencadenador **Solicitud de extracción**.

   Especifica el tipo de eventos de solicitud de extracción que iniciarán la ejecución de un flujo de trabajo. Los siguientes valores son los válidos:
   + **Se crea una solicitud de extracción** (editor visual) o `OPEN` (editor de YAML)

     La ejecución del flujo de trabajo se inicia cuando se crea una solicitud de extracción.
   + **La solicitud de extracción está cerrada** (editor visual) o `CLOSED` (editor de YAML)

     La ejecución del flujo de trabajo se inicia cuando se cierra una solicitud de extracción. El comportamiento del evento `CLOSED` es complejo y se entiende mejor con un ejemplo. Para obtener más información, consulte [Ejemplo: Desencadenador con una extracción, ramificaciones y un evento CLOSED](workflows-add-trigger-examples.md#workflows-add-trigger-examples-push-pull-close).
   + **Se realiza una nueva revisión para la solicitud de extracción** (editor visual) o `REVISION` (editor de YAML)

     La ejecución del flujo de trabajo se inicia cuando se crea una revisión de una solicitud de extracción. La primera revisión se crea cuando se crea la solicitud de extracción. Después se crea una nueva revisión cada vez que alguien envía una nueva confirmación a la ramificación de origen especificada en la solicitud de extracción. Si incluye el evento `REVISION` en el desencadenador de la solicitud de extracción, puede omitir el evento `OPEN`, ya que `REVISION` es un superconjunto de `OPEN`.

   Puede especificar varios eventos en el mismo desencadenador de la solicitud de extracción.

   Para ver ejemplos, consulte [Ejemplos: Desencadenadores en flujos de trabajo](workflows-add-trigger-examples.md).

    **Programación** 

   Este campo solo aparece si ha seleccionado el tipo de desencadenador **Programación**.

   Especifique la expresión cron que describe cuándo desea que se ejecuten sus flujos de trabajo programados.

   Las expresiones cron CodeCatalyst utilizan la siguiente sintaxis de seis campos, en la que cada campo está separado por un espacio:

   *minutes* *hours* *days-of-month* *month* *days-of-week* *year*

   **Ejemplos de expresiones cron**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/workflows-add-trigger-add.html)

   Al especificar las expresiones cron CodeCatalyst, asegúrese de seguir estas pautas:
   + Especifique una sola expresión cron por desencadenador `SCHEDULE`.
   + Escriba la expresión cron entre comillas dobles (`"`) en el editor de YAML.
   + Especifique la hora en tiempo universal coordinado (UTC). El resto de zonas horarias no son compatibles.
   + Configure al menos 30 minutos entre ejecuciones. Una cadencia más rápida no es compatible.
   + Especifique el *days-of-week* campo *days-of-month* o, pero no ambos. Si especifica un valor o un asterisco (`*`) en uno de los campos, debe utilizar un signo de interrogación (`?`) en el otro. El asterisco significa todos y el signo de interrogación significa cualquiera.

    Para obtener más ejemplos de expresiones cron e información sobre caracteres comodín`?`, como, y `*``L`, consulte la [referencia sobre expresiones cron en](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html) la Guía del usuario de *Amazon EventBridge *. Las expresiones cron CodeCatalyst funcionan EventBridge y funcionan exactamente de la misma manera.

   Para ver ejemplos de desencadenadores de programación, consulte [Ejemplos: Desencadenadores en flujos de trabajo](workflows-add-trigger-examples.md).

    **Ramificaciones** y **Patrón de ramificación** 

   (Opcional)

   Especifica las ramificaciones del repositorio de código fuente que supervisa el desencadenador para saber cuándo iniciar la ejecución de un flujo de trabajo. Puede usar patrones de expresiones regulares para definir los nombres de las ramificaciones. Por ejemplo, use `main.*` para hacer coincidir todas las ramificaciones que comiencen por `main`.

   Las ramificaciones que se deben especificar son diferentes en función del tipo de desencadenador:
   + En el caso de un desencadenador de inserción, especifique las ramificaciones *en* las que va a realizar la inserción, es decir, las ramificaciones de *destino*. Se iniciará una ejecución de flujo de trabajo por cada ramificación coincidente, utilizando los archivos de la ramificación coincidente.

     Ejemplos: `main.*`, `mainline`
   + En el caso de un desencadenador de solicitud de extracción, especifique las ramificaciones *en* las que va a realizar la inserción, es decir, las ramificaciones de *destino*. Se iniciará una ejecución de flujo de trabajo por cada ramificación coincidente, utilizando el archivo de definición del flujo de trabajo y los archivos de origen de la ramificación de **origen** (*no* de la ramificación coincidente).

     Ejemplos: `main.*`, `mainline`, `v1\-.*` (busca coincidencias con las ramificaciones que comiencen por `v1-`)
   + Para un desencadenador de programación, especifique las ramificaciones que contengan los archivos que quiera que utilice la ejecución programada. Se iniciará una ejecución de flujo de trabajo por cada ramificación coincidente, utilizando el archivo de definición del flujo de trabajo y los archivos de origen en la ramificación coincidente.

     Ejemplos: `main.*`, `version\-1\.0`
**nota**  
Si *no* especifica ninguna ramificación, el activador supervisa todas las ramificaciones del repositorio de código fuente e iniciará una ejecución de flujo de trabajo con el archivo de definición del flujo de trabajo y los archivos de código fuente en:  
La ramificación *en* la que realiza la inserción (para desencadenadores de inserción). Para obtener más información, consulte [Ejemplo: Desencadenador de inserción de código sencillo](workflows-add-trigger-examples.md#workflows-add-trigger-examples-push-simple).
La ramificación *desde* la que realiza la extracción (para desencadenadores de solicitudes de extracción). Para obtener más información, consulte [Ejemplo: Desencadenador de solicitud de extracción sencillo](workflows-add-trigger-examples.md#workflows-add-trigger-examples-pull-simple).
Todas las ramificaciones (para desencadenadores de programación). Se iniciará una ejecución de flujo de trabajo por cada ramificación del repositorio de código fuente. Para obtener más información, consulte [Ejemplo: Desencadenador de programación sencillo](workflows-add-trigger-examples.md#workflows-add-trigger-examples-schedule-simple).

   Para obtener más información acerca de las ramificaciones y los desencadenadores, consulte [Directrices de uso para activadores y ramificaciones](workflows-add-trigger-considerations.md).

   Para obtener más ejemplos, consulte [Ejemplos: Desencadenadores en flujos de trabajo](workflows-add-trigger-examples.md).

    **Archivos cambiados** 

   Este campo solo aparece si ha seleccionado el tipo de desencadenador **Inserción** o **Solicitud de extracción**.

   Especifica los archivos o carpetas del repositorio de código fuente que supervisa el desencadenador para saber cuándo iniciar la ejecución de un flujo de trabajo. Puede utilizar expresiones regulares para hacer coincidir los nombres o las rutas de los archivos.

   Para ver ejemplos, consulte [Ejemplos: Desencadenadores en flujos de trabajo](workflows-add-trigger-examples.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Adición de un desencadenador (editor de YAML)**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. Añada una sección `Triggers` y las propiedades subyacentes utilizando el siguiente ejemplo como guía. Para obtener más información, consulte [Triggers](workflow-reference.md#triggers-reference) en la [Definición de flujo de trabajo en YAML](workflow-reference.md).

   Un desencadenador de inserción de código podría tener este aspecto:

   ```
   Triggers:
     - Type: PUSH
       Branches:
         - main
   ```

   Un desencadenador de solicitud de extracción podría tener este aspecto:

   ```
   Triggers:
     - Type: PULLREQUEST
       Branches:
         - main.*
       Events: 
         - OPEN
         - REVISION
         - CLOSED
   ```

   Un desencadenador de programación podría tener este aspecto:

   ```
   Triggers:
     - Type: SCHEDULE
       Branches:
         - main.*
       # Run the workflow at 1:15 am (UTC+0) every Friday until the end of 2023
       Expression: "15 1 ? * FRI 2022-2023"
   ```

   Para ver más ejemplos de expresiones cron que puede utilizar en la propiedad `Expression`, consulte [Expression](workflow-reference.md#workflow.triggers.expression).

   Para ver más ejemplos de desencadenadores de inserción, solicitud de extracción y programación, consulte [Ejemplos: Desencadenadores en flujos de trabajo](workflows-add-trigger-examples.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Configuración de desencadenadores exclusivamente manuales
<a name="workflows-manual-only"></a>

Puedes limitar un flujo de trabajo para que tu equipo solo pueda iniciarlo manualmente mediante el botón **Ejecutar** de la CodeCatalyst consola. Para configurar esta funcionalidad, debe eliminar la sección `Triggers` del archivo de definición del flujo de trabajo. La sección `Triggers` se incluye de forma predeterminada al crear un flujo de trabajo, pero es opcional y se puede eliminar.

Siga estas instrucciones para eliminar la sección `Triggers` del archivo de definición del flujo de trabajo, de modo que el flujo de trabajo solo se pueda iniciar manualmente.

Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).

Para obtener más información acerca de la ejecución de flujos de trabajo, consulte [Ejecución de un flujo de trabajo](workflows-working-runs.md).

------
#### [ Visual ]

**Eliminación de la sección “Desencadenadores” (editor visual)**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. Seleccione la casilla **Origen** en el diagrama de flujo de trabajo.

1. En **Desencadenadores**, seleccione el icono de la papelera para eliminar la sección `Triggers` del flujo de trabajo.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Eliminación de la sección “Desencadenadores” (editor de YAML)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. Busque la sección `Triggers` y elimínela.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Detención de una ejecución de flujo de trabajo
<a name="workflows-stop"></a>

Utilice el siguiente procedimiento para detener una ejecución de un flujo de trabajo en curso. Es posible que desee detener una ejecución si se ha iniciado por accidente.

Al detener la ejecución de un flujo de trabajo, CodeCatalyst espera a que se completen las acciones en curso antes de marcar la ejecución como **detenida** en la consola. CodeCatalyst Las acciones que no hayan podido iniciarse no se iniciarán y se marcarán con el estado **Abandonado**.

**nota**  
Si una ejecución está en cola (es decir, no tiene ninguna acción en curso), la ejecución se detiene inmediatamente.

Para obtener más información acerca de las ejecuciones de flujos de trabajo, consulte [Ejecución de un flujo de trabajo](workflows-working-runs.md).

**Detención de una ejecución de flujo de trabajo**

1. [Abre la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. En **Flujos de trabajo**, seleccione **Ejecuciones** y elija la ejecución en curso de la lista.

1. Elija **Detener**.

# Uso de puertas en una ejecución de flujo de trabajo
<a name="workflows-gates"></a>

Una *puerta* es un componente de flujo de trabajo que se puede utilizar para impedir que la ejecución de un flujo de trabajo continúe a menos que se cumplan determinadas condiciones. Un ejemplo de puerta es la puerta de **aprobación**, en la que los usuarios deben enviar una aprobación en la CodeCatalyst consola antes de permitir que continúe la ejecución del flujo de trabajo.

Puede añadir puertas entre las secuencias de acciones de un flujo de trabajo o antes de la primera acción (que se ejecuta inmediatamente después de descargar el **Origen**). También puede agregar puertas después de la última acción, si es necesario.

Para obtener más información acerca de las ejecuciones de flujos de trabajo, consulte [Ejecución de un flujo de trabajo](workflows-working-runs.md).

**Topics**
+ [

## Tipos de puertas
](#workflows-gates-types)
+ [

## ¿Puedo configurar una puerta para que se ejecute en paralelo a otra acción?
](#workflows-approval-parallel)
+ [

## ¿Puedo usar una puerta para impedir que se inicie la ejecución de un flujo de trabajo?
](#workflows-gates-prevent)
+ [

## Limitaciones de puertas
](#workflows-gate-limitations)
+ [

# Cómo añadir una puerta a un flujo de trabajo
](workflows-gates-add.md)
+ [

# Secuenciación de puertas y acciones
](workflows-gates-depends-on.md)
+ [

# Especificación de la versión de una puerta
](workflows-gates-version.md)

## Tipos de puertas
<a name="workflows-gates-types"></a>

Actualmente, Amazon CodeCatalyst admite un tipo de puerta: la puerta de **aprobación**. Para obtener más información, consulte [Exigencia de aprobaciones en ejecuciones de flujos de trabajo](workflows-approval.md).

## ¿Puedo configurar una puerta para que se ejecute en paralelo a otra acción?
<a name="workflows-approval-parallel"></a>

No. Las puertas solo pueden ejecutarse antes o después de una acción. Para obtener más información, consulte [Secuenciación de puertas y acciones](workflows-gates-depends-on.md).

## ¿Puedo usar una puerta para impedir que se inicie la ejecución de un flujo de trabajo?
<a name="workflows-gates-prevent"></a>

Sí, con cualificaciones.

Puede impedir que la ejecución de un flujo de trabajo *realice tareas*, lo que es ligeramente diferente de impedir que se *inicie*.

Para evitar que un flujo de trabajo realice tareas, agregue una puerta antes de la primera acción del flujo de trabajo. En este escenario, *se iniciará* la ejecución de un flujo de trabajo (es decir, se descargarán los archivos del repositorio de código fuente), pero no podrá realizar tareas hasta que se desbloquee la puerta.

**nota**  
Los flujos de trabajo que se inician y después se bloquean mediante una puerta se siguen teniendo en cuenta para la cuota de *Máximo de ejecuciones simultáneas del flujo de trabajo por espacio* y también para otras cuotas. Para asegurarse de no superar las cuotas de flujo de trabajo, considere la posibilidad de utilizar un desencadenante de flujo de trabajo para iniciar un flujo de trabajo de forma condicional en lugar de utilizar una puerta. Plantéese también la posibilidad de utilizar una regla de aprobación de solicitudes de extracción en lugar de una puerta. Para obtener más información sobre las cuotas, los desencadenadores y las reglas de aprobación de solicitudes de extracción, consulte [Cuotas para flujos de trabajo en CodeCatalyst](workflows-quotas.md), [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md) y [Administración de los requisitos para combinar una solicitud de extracción con reglas de aprobación](source-pull-requests-approval-rules.md).

## Limitaciones de puertas
<a name="workflows-gate-limitations"></a>

Las puertas presentan las siguientes limitaciones:
+ Las puertas no se pueden utilizar junto con las característica de computación compartida. Para obtener más información acerca de esta característica, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md).
+ Las puertas no se pueden usar dentro de grupos de acciones. Para obtener más información sobre los grupos de acciones, consulte [Agrupación de acciones en grupos de acciones](workflows-group-actions.md).

# Cómo añadir una puerta a un flujo de trabajo
<a name="workflows-gates-add"></a>

En Amazon CodeCatalyst, puede añadir una puerta a un flujo de trabajo para impedir que continúe a menos que se cumplan determinadas condiciones. Siga estas instrucciones para añadir una puerta a un flujo de trabajo.

Para obtener más información acerca de las puertas, consulte [Uso de puertas en una ejecución de flujo de trabajo](workflows-gates.md).

**Cómo añadir y configurar una puerta**

1. Abra la consola de CodeCatalyst en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **Visual**.

1. A la izquierda, seleccione **Puertas**.

1. En el catálogo de puertas, busque una puerta y seleccione el signo más (**\$1**) para añadir la puerta a su flujo de trabajo.

1. Configure la puerta. Seleccione **Visual** para usar el editor visual o **YAML** para usar el editor de YAML. Para obtener instrucciones detalladas, consulte:
   + [Adición de una puerta de Aprobación](workflows-approval-add.md)

1. (Opcional) Seleccione **Validar** para asegurarse de que el código de YAML sea válido.

1. Seleccione **Confirmar** para confirmar los cambios.

# Secuenciación de puertas y acciones
<a name="workflows-gates-depends-on"></a>

En Amazon CodeCatalyst, puede configurar una puerta para que se ejecute antes o después de una acción, grupo de acciones o puerta del flujo de trabajo. Por ejemplo, puede configurar una puerta de `Approval` para que se ejecute antes de una acción `Deploy`. En este caso, se dice que la acción `Deploy` *depende de* la puerta de `Approval`.

Para configurar las dependencias entre las puertas y las acciones, configure la propiedad **Depends on** de la acción. Para obtener instrucciones, consulte [Configuración de dependencias entre acciones](workflows-depends-on-set-up.md). Las instrucciones a las que se hace referencia se refieren a las *acciones* del flujo de trabajo, pero se aplican igualmente a las puertas. 

Para ver un ejemplo de cómo configurar la propiedad **Depends on** con una puerta, consulte[Ejemplo: Una puerta de Aprobación](workflows-approval-example.md).

Para obtener más información acerca de las puertas, consulte [Uso de puertas en una ejecución de flujo de trabajo](workflows-gates.md).

Para obtener más información acerca de las acciones de flujos de trabajo, consulte [Configuración de acciones de flujo de trabajo](workflows-actions.md).

# Especificación de la versión de una puerta
<a name="workflows-gates-version"></a>

De forma predeterminada, al agregar una puerta a un flujo de trabajo, CodeCatalyst añade la versión completa al archivo de definición del flujo de trabajo con el formato:

`vmajor.minor.patch` 

Por ejemplo:

```
My-Gate:
  Identifier: aws/approval@v1
```

Puede alargar la versión para que el flujo de trabajo utilice una versión principal o secundaria específica de la puerta. Para obtener instrucciones, consulte [Especificación de la versión de la acción que se va a utilizar](workflows-action-versions.md). El tema al que se hace referencia tiene que ver con las acciones del flujo de trabajo, pero se aplica igualmente a las puertas.

Para obtener más información acerca de las puertas en CodeCatalyst, consulte [Uso de puertas en una ejecución de flujo de trabajo](workflows-gates.md).

# Exigencia de aprobaciones en ejecuciones de flujos de trabajo
<a name="workflows-approval"></a>

Puede configurar una ejecución de un flujo de trabajo para que requiera una aprobación antes de continuar. Para ello, debe añadir una [puerta](workflows-gates.md) de **Aprobación** al flujo de trabajo. Una *puerta de aprobación* impide que un flujo de trabajo continúe hasta que un usuario o un conjunto de usuarios envíen una o más aprobaciones en la CodeCatalyst consola. Una vez concedidas todas las aprobaciones, se desbloquea la puerta y se permite reanudar la ejecución del flujo de trabajo.

Utilice una puerta de **Aprobación** en su flujo de trabajo para que sus equipos de desarrollo, operaciones y liderazgo tengan la oportunidad de revisar los cambios antes de implementarlos entre un público más amplio.

Para obtener más información acerca de las ejecuciones de flujos de trabajo, consulte [Ejecución de un flujo de trabajo](workflows-working-runs.md).

**Topics**
+ [

## ¿Cómo puedo desbloquear una puerta de aprobación?
](#workflows-approval-conditions)
+ [

## Cuándo usar la puerta de Aprobación
](#workflows-approval-when)
+ [

## ¿Quién puede proporcionar una aprobación?
](#workflows-approval-who)
+ [

## ¿Cómo notifico a los usuarios que se requiere una aprobación?
](#workflows-approval-notify-methods)
+ [

## ¿Puedo usar una puerta de Aprobación para impedir que se inicie la ejecución de un flujo de trabajo?
](#workflows-approval-prevent)
+ [

## ¿Cómo funcionan las aprobaciones de flujos de trabajo con los modos de ejecución en cola, reemplazado y en paralelo?
](#workflows-approval-run-mode)
+ [

# Ejemplo: Una puerta de Aprobación
](workflows-approval-example.md)
+ [

# Adición de una puerta de Aprobación
](workflows-approval-add.md)
+ [

# Configuración de notificaciones de aprobación
](workflows-approval-notify.md)
+ [

# Aprobación o rechazo de la ejecución de un flujo de trabajo
](workflows-approval-approve.md)
+ [

# Puerta de “aprobación” de YAML
](approval-ref.md)

## ¿Cómo puedo desbloquear una puerta de aprobación?
<a name="workflows-approval-conditions"></a>

Para desbloquear una puerta de **Aprobación**, se deben cumplir *todas* las condiciones siguientes:
+ **Condición 1**: se debe enviar el número de aprobaciones requerido. El número de aprobaciones requerido se puede configurar y cada usuario puede enviar una sola aprobación.
+ **Condición 2**: todas las aprobaciones deben enviarse antes de que se agote el tiempo de espera de la puerta. La puerta caduca 14 días después de su activación. Este período no se puede configurar.
+ **Condición 3**: nadie debe rechazar la ejecución del flujo de trabajo. Un solo rechazo provocará un error en la ejecución del flujo de trabajo.
+ **Condición 4**: (solo se aplica si se utiliza el modo de ejecución reemplazado). La ejecución no debe reemplazarse por una ejecución posterior. Para obtener más información, consulte [¿Cómo funcionan las aprobaciones de flujos de trabajo con los modos de ejecución en cola, reemplazado y en paralelo?](#workflows-approval-run-mode).

Si no se cumple alguna de las condiciones, CodeCatalyst detiene el flujo de trabajo y establece el estado de ejecución en **Fallada** (en el caso de **las condiciones 1** a **3**) o **Reemplazada** (en el caso de la **condición 4**).

## Cuándo usar la puerta de Aprobación
<a name="workflows-approval-when"></a>

Normalmente, se utiliza una puerta de **Aprobación** en un flujo de trabajo que implemente aplicaciones y otros recursos en un servidor de producción o en cualquier entorno en el que se deban validar los estándares de calidad. Al colocar la puerta antes de la implementación en producción, los revisores tienen la oportunidad de validar la nueva revisión del software antes de que esté disponible para el público. 

## ¿Quién puede proporcionar una aprobación?
<a name="workflows-approval-who"></a>

Cualquier usuario que sea miembro de su proyecto y que tenga el rol de **Colaborador** o **Administrador del proyecto** puede dar su aprobación. Los usuarios con el rol de **Administrador del espacio** que pertenezcan al espacio del proyecto también pueden dar su aprobación.

**nota**  
Los usuarios con el rol de **Revisor** no pueden proporcionar aprobaciones.

## ¿Cómo notifico a los usuarios que se requiere una aprobación?
<a name="workflows-approval-notify-methods"></a>

Para notificar a los usuarios que se requiere una aprobación, debe hacer lo siguiente:
+ Haz que les CodeCatalyst envíes una notificación a Slack. Para obtener más información, consulte [Configuración de notificaciones de aprobación](workflows-approval-notify.md).
+ Ve a la página de la CodeCatalyst consola donde están los botones **Aprobar** y **Rechazar** y pega la URL de esa página en una aplicación de correo electrónico o mensajería dirigida a los responsables de la aprobación. Para obtener más información sobre cómo navegar a esta página, consulte [Aprobación o rechazo de la ejecución de un flujo de trabajo](workflows-approval-approve.md).

## ¿Puedo usar una puerta de Aprobación para impedir que se inicie la ejecución de un flujo de trabajo?
<a name="workflows-approval-prevent"></a>

Sí, con cualificaciones. Para obtener más información, consulte [¿Puedo usar una puerta para impedir que se inicie la ejecución de un flujo de trabajo?](workflows-gates.md#workflows-gates-prevent).

## ¿Cómo funcionan las aprobaciones de flujos de trabajo con los modos de ejecución en cola, reemplazado y en paralelo?
<a name="workflows-approval-run-mode"></a>

Cuando se utiliza el modo de ejecución en cola, reemplazado o paralelo, la puerta de **Aprobación** funciona de forma similar a las [acciones](workflows-actions.md). Le sugerimos que lea las secciones [Acerca del modo de ejecución en cola](workflows-configure-runs.md#workflows-configure-runs-queued), [Acerca del modo de ejecución reemplazado](workflows-configure-runs.md#workflows-configure-runs-superseded) y [Acerca del modo de ejecución en paralelo](workflows-configure-runs.md#workflows-configure-runs-parallel) para familiarizarse con estos modos de ejecución. Una vez que tenga una comprensión básica de ellas, vuelva a esta sección para averiguar cómo funcionan estos modos de ejecución cuando se tiene una puerta de **Aprobación**.

Cuando existe la puerta de **Aprobación**, las ejecuciones se procesan de la siguiente manera:
+ Si se utiliza el [modo de ejecución en cola](workflows-configure-runs.md#workflows-configure-runs-queued), las ejecuciones se pondrán en cola detrás de la ejecución que esté esperando su aprobación en la puerta. Cuando esa puerta se desbloquee (es decir, cuando se hayan obtenido todas las aprobaciones), la siguiente ejecución de la cola avanzará hasta la puerta y esperará a recibir las aprobaciones. Este proceso continúa y las ejecuciones en cola se procesan hasta el final. one-by-one [Figure 1](#figure-1-workflow-queued-run-mode-ma)ilustra este proceso.
+ Si se utiliza el [modo de ejecución reemplazado](workflows-configure-runs.md#workflows-configure-runs-superseded), el comportamiento es el mismo que en el modo de ejecución en cola, con la diferencia de que, en lugar de acumular ejecuciones en la cola, las ejecuciones más recientes reemplazan (sustituyen) a las anteriores. No hay colas, y cualquier ejecución que esté esperando su aprobación en la puerta ese momento se cancelará y será reemplazada por una ejecución más reciente. [Figure 2](#figure-2-workflow-superseded-run-mode-ma) ilustra este proceso.
+ Si utiliza el [modo de ejecución en paralelo](workflows-configure-runs.md#workflows-configure-runs-parallel), las ejecuciones comienzan en paralelo y no se forman colas. La puerta procesa cada ejecución inmediatamente, ya que no hay ninguna ejecución por delante. [Figure 3](#figure-3-workflow-parallel-run-mode-ma) ilustra este proceso.

**Figura 1**: modo de ejecución en cola y puerta de **Aprobación**

![\[Cómo funciona una puerta de Aprobación con el modo de ejecución en cola\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/images/flows/runmode-queued-ma.png)


**Figura 2**: modo de ejecución reemplazado y puerta de **Aprobación**

![\[Cómo funciona una puerta de Aprobación con el modo de ejecución reemplazado\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/images/flows/runmode-superseded-ma.png)


**Figura 3**: modo de ejecución en paralelo y puerta de **Aprobación**

![\[Cómo funciona una puerta de Aprobación con el modo de ejecución en paralelo\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/images/flows/runmode-parallel-ma.png)


# Ejemplo: Una puerta de Aprobación
<a name="workflows-approval-example"></a>

En el siguiente ejemplo se muestra cómo añadir una puerta de **Aprobación** llamada `Approval_01` entre dos acciones denominadas `Staging` y `Production`. La acción `Staging` se ejecuta en primer lugar, la puerta `Approval_01` en segundo lugar y la acción `Production` en último lugar. La acción `Production` solo se ejecuta si la puerta `Approval_01` está desbloqueada. La propiedad `DependsOn` garantiza que las fases `Staging`, `Approval_01` y `Production` se ejecuten en orden secuencial.

Para obtener más información sobre la puerta de **Aprobación**, consulte [Exigencia de aprobaciones en ejecuciones de flujos de trabajo](workflows-approval.md).

```
Actions:
  Staging: # Deploy to a staging server
    Identifier: aws/ecs-deploy@v1
    Configuration:
    ...       
  Approval_01:
    Identifier: aws/approval@v1
    DependsOn:
      - Staging
    Configuration:
      ApprovalsRequired: 2 
  Production: # Deploy to a production server
    Identifier: aws/ecs-deploy@v1
    DependsOn:
      - Approval_01
    Configuration:
    ...
```

# Adición de una puerta de Aprobación
<a name="workflows-approval-add"></a>

Para configurar su flujo de trabajo de modo que requiera una aprobación, debe añadir la puerta de **Aprobación** al flujo de trabajo. Siga estas instrucciones para añadir una puerta de **Aprobación** a su flujo de trabajo.

Para obtener más información acerca de este tipo de puerta, consulte [Exigencia de aprobaciones en ejecuciones de flujos de trabajo](workflows-approval.md).

------
#### [ Visual ]<a name="workflows-add-trigger-add-console"></a>

**Adición de una puerta de Aprobación a un flujo de trabajo (editor visual)**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. En la parte superior izquierda, seleccione **Puertas**.

1. En el catálogo de **Puertas**, en **Aprobación**, seleccione el signo más (**\$1**).

1. Seleccione **Entradas** y, en el campo **Depende de**, haga lo siguiente.

   Especifique la acción, el grupo de acciones o la puerta que debe ejecutarse correctamente para que esta puerta se ejecute. De forma predeterminada, al añadir una puerta a un flujo de trabajo, la puerta se configura para que dependa de la última acción del flujo de trabajo. Si elimina esta propiedad, la puerta no dependerá de nada y se ejecutará primero, antes que otras acciones.
**nota**  
Se debe configurar una puerta para que se ejecute antes o después de una acción, un grupo de acciones o una puerta. No se puede configurar para que se ejecute en paralelo con otras acciones, grupos de acción y puertas.

   Para obtener más información sobre la funcionalidad **Depende de**, consulte [Secuenciación de puertas y acciones](workflows-gates-depends-on.md).

1. Elija la pestaña **Configuración**.

1. En el campo **Nombre de la puerta**, haga lo siguiente.

   Especifique el nombre que desea asignar a la puerta. Todos los nombres de puertas deben ser únicos dentro del flujo de trabajo. Los nombres de puertas están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de las puertas.

1. (Opcional) En el campo **Número de aprobaciones**, haga lo siguiente.

   Especifique el número mínimo de aprobaciones necesarias para abrir la puerta de **Aprobación**. El mínimo es `1`. El máximo es `2`. Si se omite, el valor predeterminado es `1`.
**nota**  
Si desea omitir la propiedad `ApprovalsRequired`, elimine la sección `Configuration` de la puerta del archivo de definición del flujo de trabajo.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Adición de una puerta de Aprobación a un flujo de trabajo (editor de YAML)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. Añada una sección `Approval` y las propiedades subyacentes utilizando el siguiente ejemplo como guía. Para obtener más información, consulte [Puerta de “aprobación” de YAML](approval-ref.md) en la [Definición de flujo de trabajo en YAML](workflow-reference.md).

   ```
   Actions:
     MyApproval_01:
       Identifier: aws/approval@v1
       DependsOn:
         - PreviousAction
       Configuration:
         ApprovalsRequired: 2
   ```

   Para ver otro ejemplo, consulte [Ejemplo: Una puerta de Aprobación](workflows-approval-example.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Configuración de notificaciones de aprobación
<a name="workflows-approval-notify"></a>

Puede hacer que CodeCatalyst envíe una notificación a un canal de Slack en la que se informe a los usuarios de que la ejecución de un flujo de trabajo requiere una aprobación. Los usuarios ven la notificación y hacen clic en el enlace que contiene. El enlace los lleva a una página de aprobaciones de CodeCatalyst en la que pueden aprobar o rechazar el flujo de trabajo.

También puede configurar las notificaciones para informar a los usuarios de que un flujo de trabajo ha sido aprobado, rechazado o de que la solicitud de aprobación ha caducado.

Utilice las siguientes instrucciones para configurar las notificaciones de Slack.

**Antes de empezar**  
Asegúrese de haber agregado una puerta de **Aprobación** a su flujo de trabajo. Para obtener más información, consulte [Adición de una puerta de Aprobación](workflows-approval-add.md).

**Envío de notificaciones de aprobación de un flujo de trabajo a un canal de Slack**

1. Configure CodeCatalyst con Slack. Para obtener más información, consulte [Introducción a las notificaciones de Slack](getting-started-notifications.md).

1. En el proyecto de CodeCatalyst que contenga el flujo de trabajo que requiera una aprobación, habilite las notificaciones si aún no están habilitadas. Para habilitar las notificaciones:

   1. Acceda al proyecto y elija **Ajustes del proyecto** en el panel de navegación.

   1. En la parte superior, seleccione **Notificaciones**.

   1. En **Eventos de notificación**, seleccione **Editar notificaciones**.

   1. Active **Aprobación de flujo de trabajo pendiente** y elija un canal de Slack al que CodeCatalyst enviará la notificación. 

   1. (Opcional) Active las notificaciones adicionales para avisar a los usuarios sobre las aprobaciones aprobadas, rechazadas o vencidas. Puede activar **Ejecución del flujo de trabajo aprobada**, **Ejecución del flujo de trabajo rechazada**, **Aprobación del flujo de trabajo reemplazado** y **Tiempo de espera de la aprobación del flujo de trabajo agotado**. Junto a cada notificación, seleccione el canal de Slack al que CodeCatalyst enviará la notificación.

   1. Seleccione **Save**.

# Aprobación o rechazo de la ejecución de un flujo de trabajo
<a name="workflows-approval-approve"></a>

Las ejecuciones de flujos de trabajo que incluyan la puerta de **Aprobación** deberán aprobarse o rechazarse. Los usuarios pueden dar su aprobación o rechazo desde:
+ la CodeCatalyst consola
+ un enlace proporcionado por un miembro del equipo;
+ una notificación automática de Slack.

Una vez que un usuario dé su aprobación o rechazo, esta decisión será irrevocable.

**nota**  
Solo determinados usuarios pueden aprobar o rechazar la ejecución de un flujo de trabajo. Para obtener más información, consulte [¿Quién puede proporcionar una aprobación?](workflows-approval.md#workflows-approval-who).

**Antes de empezar**  
Asegúrese de haber agregado una puerta de **Aprobación** a su flujo de trabajo. Para obtener más información, consulte [Adición de una puerta de Aprobación](workflows-approval-add.md).

**Para aprobar o rechazar un flujo de trabajo, ejecútelo desde la CodeCatalyst consola**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. En el diagrama de flujo de trabajo, seleccione la casilla que representa la puerta de **Aprobación**.

   Aparece un panel lateral.
**nota**  
En este momento, podrá enviar la URL de esta página a otros aprobadores si lo desea.

1. En **Decisión de revisión**, seleccione **Aprobar** o **Rechazar**.

1. (Opcional) En **Comentar - opcional**, introduzca un comentario que indique por qué ha aprobado o rechazado la ejecución del flujo de trabajo.

1. Seleccione **Enviar**.

**Aprobación o rechazo de una ejecución de flujo de trabajo desde un enlace proporcionado por un miembro del equipo**

1. Haga clic en el enlace que le envió un miembro del equipo. (Puede pedir a un miembro del equipo que lea el procedimiento anterior para obtener el enlace).

1. Inicie sesión en CodeCatalyst, si se le solicita.

   Se le redirigirá a la página de aprobación de la ejecución del flujo de trabajo.

1. En **Decisión de revisión**, seleccione **Aprobar** o **Rechazar**.

1. (Opcional) En **Comentar - opcional**, introduzca un comentario que indique por qué ha aprobado o rechazado la ejecución del flujo de trabajo.

1. Seleccione **Enviar**.

**Aprobación o rechazo de una ejecución de flujo de trabajo desde una notificación automática de Slack**

1. Asegúrese de que las notificaciones de Slack estén configuradas. Consulte [Configuración de notificaciones de aprobación](workflows-approval-notify.md).

1. En Slack, en el canal al que se envió la notificación de aprobación, seleccione el enlace de la notificación de aprobación.

1. Inicie sesión en CodeCatalyst, si se le solicita.

   Se le redirigirá a la página de la ejecución del flujo de trabajo.

1. En el diagrama de flujo de trabajo, seleccione la puerta de aprobación.

1. En **Decisión de revisión**, seleccione **Aprobar** o **Rechazar**.

1. (Opcional) En **Comentar - opcional**, introduzca un comentario que indique por qué ha aprobado o rechazado la ejecución del flujo de trabajo.

1. Seleccione **Enviar**.

# Puerta de “aprobación” de YAML
<a name="approval-ref"></a>

A continuación, se incluye la definición de YAML de la puerta de **aprobación**. Para obtener información sobre cómo utilizar esta puerta, consulte [Exigencia de aprobaciones en ejecuciones de flujos de trabajo](workflows-approval.md).

Esta definición de acción existe como una sección dentro de un archivo de definición de flujo de trabajo más amplio. Para obtener más información acerca de este archivo, consulte [Definición de flujo de trabajo en YAML](workflow-reference.md).

**nota**  
La mayoría de las propiedades de YAML que se muestran a continuación tienen elementos de interfaz de usuario correspondientes en el editor visual. Para buscar un elemento de la interfaz de usuario, use **Ctrl\$1F**. El elemento aparecerá en la lista con su propiedad de YAML asociada.

```
# The workflow definition starts here.
# See Propiedades de nivel superior for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:
 
# The 'Approval' gate definition starts here.    
  Approval: 
    Identifier: aws/approval@v1
    DependsOn:
      - another-action
    Configuration:
      ApprovalsRequired: number
```

## Approval
<a name="approval.name"></a>

(Obligatorio)

Especifique el nombre que desea asignar a la puerta. Todos los nombres de puertas deben ser únicos dentro del flujo de trabajo. Los nombres de puertas están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de las puertas.

Predeterminado: `Approval_nn`.

Interfaz de usuario correspondiente: pestaña Configuración/**Nombre de la puerta**

## Identifier
<a name="approval.identifier"></a>

(*Approval*/**Identifier**)

(Obligatorio)

Identifica la puerta. La puerta de **aprobación** admite la versión `1.0.0`. No cambie esta propiedad a menos que desee cambiar a una versión anterior. Para obtener más información, consulte [Especificación de la versión de la acción que se va a utilizar](workflows-action-versions.md).

Predeterminado: `aws/approval@v1`.

Interfaz de usuario correspondiente: Diagrama de flujo de trabajo/Approval\$1nn/etiqueta **aws/approval@v1**

## DependsOn
<a name="approval.dependson"></a>

(*Approval*/**DependsOn**)

(Opcional)

Especifique la acción, el grupo de acciones o la puerta que debe ejecutarse correctamente para que esta puerta se ejecute. De forma predeterminada, al añadir una puerta a un flujo de trabajo, la puerta se configura para que dependa de la última acción del flujo de trabajo. Si elimina esta propiedad, la puerta no dependerá de nada y se ejecutará primero, antes que otras acciones.

**nota**  
Se debe configurar una puerta para que se ejecute antes o después de una acción, un grupo de acciones o una puerta. No se puede configurar para que se ejecute en paralelo con otras acciones, grupos de acción y puertas.

Para obtener más información sobre la funcionalidad **Depende de**, consulte [Secuenciación de puertas y acciones](workflows-gates-depends-on.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Depende de**

## Configuration
<a name="approval.configuration"></a>

(*Approval*/**Configuration**)

(Opcional)

Una sección en la que puede definir las propiedades de configuración de la puerta.

Interfaz de usuario correspondiente: pestaña **Configuración**

## ApprovalsRequired
<a name="approval.approvals.required"></a>

(*Approval*/Configuration/**ApprovalsRequired**)

(Opcional)

Especifique el número mínimo de aprobaciones necesarias para abrir la puerta de **aprobación**. El mínimo es `1`. El máximo es `2`. Si se omite, el valor predeterminado es `1`.

**nota**  
Si desea omitir la propiedad `ApprovalsRequired`, elimine la sección `Configuration` de la puerta del archivo de definición del flujo de trabajo.

Interfaz de usuario correspondiente: pestaña Configuración/**Número de aprobaciones**

# Configuración del comportamiento de puesta en cola de las ejecuciones
<a name="workflows-configure-runs"></a>

De forma predeterminada, en Amazon CodeCatalyst, cuando se ejecutan varios flujos de trabajo al mismo tiempo, CodeCatalyst los pone en cola y los procesa uno por uno, en el orden en que se iniciaron. Puede cambiar este comportamiento predeterminado especificando un *modo de ejecución*. Existen varios modos de ejecución:
+ (Predeterminado) Modo de ejecución en cola: los procesos de CodeCatalyst se ejecutan uno por uno
+ Modo de ejecución reemplazado: los procesos de CodeCatalyst se ejecutan uno por uno, y las ejecuciones más recientes sustituyen a las antiguas
+ Modo de ejecución en paralelo: los procesos de CodeCatalyst se ejecutan en paralelo

Para obtener más información acerca de las ejecuciones de flujos de trabajo, consulte [Ejecución de un flujo de trabajo](workflows-working-runs.md).

**Topics**
+ [

## Acerca del modo de ejecución en cola
](#workflows-configure-runs-queued)
+ [

## Acerca del modo de ejecución reemplazado
](#workflows-configure-runs-superseded)
+ [

## Acerca del modo de ejecución en paralelo
](#workflows-configure-runs-parallel)
+ [

## Configuración del modo de ejecución
](#workflows-configure-runs-configure)

## Acerca del modo de ejecución en cola
<a name="workflows-configure-runs-queued"></a>

En el *modo de ejecución en cola*, las ejecuciones se producen en serie y las ejecuciones que están en espera forman una cola.

Las colas se forman en los puntos de acceso a las acciones y los grupos de acciones, por lo que puede tener *varias colas en el mismo flujo de trabajo* (consulte [Figure 1](#figure-1-workflow-queued-run-mode)). Cuando una ejecución en cola entra en una acción, la acción se bloquea y no puede entrar ninguna otra ejecución. Cuando la ejecución finaliza y sale de la acción, la acción se desbloquea y está lista para la siguiente ejecución.

[Figure 1](#figure-1-workflow-queued-run-mode) ejemplifica un flujo de trabajo configurado en el modo de ejecución en cola. Se muestra lo siguiente:
+ Siete ejecuciones recorriendo el flujo de trabajo.
+ Dos colas: una fuera de la entrada al origen de la entrada (**Repo:main**) y otra fuera de la entrada a la acción **BuildTestActionGroup**.
+ Dos bloques bloqueados: el origen de entrada (**Repo:main**) y el **BuildTestActionGroup**. 

Así es como sucederán las cosas a medida que se ejecute el flujo de trabajo y finalice el procesamiento:
+ Cuando **Run-4d444** termine de clonar el repositorio de código fuente, saldrá de la fuente de entrada y se unirá a la cola detrás de **Run-3c333**. A continuación, **Run-5e555** entrará en el origen de entrada.
+ Cuando **Run-1a111** termine de compilar y realizar las pruebas, saldrá de la acción **BuildTestActionGroup** y entrará en la acción **DeployAction**. A continuación, **Run-2b222** entrará en la acción **BuildTestActionGroup**.

**Figura 1**: un flujo de trabajo configurado en el modo de ejecución en cola.

![\[Un flujo de trabajo configurado en el modo de ejecución en cola.\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/images/flows/RunMode-Queued.png)


Utilice el modo de ejecución en cola si:
+ **Desea mantener una relación de uno a uno entre las características y las ejecuciones; estas características pueden agruparse cuando se utiliza el modo reemplazado**. Por ejemplo, cuando se combina la característica 1 en la confirmación 1, se inicia la ejecución 1, y cuando se combina la característica 2 en la confirmación 2, se inicia la ejecución 2, y así sucesivamente. Si utilizara el modo reemplazado en lugar del modo en cola, sus características (y confirmaciones) se agruparán en la ejecución que reemplazará a las demás.
+ **Quiere evitar las condiciones de carrera y los problemas inesperados que puedan producirse al utilizar el modo en paralelo**. Por ejemplo, si dos desarrolladores de software, Wang y Saanvi, inician las ejecuciones del flujo de trabajo aproximadamente al mismo tiempo para implementarlas en un clúster de Amazon ECS, la ejecución de Wang podría iniciar las pruebas de integración en el clúster mientras la ejecución de Saanvi implementa un nuevo código de aplicación en el clúster, lo que provoca que las pruebas de Wang fallen o prueben el código incorrecto. Pongamos otro ejemplo: es posible que tenga un destino que no disponga de un mecanismo de bloqueo, en cuyo caso las dos ejecuciones podrían sobrescribir los cambios de la otra de forma inesperada.
+ **Desea limitar la carga** de los recursos de computación que CodeCatalyst utiliza para procesar sus ejecuciones. Por ejemplo, si dispone de tres acciones en su flujo de trabajo, puede tener un máximo de tres ejecuciones al mismo tiempo. Imponer un límite al número de ejecuciones que se pueden realizar al mismo tiempo hace que el rendimiento de las ejecuciones sea más predecible.
+ **Desea limitar el número de solicitudes que el flujo de trabajo realiza a servicios de terceros**. Por ejemplo, su flujo de trabajo podría tener una acción de compilación que incluya instrucciones para extraer una imagen de Docker Hub. [Docker Hub limita el número de solicitudes de extracción](https://www.docker.com/increase-rate-limits) que puede realizar a un número determinado por hora y por cuenta, y si se supera el límite, se produce un bloqueo. Si utiliza el modo de ejecución en cola para reducir el rendimiento de las ejecuciones, se generarán menos solicitudes a Docker Hub por hora, lo que limitará la posibilidad de que se produzcan bloqueos y los consiguientes errores de compilación y ejecución.

**Tamaño máximo de cola**: 50

Notas sobre el **tamaño máximo de la cola**:
+ El tamaño máximo de la cola se refiere al número máximo de ejecuciones permitido en *todas las colas* del flujo de trabajo.
+ Si una cola supera las 50 ejecuciones, CodeCatalyst descarta la 51.ª ejecución y las siguientes.

**Comportamiento de error**:

Si una ejecución deja de responder mientras está siendo procesada por una acción, las ejecuciones que se produzcan después permanecerán en la cola hasta que se agote el tiempo de espera de la acción. El tiempo de espera de las acciones se agota cuando ha transcurrido una hora.

Si una ejecución falla dentro de una acción, se permite continuar con la primera ejecución que esté en la cola detrás de esta.

## Acerca del modo de ejecución reemplazado
<a name="workflows-configure-runs-superseded"></a>

El *modo de ejecución reemplazado* es el mismo que el *modo de ejecución en cola*, con la salvedad de que:
+ Si una ejecución en cola alcanza a otra ejecución de la cola, la ejecución posterior reemplaza (sustituye) a la anterior, y esta última se cancela y se marca como reemplazada.
+ Como resultado del comportamiento descrito en la primera viñeta, una cola solo puede incluir una ejecución cuando se utiliza el modo de ejecución reemplazado. 

Utilicemos el flujo de trabajo de [Figure 1](#figure-1-workflow-queued-run-mode) como guía: si se aplica el modo de ejecución reemplazado a este flujo de trabajo, se produciría lo siguiente:
+ **Run-7g777** sustituiría a las otras dos ejecuciones de la cola y sería la única ejecución restante en la **Cola n.º 1**. **Run-6f666** y **Run-5e555** se cancelarían.
+ **Run-3c333** reemplazaría a **Run-2b222** y sería la única ejecución restante en la **Cola n.º 2**. **Run-2b222** se cancelaría.

Utilice el modo de ejecución reemplazado si desea:
+ un mejor rendimiento que con el modo en cola;
+ menos solicitudes incluso a servicios de terceros que con el modo en cola; esto es ventajoso si el servicio de terceros tiene límites de velocidad, como Docker Hub.

## Acerca del modo de ejecución en paralelo
<a name="workflows-configure-runs-parallel"></a>

En el *modo de ejecución en paralelo*, las ejecuciones son independientes entre sí y no tienen que esperar a que se completen las demás para iniciarse. No hay colas y el rendimiento de las ejecuciones solo está limitado por la rapidez con la que se puedan completar las acciones del flujo de trabajo. 

Utilice el modo de ejecución en paralelo en entornos de desarrollo en los que cada usuario tenga su propia ramificación de características y se implemente en destinos que no compartan otros usuarios.

**importante**  
Si tiene un destino compartido en el que puedan realizar implementaciones varios usuarios, como una función de Lambda en un entorno de producción, no utilice el modo en paralelo, ya que pueden producirse condiciones de carrera. Se produce una *condición de carrera* cuando las ejecuciones de un flujo de trabajo en paralelo intentan cambiar un recurso compartido al mismo tiempo, lo que genera resultados impredecibles.

**Número máximo de ejecuciones en paralelo**: 1000 por espacio de CodeCatalyst

## Configuración del modo de ejecución
<a name="workflows-configure-runs-configure"></a>

Puede configurar el modo de ejecución en cola, reemplazado o en paralelo. El valor predeterminado es ejecución en cola.

Al cambiar el modo de ejecución del modo en cola o reemplazado al modo en paralelo, CodeCatalyst cancela las ejecuciones que estén en cola y permite que las ejecuciones que una acción está procesando actualmente finalicen antes de cancelarlas.

Al cambiar el modo de ejecución del modo en paralelo al modo en cola o reemplazado, CodeCatalyst permite que se completen todas las ejecuciones en paralelo que se estén ejecutando actualmente. Todas las ejecuciones que se inicien después de cambiar el modo de ejecución al modo en cola o reemplazado utilizarán el nuevo modo.

------
#### [ Visual ]

**Cambio del modo de ejecución mediante el editor visual**

1. Abra la consola de CodeCatalyst en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. En la parte superior derecha, seleccione **Propiedades del flujo de trabajo**.

1. Expanda **Avanzado** y, en **Modo de ejecución**, elija una de las siguientes opciones:

   1. **En cola**: consulte [Acerca del modo de ejecución en cola](#workflows-configure-runs-queued)

   1. **Reemplazado**: consulte [Acerca del modo de ejecución reemplazado](#workflows-configure-runs-superseded)

   1. **En paralelo**: consulte [Acerca del modo de ejecución en paralelo](#workflows-configure-runs-parallel)

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Cambio del modo de ejecución mediante el editor de YAML**

1. Abra la consola de CodeCatalyst en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **YAML**.

1. Añada la propiedad `RunMode`, de la siguiente manera:

   ```
   Name: Workflow_6d39
   SchemaVersion: "1.0"
   RunMode: QUEUED|SUPERSEDED|PARALLEL
   ```

   Para obtener más información, consulte la descripción de la propiedad `RunMode` en la sección [Propiedades de nivel superior](workflow-reference.md#workflow.top.level) de la [Definición de flujo de trabajo en YAML](workflow-reference.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Almacenamiento en caché de archivos entre ejecuciones de flujos de trabajo
<a name="workflows-caching"></a>

Cuando el almacenamiento en caché de archivos está activado, las acciones de compilación y prueba guardan los archivos del disco en una memoria caché y los restauran desde esa memoria caché en las siguientes ejecuciones del flujo de trabajo. El almacenamiento en caché reduce la latencia provocada por la creación o descarga de dependencias que no han cambiado entre ejecuciones. CodeCatalyst también es compatible con las cachés alternativas, que se pueden usar para restaurar cachés parciales que contienen algunas de las dependencias necesarias. Esto ayuda a reducir los impactos en la latencia de un error de caché.

**nota**  
El almacenamiento en caché de archivos solo está disponible con las acciones de CodeCatalyst [compilación](build-workflow-actions.md) y [prueba](test-workflow-actions.md) de Amazon, y solo cuando están configuradas para usar el [tipo de **EC2**procesamiento](workflows-working-compute.md#compute.types).

**Topics**
+ [

## Acerca del almacenamiento en caché de archivos
](#workflows-caching.files)
+ [

## Creación de una caché
](#workflows-caching.fallback)
+ [

## Restricciones de almacenamiento en caché de archivos
](#workflows-caching.constraints)

## Acerca del almacenamiento en caché de archivos
<a name="workflows-caching.files"></a>

El almacenamiento en caché de archivos permite organizar los datos en varias cachés, a las que se hace referencia en la propiedad `FileCaching`. Cada caché guarda un directorio especificado por una ruta determinada. El directorio especificado se restaurará en futuras ejecuciones del flujo de trabajo. A continuación, se muestra un ejemplo de fragmento de código de YAML para almacenar en caché con varias cachés denominadas `cacheKey1` y `cacheKey2`.

```
Actions:
  BuildMyNpmApp:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Steps:
        - Run: npm install
        - Run: npm run test
    Caching:
      FileCaching:
        cacheKey1:
          Path: file1.txt
          RestoreKeys:
             - restoreKey1
        cacheKey2:
          Path: /root/repository
          RestoreKeys:
             - restoreKey2
             - restoreKey3
```

**nota**  
CodeCatalyst utiliza el almacenamiento en caché multicapa, que consiste en una caché local y una caché remota. Cuando las flotas aprovisionadas o las máquinas bajo demanda detectan un error de caché en una caché local, las dependencias se restaurarán desde una caché remota. Como resultado, es posible que algunas ejecuciones de acciones experimenten latencia debido a la descarga de una caché remota.

CodeCatalyst aplica restricciones de acceso a la caché para garantizar que una acción de un flujo de trabajo no pueda modificar las cachés de un flujo de trabajo diferente. Esto protege cada flujo de trabajo de otros flujos que podrían generar datos incorrectos que afectarían a las compilaciones o implementaciones. Las restricciones se aplican con alcances de caché que aíslan las cachés para cada emparejamiento de flujos de trabajo y ramificaciones. Por ejemplo, el `workflow-A` en la ramificación `feature-A` tiene una caché de archivos diferente al `workflow-A` en la ramificación hermana `feature-B`.

Los errores de caché se producen cuando un flujo de trabajo busca una caché de archivos específica y no puede encontrarla. Esto puede ocurrir por varios motivos, por ejemplo, cuando se crea una nueva ramificación o cuando se hace referencia a una nueva caché y aún no se ha creado. También puede ocurrir cuando una caché caduca, lo que de forma predeterminada ocurre 14 días después de su último uso. Para mitigar las pérdidas de memoria caché y aumentar la tasa de visitas a la memoria caché, CodeCatalyst es compatible con las cachés alternativas. Las cachés alternativas son cachés adicionales de respaldo y ofrecen la oportunidad de restaurar cachés parciales, que pueden ser una versión anterior de una caché. Para restaurar una memoria caché, primero se busca una coincidencia de `FileCaching` para el nombre de la propiedad y, si no se encuentra, se evalúa `RestoreKeys`. Si hay un error de caché tanto para el nombre de la propiedad como para todas las `RestoreKeys`, el flujo de trabajo seguirá ejecutándose, ya que el almacenamiento en caché es el mejor método posible y no está garantizado.

## Creación de una caché
<a name="workflows-caching.fallback"></a>

Puede seguir estas instrucciones para añadir una caché a su flujo de trabajo.

------
#### [ Visual ]

**Cómo añadir una caché mediante el editor visual**

1. [Abra la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, elija la acción a la que quiera añadir la caché.

1. Elija **Configuración**.

1. En **Almacenamiento en caché de archivos - opcional**, seleccione **Añadir caché** e introduzca la información en los campos de la siguiente manera:

    **Clave** 

   Especifique el nombre de la propiedad de su caché principal. Los nombres de propiedades de caché deben ser únicos en el flujo de trabajo. Puede haber hasta cinco entradas de cada acción en `FileCaching`.

    **Ruta** 

   Especifique la ruta asociada a la memoria caché. 

    **Restaure claves - opcional** 

   Especifique la clave de restauración para utilizarla como alternativa cuando no se pueda encontrar la propiedad de caché principal. Los nombres de clave de restauración deben ser únicos en el flujo de trabajo. Puede haber hasta cinco entradas de cada acción en `RestoreKeys`.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Cómo añadir una caché mediante el editor YAML**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **YAML**.

1. En una acción de flujo de trabajo, agregue código similar al siguiente:

   ```
   action-name:
     Configuration:
       Steps: ...
     Caching:
       FileCaching:
         key-name:
           Path: file-path
           # # Specify any additional fallback caches
           # RestoreKeys:
           #  - restore-key
   ```

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

## Restricciones de almacenamiento en caché de archivos
<a name="workflows-caching.constraints"></a>

A continuación enumeramos las restricciones para nombres de propiedades y `RestoreKeys`:
+ Los nombres deben ser únicos dentro de un flujo de trabajo.
+ Los nombres están limitados a caracteres alfanuméricos (A-Z, a-z y 0-9), guiones (-) y guiones bajos (\$1).
+ Los nombres pueden tener un máximo de 180 caracteres.
+ Puede haber hasta cinco cachés para cada acción en `FileCaching`.
+ Puede haber hasta cinco entradas de cada acción en `RestoreKeys`.

Estas son las restricciones para las rutas:
+ No se permiten los asteriscos (\$1).
+ Las rutas pueden tener un máximo de 255 caracteres.

# Visualización del estado y los detalles de la ejecución de un flujo de trabajo
<a name="workflows-view-run"></a>

EN Amazon CodeCatalyst, puedes ver el estado y los detalles de una sola ejecución del flujo de trabajo o de varias ejecuciones al mismo tiempo.

Para obtener una lista de posibles estados de ejecución, consulte [Estados de ejecución de un flujo de trabajo](workflows-view-run-status.md).

**nota**  
También puede ver el estado del flujo de trabajo, que es diferente del estado de la *ejecución* del flujo de trabajo. Para obtener más información, consulte [Visualización del estado de un flujo de trabajo](workflows-view-status.md).

Para obtener más información acerca de las ejecuciones de flujos de trabajo, consulte [Ejecución de un flujo de trabajo](workflows-working-runs.md).

**Topics**
+ [

## Visualización del estado y los detalles de una sola ejecución
](#workflows-view-run-single)
+ [

## Visualización del estado y los detalles de todas las ejecuciones del proyecto
](#workflows-view-run-all)
+ [

## Visualización del estado y los detalles de todas las ejecuciones de un flujo de trabajo específico
](#workflows-view-run-wf)
+ [

## Visualización de ejecuciones de un flujo de trabajo en el diagrama de flujo de trabajo
](#workflows-view-run-wf-diagram)

## Visualización del estado y los detalles de una sola ejecución
<a name="workflows-view-run-single"></a>

Es posible que desee ver el estado y los detalles de una sola ejecución de flujo de trabajo para comprobar si se ha ejecutado correctamente, a qué hora se ha completado o quién o qué la ha iniciado.

**Visualización del estado y los detalles de una sola ejecución**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. En el nombre del flujo de trabajo, seleccione **Ejecuciones**.

1. En **Historial de ejecuciones**, en la columna **ID de ejecución**, seleccione una ejecución. Por ejemplo, `Run-95a4d`.

1. Bajo el nombre de la ejecución, elija una de las siguientes opciones:
   + **Visual** para ver un diagrama de flujo de trabajo que muestre las acciones de la ejecución del flujo de trabajo y su estado (véase [Estados de ejecución de un flujo de trabajo](workflows-view-run-status.md)). Esta vista también muestra el repositorio y la ramificación de origen utilizados durante la ejecución.

     En el diagrama del flujo de trabajo, elija una acción para ver detalles como los registros, los informes y los resultados generados por la acción durante la ejecución. La información que se muestra depende del tipo de acción que se seleccione. Para obtener más información acerca de cómo visualizar los archivos de compilación o implementación, consulte [Consulta de los resultados de una acción de compilación](build-view-results.md) o [Visualización de los registros de implementación](deploy-deployment-logs.md).
   + **YAML** para ver el archivo de definición del flujo de trabajo que se utilizó para la ejecución.
   + **Artefactos** para ver los artefactos producidos por la ejecución del flujo de trabajo. Para obtener más información acerca de los artefactos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).
   + **Informes** para ver los informes de las pruebas y otros tipos de informes producidos por la ejecución del flujo de trabajo. Para obtener más información acerca de los informes, consulte [Tipos de informes de calidad](test-workflow-actions.md#test-reporting).
   + **Variables** para ver las variables de salida generadas por la ejecución del flujo de trabajo. Para obtener más información acerca de las variables, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).
**nota**  
Si se ha eliminado el flujo de trabajo principal de la ejecución, aparecerá un mensaje que indicará este hecho en la parte superior de la página de detalles de la ejecución.

## Visualización del estado y los detalles de todas las ejecuciones del proyecto
<a name="workflows-view-run-all"></a>

Es posible que quiera ver el estado y los detalles de todas las ejecuciones del flujo de trabajo del proyecto para comprender la cantidad de actividad del flujo de trabajo que se está produciendo en el proyecto y obtener información sobre el estado general de los flujos de trabajo.

**Visualización del estado y los detalles de todas las ejecuciones del proyecto**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. En **Flujos de trabajo**, elija **Ejecuciones**.

   Se muestran todas las ejecuciones de todos los flujos de trabajo, en todas las ramificaciones y en todos los repositorios del proyecto. 

   La página incluye las siguientes columnas:
   + **ID de ejecución**: el identificador único de la ejecución. Seleccione el enlace del ID de ejecución para ver información detallada sobre la ejecución.
   + **Estado**: el estado de procesamiento de la ejecución del flujo de trabajo. Para obtener más información acerca de los estados de ejecución, consulte [Estados de ejecución de un flujo de trabajo](workflows-view-run-status.md).
   + **Desencadenador**: la persona, la confirmación, la solicitud de extracción (PR) o la programación que haya iniciado la ejecución del flujo de trabajo. Para obtener más información, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).
   + **Flujo de trabajo**: el nombre del flujo de trabajo para el que se inició una ejecución y el repositorio y la ramificación de origen donde resida el archivo de definición del flujo de trabajo. Puede que tenga que expandir el ancho de columna para ver esta información.
**nota**  
Si esta columna está configurada como **No disponible**, normalmente se debe a que el flujo de trabajo asociado se ha eliminado o trasladado.
   + **Hora de inicio**: hora a la que se ha iniciado la ejecución del flujo de trabajo.
   + **Duración**: cuánto tiempo tardó en procesarse la ejecución del flujo de trabajo. Si aparecen duraciones muy largas o muy cortas, eso puede indicar que ha habido problemas.
   + **Hora de finalización**: hora a la que finalizó la ejecución del flujo de trabajo.

## Visualización del estado y los detalles de todas las ejecuciones de un flujo de trabajo específico
<a name="workflows-view-run-wf"></a>

Es posible que desee ver el estado y los detalles de todas las ejecuciones asociadas a un flujo de trabajo específico para comprobar si alguna ejecución está generando cuellos de botella en el flujo de trabajo o para determinar qué ejecuciones están actualmente en curso o se han completado.

**Visualización del estado y los detalles de todas las ejecuciones de un flujo de trabajo específico**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. En el nombre del flujo de trabajo, seleccione **Ejecuciones**.

   Aparecen las ejecuciones asociadas al flujo de trabajo seleccionado.

   La página se divide en dos secciones:
   + **Ejecuciones activas**: muestra las ejecuciones en curso. Estas ejecuciones estarán en uno de los siguientes estados: **En curso**.
   + **Historial de ejecuciones**: muestra las ejecuciones que se han completado (es decir, que no están en curso).

     Para obtener más información acerca de los estados de ejecución, consulte [Estados de ejecución de un flujo de trabajo](workflows-view-run-status.md).

## Visualización de ejecuciones de un flujo de trabajo en el diagrama de flujo de trabajo
<a name="workflows-view-run-wf-diagram"></a>

Puede ver el estado de todas las ejecuciones de un flujo de trabajo a medida que avancen en el flujo de trabajo. Las ejecuciones aparecen en el diagrama de flujo de trabajo (a diferencia de en una vista de lista). Esto le presenta una representación visual de qué ejecuciones se están procesando mediante qué acciones y qué ejecuciones están en espera en una cola.

**Visualización del estado de varias ejecuciones a medida que avanzan en conjunto en un flujo de trabajo**
**nota**  
Este procedimiento solo se aplica si el flujo de trabajo utiliza el modo de ejecución en cola o reemplazado. Para obtener más información, consulte [Configuración del comportamiento de puesta en cola de las ejecuciones](workflows-configure-runs.md).

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.
**nota**  
Asegúrese de que está viendo una página de un flujo de trabajo y no una página de una ejecución.

1. Seleccione la pestaña **Último estado** en la esquina superior izquierda.

   Aparecerá un diagrama de flujo de trabajo.

1. Revise el diagrama de flujo de trabajo. El diagrama muestra todas las ejecuciones que están actualmente en curso dentro del flujo de trabajo y las últimas ejecuciones que han finalizado. Más concretamente:
   + Las ejecuciones que aparecen en la parte superior, antes de **Orígenes**, están en cola y esperando para empezar.
   + Las ejecuciones que aparecen entre acciones están en cola y esperando a ser procesadas por la siguiente acción.
   + Las ejecuciones que aparecen dentro de una acción están 1) siendo procesadas por la acción actualmente, 2) la acción acaba de terminar de procesarlas o 3) no han sido procesadas por la acción (normalmente porque una acción anterior ha fallado).

# Configuración de acciones de flujo de trabajo
<a name="workflows-actions"></a>

Una *acción* es el componente principal de un flujo de trabajo y define una unidad lógica de trabajo, o una tarea, que se realiza durante la ejecución de un flujo de trabajo. Por lo general, un flujo de trabajo incluye varias acciones que se ejecutan de forma secuencial o paralela en función de cómo se hayan configurado.

**Topics**
+ [

## Tipos de acción
](#workflows-actions-types)
+ [

# Cómo añadir una acción a un flujo de trabajo
](workflows-add-action.md)
+ [

# Eliminación de una acción de un flujo de trabajo
](workflows-delete-action.md)
+ [

# Desarrollo de una acción personalizada
](workflows-custom-action.md)
+ [

# Agrupación de acciones en grupos de acciones
](workflows-group-actions.md)
+ [

# Secuenciación de acciones
](workflows-depends-on.md)
+ [

# Cómo compartir artefactos y archivos entre acciones
](workflows-working-artifacts.md)
+ [

# Especificación de la versión de la acción que se va a utilizar
](workflows-action-versions.md)
+ [

# Enumeración de las versiones disponibles de una acción
](workflows-action-versions-determine.md)
+ [

# Visualización del código fuente de una acción
](workflows-view-source.md)
+ [

# Integración con GitHub acciones
](integrations-github-actions.md)

## Tipos de acción
<a name="workflows-actions-types"></a>

Dentro de un CodeCatalyst flujo de trabajo de Amazon, puedes usar los siguientes tipos de acciones.

**Topics**
+ [

### CodeCatalyst acciones
](#workflows-actions-types-cc)
+ [

### CodeCatalyst Acciones de Labs
](#workflows-actions-types-cc-labs)
+ [

### GitHub Acciones
](#workflows-actions-types-github)
+ [

### Acciones de terceros
](#workflows-actions-types-3p)

### CodeCatalyst acciones
<a name="workflows-actions-types-cc"></a>

Una *CodeCatalyst acción* es una acción creada, mantenida y totalmente respaldada por el equipo de CodeCatalyst desarrollo.

Existen CodeCatalyst acciones para crear, probar e implementar aplicaciones, así como para realizar diversas tareas, como la invocación de una función. AWS Lambda 

Están disponibles las siguientes acciones: CodeCatalyst 
+ **Build**

  Esta acción crea artefactos y ejecuta pruebas unitarias en un contenedor de Docker. Para obtener más información, consulte [Cómo añadir la acción de compilación](build-add-action.md).
+ **Test**

  Esta acción ejecuta pruebas de integración y de sistema con la aplicación o los artefactos. Para obtener más información, consulte [Cómo añadir la acción de prueba](test-add-action.md).
+ **Amazon S3 publish**

  Esta acción copia los artefactos de la aplicación en un bucket de Amazon S3. Para obtener más información, consulte [Publicación de archivos en Amazon S3 con un flujo de trabajo](s3-pub-action.md).
+ **AWS CDK bootstrap**

  Esta acción proporciona los recursos que se AWS CDK necesitan para implementar su aplicación CDK. Para obtener más información, consulte [Cómo iniciar una AWS CDK aplicación con un flujo de trabajo](cdk-boot-action.md).
+ **AWS CDK implementar**

  Esta acción sintetiza e implementa una AWS Cloud Development Kit (AWS CDK) aplicación. Para obtener más información, consulte [Implementación de una AWS CDK aplicación con un flujo de trabajo](cdk-dep-action.md).
+ **AWS Lambda invocar**

  Esta acción invoca una AWS Lambda función. Para obtener más información, consulte [Invocación de una función de Lambda mediante un flujo de trabajo](lam-invoke-action.md).
+ **GitHub Acciones**

  Esta acción es una *CodeCatalyst*acción que permite ejecutar GitHub acciones dentro de un CodeCatalyst flujo de trabajo. Para obtener más información, consulte [Invocación de una función de Lambda mediante un flujo de trabajo](lam-invoke-action.md).
+ **Implemente CloudFormation una pila**

  Esta acción despliega CloudFormation pilas. Para obtener más información, consulte [Implementación de una CloudFormation pila](deploy-action-cfn.md).
+ **Deploy to Amazon ECS**

  Esta acción registra una definición de tarea de Amazon ECS y la implementa en un servicio de Amazon ECS. Para obtener más información, consulte [Implementación en Amazon ECS con un flujo de trabajo](deploy-action-ecs.md).
+ **Implementar en el clúster de Kubernetes**

  Esta acción implementa una aplicación en un clúster de Kubernetes. Para obtener más información, consulte [Implementación en Amazon EKS con un flujo de trabajo](deploy-action-eks.md).
+ **Render Amazon ECS task definition**

  Esta acción inserta un URI de imagen de contenedor en un archivo JSON de definición de tareas de Amazon ECS y crea un nuevo archivo de definición de tareas. Para obtener más información, consulte [Modificación de una definición de tarea de Amazon ECS](render-ecs-action.md).

La documentación de CodeCatalyst las acciones está disponible en esta guía y en el archivo readme de cada acción.

Para obtener información sobre las CodeCatalyst acciones disponibles y cómo añadir una a un flujo de trabajo, consulte[Cómo añadir una acción a un flujo de trabajo](workflows-add-action.md).

### CodeCatalyst Acciones de Labs
<a name="workflows-actions-types-cc-labs"></a>

Una *acción de CodeCatalyst Labs* es una acción que forma parte de Amazon CodeCatalyst Labs, un campo de pruebas para aplicaciones experimentales. CodeCatalyst Las acciones de Labs se han desarrollado para mostrar las integraciones con AWS los servicios.

Están disponibles las siguientes acciones de CodeCatalyst Labs:
+ **Implementar en AWS Amplify Hosting**

  Esta acción implementa una aplicación en Amplify Hosting.
+ **Implementar en AWS App Runner**

  Esta acción implementa la imagen más reciente en un repositorio de imágenes de origen en App Runner.
+ **Implemente en Amazon CloudFront y Amazon S3**

  Esta acción despliega una aplicación en CloudFront Amazon S3.
+ **Implemente con AWS SAM**

  Esta acción implementa la aplicación sin servidor con AWS Serverless Application Model (AWS SAM).
+ **Invalidar Amazon Cache CloudFront **

  Esta acción invalida la CloudFront memoria caché de un conjunto de rutas determinado.
+ **Outgoing Webhook**

  Esta acción permite a los usuarios enviar mensajes dentro de un flujo de trabajo a un servidor web arbitrario mediante una solicitud HTTPS.
+ **Publicar en AWS CodeArtifact**

  Esta acción publica los paquetes en un CodeArtifact repositorio.
+ **Publish to Amazon SNS**

  Esta acción permite a los usuarios integrarse con Amazon SNS creando un tema, publicando en un tema o suscribiéndose a un tema.
+ **Push to Amazon ECR**

  Esta acción crea y publica una imagen de Docker en un repositorio de Amazon Elastic Container Registry (Amazon ECR).
+ **Escanea con Amazon CodeGuru Security**

  Esta acción crea un archivo zip con una ruta de código configurada y utiliza la CodeGuru seguridad para ejecutar un escaneo de código.
+ **Terraform Community Edition**

  Esta acción ejecuta Terraform Community Edition y las operaciones `plan` y `apply`.

La documentación de las acciones de CodeCatalyst Labs está disponible en el archivo readme de cada acción.

Para obtener información sobre cómo añadir una acción de CodeCatalyst Labs a un flujo de trabajo y ver su archivo readme, consulte. [Cómo añadir una acción a un flujo de trabajo](workflows-add-action.md)

### GitHub Acciones
<a name="workflows-actions-types-github"></a>

Una *GitHub acción* se parece mucho a una [CodeCatalyst acción](#workflows-actions-types-cc), excepto que se desarrolló para usarse con GitHub flujos de trabajo. Para obtener más información sobre GitHub las acciones, consulte la documentación sobre [GitHub las acciones](https://docs.github.com/en/actions).

Puede utilizar GitHub las acciones junto con las CodeCatalyst acciones nativas en un CodeCatalyst flujo de trabajo.

Para tu comodidad, la CodeCatalyst consola proporciona acceso a varias GitHub acciones populares. También puedes usar cualquier GitHub acción que aparezca en el [GitHub Marketplace](https://github.com/marketplace/actions) (sujeto a algunas limitaciones).

La documentación de GitHub las acciones está disponible en el archivo readme de cada acción.

Para obtener más información, consulte [Integración con GitHub acciones](integrations-github-actions.md).

### Acciones de terceros
<a name="workflows-actions-types-3p"></a>

Una *acción de terceros* es una acción creada por un proveedor externo y que está disponible en la CodeCatalyst consola. Entre los ejemplos de acciones de terceros se incluyen las acciones **Mend SCA** y **SonarCloud Scan**, creadas por Mend y Sonar, respectivamente.

La documentación de las acciones de terceros está disponible en el archivo readme de cada acción. El proveedor externo también podría proporcionar documentación adicional.

Para obtener información sobre cómo añadir una acción de terceros a un flujo de trabajo y ver su archivo readme, consulte [Cómo añadir una acción a un flujo de trabajo](workflows-add-action.md).

# Cómo añadir una acción a un flujo de trabajo
<a name="workflows-add-action"></a>

Siga estas instrucciones para agregar una acción a un flujo de trabajo y después configurarla.

**Cómo añadir y configurar una acción**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. En la parte superior izquierda, seleccione **\$1 Acciones**. Aparece el catálogo **Acciones**.

1. En la lista desplegable, lleve a cabo una de las siguientes opciones:
   + Elige **Amazon CodeCatalyst** para ver [CodeCatalyst](workflows-actions.md#workflows-actions-types-cc), [CodeCatalyst Labs](workflows-actions.md#workflows-actions-types-cc-labs) o acciones [de terceros](workflows-actions.md#workflows-actions-types-3p).
     + CodeCatalyst las acciones tienen una AWS etiqueta **de «by**».
     + CodeCatalyst Las acciones de Labs tienen **la etiqueta by CodeCatalyst Labs**.
     + Las acciones de terceros tienen una *vendor* etiqueta de «**by**», donde *vendor* aparece el nombre del proveedor externo.
   + Elige **GitHub**ver una [lista seleccionada de GitHub acciones](integrations-github-action-add-curated.md).

1. En el catálogo de acciones, busque una acción y lleve a cabo una de las siguientes opciones:
   + Elija el signo más (**\$1**) para añadir la acción a su flujo de trabajo.
   + Elija el nombre de la acción para ver su archivo readme.

1. Configure la acción. Seleccione **Visual** para usar el editor visual o **YAML** para usar el editor de YAML. Para obtener instrucciones detalladas, consulte los siguientes enlaces.

   Para obtener instrucciones sobre cómo añadir [CodeCatalystacciones](workflows-actions.md#workflows-actions-types-cc), consulta:
   + [Cómo añadir la acción de compilación](build-add-action.md)
   + [Cómo añadir la acción de prueba](test-add-action.md)
   + [Incorporación de la acción 'Implementar en Amazon ECS'](deploy-action-ecs-adding.md)
   + [Incorporación de la acción 'Implementar en clúster de Kubernetes'](deploy-action-eks-adding.md)
   + [Añadir la acción «Desplegar CloudFormation pila»](deploy-action-cfn-adding.md)
   + [Añadir la acción «AWS CDK desplegar»](cdk-dep-action-add.md)
   + [Añadir la acción 'AWS CDK bootstrap'](cdk-boot-action-add.md)
   + [Cómo añadir la acción Amazon S3 publish](s3-pub-action-add.md)
   + [Añadir la acción «AWS Lambda invocar»](lam-invoke-action-add.md)
   + [Cómo añadir la acción Render Amazon ECS task definition](render-ecs-action-add.md)

   Para obtener instrucciones sobre cómo añadir [acciones de CodeCatalyst Labs](workflows-actions.md#workflows-actions-types-cc-labs), consulta:
   + El archivo readme de la acción. Para encontrar el archivo readme, seleccione el nombre de la acción en el catálogo de acciones.

   Para obtener instrucciones sobre cómo añadir [GitHub acciones](workflows-actions.md#workflows-actions-types-github), consulta:
   + [Integración con GitHub acciones](integrations-github-actions.md)

   Para obtener instrucciones sobre cómo añadir [acciones de terceros](workflows-actions.md#workflows-actions-types-3p), consulte:
   + El archivo readme de la acción. Para encontrar el archivo readme, seleccione el nombre de la acción en el catálogo de acciones.

1. (Opcional) Seleccione **Validar** para asegurarse de que el código de YAML sea válido.

1. Seleccione **Confirmar** para confirmar los cambios.

# Eliminación de una acción de un flujo de trabajo
<a name="workflows-delete-action"></a>

Siga estas instrucciones para eliminar una acción de un flujo de trabajo.

------
#### [ Visual ]

**Eliminación de una acción mediante el editor visual**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, en la acción que desee eliminar, seleccione el icono de puntos suspensivos verticales (![\[Ellipsis.\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/images/flows/elipsis.png)) y haga clic en **Eliminar**.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Eliminación de una acción mediante el editor de YAML**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. Busque la sección del YAML que contenga la acción que quiera eliminar.

   Seleccione la sección y pulse la tecla Supr del teclado.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Desarrollo de una acción personalizada
<a name="workflows-custom-action"></a>

Puede desarrollar una acción personalizada para utilizarla en sus flujos de trabajo mediante el kit de desarrollo de CodeCatalyst acciones (ADK). A continuación, puede publicar la acción en el catálogo de CodeCatalyst acciones para que otros CodeCatalyst usuarios puedan verla y utilizarla en sus flujos de trabajo.

**Para desarrollar, probar y publicar una acción (tareas de alto nivel)**

1. Instale las herramientas y los paquetes necesarios para desarrollar una acción.

1. Crea un CodeCatalyst repositorio para almacenar el código de acción.

1. Inicialice la acción. Aquí se indican los archivos de origen necesarios para la acción, incluido un archivo de definición de acciones (`action.yml`) que puede actualizar con su propio código.

1. Arranque el código de la acción para obtener las herramientas y bibliotecas necesarias para compilar, probar y publicar el proyecto de acción.

1. Crea la acción en tu ordenador local y envía los cambios a tu CodeCatalyst repositorio.

1. Prueba la acción con pruebas unitarias a nivel local y ejecuta en él el flujo de trabajo generado por ADK. CodeCatalyst

1. Publica la acción en el catálogo de CodeCatalyst acciones pulsando el botón **Publicar** de la CodeCatalyst consola.

Para ver los pasos detallados, consulta la [Guía para desarrolladores del Amazon CodeCatalyst Action Development Kit](https://docs.aws.amazon.com/codecatalyst/latest/adk/what-is-action-development-kit.html).

# Agrupación de acciones en grupos de acciones
<a name="workflows-group-actions"></a>

Un *grupo de acciones* contiene una o más acciones. Agrupar las acciones en grupos de acciones le ayuda a mantener el flujo de trabajo organizado y también le permite configurar las dependencias entre los distintos grupos.

**nota**  
No puede anidar grupos de acciones dentro de otros grupos de acciones o acciones.

**Topics**
+ [

## Definición de un grupo de acciones
](#workflows-define-action-group)
+ [

# Ejemplo: Definición de dos grupos de acciones
](workflows-group-actions-example.md)

## Definición de un grupo de acciones
<a name="workflows-define-action-group"></a>

Usa las siguientes instrucciones para definir un grupo de CodeCatalyst acciones.

------
#### [ Visual ]

*No disponible. Seleccione YAML para ver las instrucciones de YAML.*

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

**Definición de un grupo**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En `Actions`, agregue un código similar al siguiente:

   ```
   Actions:
     action-group-name: 
       Actions:
         action-1:
           Identifier: aws/build@v1
           Configuration:
             ...
         action-2:
           Identifier: aws/build@v1
           Configuration:
             ...
   ```

   Para ver otro ejemplo, consulte [Ejemplo: Definición de dos grupos de acciones](workflows-group-actions-example.md). Para obtener más información, consulte la descripción de la propiedad `action-group-name` en la [Acciones](workflow-reference.md#actions-reference) de la [Definición de flujo de trabajo en YAML](workflow-reference.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Ejemplo: Definición de dos grupos de acciones
<a name="workflows-group-actions-example"></a>

El siguiente ejemplo muestra cómo definir dos grupos de CodeCatalyst acción de Amazon: `BuildAndTest` y`Deploy`. El grupo `BuildAndTest` incluye dos acciones (`Build` y `Test`) y el grupo `Deploy` también incluye dos acciones (`DeployCloudFormationStack` y `DeployToECS`).

```
Actions:
  BuildAndTest: # Action group 1
    Actions:
      Build:
        Identifier: aws/build@v1
        Configuration:
          ...
      Test:
        Identifier: aws/managed-test@v1
        Configuration:
  Deploy: #Action group 2
    Actions:
      DeployCloudFormationStack:
        Identifier: aws/cfn-deploy@v1
        Configuration:
          ...
      DeployToECS:
        Identifier: aws/ecs-deploy@v1
        Configuration:
          ...
```

# Secuenciación de acciones
<a name="workflows-depends-on"></a>

De forma predeterminada, al añadir acciones a un flujo de trabajo, se añaden una junto a la otra en el [editor visual](workflow.md#workflow.editors). Esto significa que las acciones se ejecutarán en paralelo al iniciar una ejecución de flujo de trabajo. Si desea que las acciones se ejecuten en orden secuencial (y aparezcan verticalmente en el editor visual), debe configurar las dependencias entre ellas. Por ejemplo, puede configurar una acción `Test` para que dependa de la acción `Build`, de modo que la acción de prueba se ejecute después de la acción Build.

Puede configurar las dependencias entre acciones y grupos de acciones. También puede configurar one-to-many las dependencias para que una acción dependa de varias otras para poder empezar. Consulte las directrices de [Configuración de dependencias entre acciones](workflows-depends-on-set-up.md) para asegurarse de que la configuración de su dependencia se ajuste a la sintaxis de YAML del flujo de trabajo.

**Topics**
+ [

# Ejemplos de cómo configurar las dependencias entre acciones
](workflows-depends-on-examples.md)
+ [

# Configuración de dependencias entre acciones
](workflows-depends-on-set-up.md)

# Ejemplos de cómo configurar las dependencias entre acciones
<a name="workflows-depends-on-examples"></a>

Los siguientes ejemplos demuestran cómo configurar las dependencias entre acciones y grupos en el archivo de definición del flujo de trabajo.

**Topics**
+ [

## Ejemplo: Configuración de una dependencia simple
](#workflows-depends-on-example-simple)
+ [

## Ejemplo: Configuración de un grupo de acciones para que dependa de una acción
](#workflows-depends-on-example-action-groups-actions)
+ [

## Ejemplo: Configuración de un grupo de acciones para que dependa de otro grupo de acciones
](#workflows-depends-on-example-two-action-groups)
+ [

## Ejemplo: Configuración de un grupo de acciones para que dependa de múltiples acciones
](#workflows-depends-on-example-advanced)

## Ejemplo: Configuración de una dependencia simple
<a name="workflows-depends-on-example-simple"></a>

El siguiente ejemplo muestra cómo configurar una acción `Test` para que dependa de la acción `Build` con la propiedad `DependsOn`.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Configuration:
      ...
  Test:
    DependsOn:
      - Build
    Identifier: aws/managed-test@v1
     Configuration:
       ...
```

## Ejemplo: Configuración de un grupo de acciones para que dependa de una acción
<a name="workflows-depends-on-example-action-groups-actions"></a>

El siguiente ejemplo muestra cómo configurar un grupo de acciones `DeployGroup` para que dependa de la acción `FirstAction`. Observe que la acción y el grupo de acciones están en el mismo nivel.

```
Actions:
  FirstAction: #An action outside an action group
    Identifier: aws/github-actions-runner@v1
    Configuration:
      ...
  DeployGroup: #An action group containing two actions
    DependsOn: 
      - FirstAction
    Actions:
      DeployAction1:
      ...
      DeployAction2:
      ...
```

## Ejemplo: Configuración de un grupo de acciones para que dependa de otro grupo de acciones
<a name="workflows-depends-on-example-two-action-groups"></a>

El siguiente ejemplo muestra cómo configurar un grupo de acciones `DeployGroup` para que dependa del grupo de acciones `BuildAndTestGroup`. Observe que los grupos de acciones están en el mismo nivel.

```
Actions:
  BuildAndTestGroup: # Action group 1
    Actions:
      BuildAction:
      ...
      TestAction:
      ...
  DeployGroup: #Action group 2
    DependsOn: 
      - BuildAndTestGroup
    Actions:
      DeployAction1:
      ...
      DeployAction2:
      ...
```

## Ejemplo: Configuración de un grupo de acciones para que dependa de múltiples acciones
<a name="workflows-depends-on-example-advanced"></a>

El siguiente ejemplo muestra cómo configurar un grupo de acciones `DeployGroup` para que dependa de la acción `FirstAction`, la acción `SecondAction` y el grupo de acciones `BuildAndTestGroup`. Observe que `DeployGroup` está al mismo nivel que `FirstAction`, `SecondAction` y `BuildAndTestGroup`.

```
Actions:
  FirstAction: #An action outside an action group
    ...
  SecondAction: #Another action 
    ...
  BuildAndTestGroup: #Action group 1
    Actions:
      Build:
      ...
      Test:
      ...
  DeployGroup: #Action group 2
    DependsOn: 
      - FirstAction
      - SecondAction
      - BuildAndTestGroup
    Actions:
      DeployAction1:
      ...
      DeployAction2:
      ...
```

# Configuración de dependencias entre acciones
<a name="workflows-depends-on-set-up"></a>

Utilice las siguientes instrucciones para configurar las dependencias entre las acciones de un flujo de trabajo.

Siga estas directrices al configurar las dependencias:
+ Si una acción está dentro de un grupo, esa acción solo puede depender de otras acciones dentro del mismo grupo.
+ Las acciones y los grupos de acciones pueden depender de otras acciones y grupos de acciones *del mismo nivel* en la jerarquía de YAML, pero *no* de un nivel diferente.

------
#### [ Visual ]

**Configuración de dependencias con el editor visual**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, elija la acción que dependerá de otra acción.

1. Seleccione la pestaña **Entradas**.

1. En **Depende de (opcional)**, haga lo siguiente:

   Especifique la acción, el grupo de acciones o la puerta que debe ejecutarse correctamente para que esta acción se ejecute.

   Para obtener más información sobre la funcionalidad depende de, consulte [Secuenciación de acciones](workflows-depends-on.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Configuración de dependencias con el editor de YAML**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En una acción que dependerá de otra, agregue un código similar al siguiente:

   ```
   action-name:
     DependsOn:
       - action-1
   ```

   Para obtener más ejemplos, consulte [Ejemplos de cómo configurar las dependencias entre acciones](workflows-depends-on-examples.md). Para obtener pautas generales, consulte [Configuración de dependencias entre acciones](#workflows-depends-on-set-up). Para obtener más información, consulte la descripción de la propiedad `DependsOn` en la [Definición de flujo de trabajo en YAML](workflow-reference.md) de la acción.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Cómo compartir artefactos y archivos entre acciones
<a name="workflows-working-artifacts"></a>

Un *artefacto* es el resultado de una acción de flujo de trabajo y, por lo general, consiste en una carpeta o un archivo de archivos. Los artefactos son importantes porque permiten compartir archivos e información entre acciones.

Por ejemplo, puede que tenga una acción de creación que *genere* un archivo `sam-template.yml`, pero que quiera una acción de implementación para *usarlo*. En este escenario, utilizaría un artefacto para permitir que la acción de creación comparta el archivo `sam-template.yml` con la acción de implementación. El código podría tener un aspecto similar al siguiente:

```
Actions:
  BuildAction:
    Identifier: aws/build@v1
    Steps:
      - Run: sam package --output-template-file sam-template.yml
    Outputs:
      Artifacts:
        - Name: MYARTIFACT
          Files:
            - sam-template.yml
  DeployAction:
    Identifier: aws/cfn-deploy@v1  
    Inputs:
      Artifacts:
        - MYARTIFACT
    Configuration:
      template: sam-template.yml
```

En el código anterior, la acción de creación (`BuildAction`) genera un archivo `sam-template.yml` y después lo añade a un artefacto de salida denominado `MYARTIFACT`. Una acción de implementación posterior (`DeployAction`) especifica `MYARTIFACT` como entrada, lo que le da acceso al archivo `sam-template.yml`.

**Topics**
+ [

## ¿Puedo compartir artefactos sin especificarlos como salidas y entradas?
](#workflows-working-artifacts-share)
+ [

## ¿Puedo compartir artefactos entre flujos de trabajo?
](#workflows-working-artifacts-share-wf)
+ [

# Ejemplos de artefactos
](workflows-working-artifacts-ex.md)
+ [

# Definición de un artefacto de salida
](workflows-working-artifacts-output.md)
+ [

# Definición de un artefacto de entrada
](workflows-working-artifacts-refer.md)
+ [

# Referencia a archivos en un artefacto
](workflows-working-artifacts-refer-files.md)
+ [

# Descarga de artefactos
](workflows-download-workflow-outputs.md)

## ¿Puedo compartir artefactos sin especificarlos como salidas y entradas?
<a name="workflows-working-artifacts-share"></a>

Sí, puede compartir artefactos entre acciones sin especificarlos en las secciones `Outputs` y `Inputs` del código de YAML de sus acciones. Para ello, debe activar el uso compartido de computación. Para obtener más información sobre el uso compartido de computación y cómo especificar los artefactos cuando está activado, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md). 

**nota**  
Si bien la característica de computación compartida le permite simplificar el código de YAML del flujo de trabajo al eliminar la necesidad de usar las secciones `Outputs` y `Inputs`, esta característica tiene limitaciones que debe tener en cuenta antes de activarla. Para obtener información acerca de esas limitaciones, consulte [Consideraciones sobre el uso compartido de recursos de computación](compute-sharing.md#compare-compute-sharing).

## ¿Puedo compartir artefactos entre flujos de trabajo?
<a name="workflows-working-artifacts-share-wf"></a>

No, no puede compartir artefactos entre diferentes flujos de trabajo; sin embargo, puede compartir artefactos entre acciones dentro del mismo flujo de trabajo.

# Ejemplos de artefactos
<a name="workflows-working-artifacts-ex"></a>

Los siguientes ejemplos muestran cómo generar, introducir y hacer referencia a los artefactos en el archivo de definición del CodeCatalyst flujo de trabajo de Amazon.

**Topics**
+ [

## Ejemplo: Generación de un artefacto
](#workflows-working-artifacts-ex-basic)
+ [

## Ejemplo: Introducción de un artefacto generado por otra acción
](#workflows-working-artifacts-ex-ref)
+ [

## Ejemplo: Referencia a archivos en varios artefactos
](#workflows-working-artifacts-ex-ref-file)
+ [

## Ejemplo: Referencia a un archivo en un único artefacto
](#workflows-working-artifacts-ex-ref-file-one)
+ [

## Ejemplo: hacer referencia a un archivo en un artefacto cuando hay un WorkflowSource
](#workflows-working-artifacts-ex-ref-file-wf-source)
+ [

## Ejemplo: Referencia a un archivo en un artefacto cuando hay un grupo de acciones
](#workflows-working-artifacts-ex-groups)

## Ejemplo: Generación de un artefacto
<a name="workflows-working-artifacts-ex-basic"></a>

En el siguiente ejemplo se muestra cómo generar un artefacto que incluye dos archivos .jar.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Outputs:
      Artifacts:
        - Name: ARTIFACT1
          Files:
            - build-output/file1.jar
            - build-output/file2.jar
```

## Ejemplo: Introducción de un artefacto generado por otra acción
<a name="workflows-working-artifacts-ex-ref"></a>

En el siguiente ejemplo, se muestra cómo generar un artefacto llamado `ARTIFACT4` en `BuildActionA` e introducirlo en `BuildActionB`.

```
Actions:
  BuildActionA:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ARTIFACT4
          Files:
            - build-output/file1.jar
            - build-output/file2.jar
  BuildActionB:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ARTIFACT4
    Configuration:
```

## Ejemplo: Referencia a archivos en varios artefactos
<a name="workflows-working-artifacts-ex-ref-file"></a>

El siguiente ejemplo muestra cómo generar dos artefactos denominados `ART5` y `ART6` en `BuildActionC` y, a continuación, hacer referencia a dos archivos denominados `file5.txt` (en el artefacto `ART5`) y `file6.txt` (en el artefacto `ART6`) en `BuildActionD` (bajo `Steps`).

**nota**  
Para obtener más información sobre la referencia a archivos‎, consulte ‎[Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

**nota**  
Aunque en el ejemplo se muestra el uso del prefijo `$CATALYST_SOURCE_DIR_ART5`, puede omitirlo. Esto se debe a que `ART5` es la *entrada principal*. Para obtener más información acerca de la entrada principal, consulte [Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md). 

```
Actions:
  BuildActionC:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART5
          Files:
            - build-output/file5.txt
        - Name: ART6
          Files:
            - build-output/file6.txt
  BuildActionD:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ART5
        - ART6
    Configuration:
      Steps:
        - run: cd $CATALYST_SOURCE_DIR_ART5/build-output && cat file5.txt
        - run: cd $CATALYST_SOURCE_DIR_ART6/build-output && cat file6.txt
```

## Ejemplo: Referencia a un archivo en un único artefacto
<a name="workflows-working-artifacts-ex-ref-file-one"></a>

El siguiente ejemplo muestra cómo generar un artefacto denominado `ART7` en `BuildActionE` y después hacer referencia a `file7.txt` (en el artefacto `ART7`) en `BuildActionF` (bajo `Steps`).

Observe que la referencia no requiere el `$CATALYST_SOURCE_DIR_` *artifact-name* prefijo que aparece delante del `build-output` directorio como lo hacía antes. [Ejemplo: Referencia a archivos en varios artefactos](#workflows-working-artifacts-ex-ref-file) Esto se debe a que solo hay un elemento especificado en `Inputs`.

**nota**  
Para obtener más información sobre la referencia a archivos‎, consulte ‎[Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

```
Actions:
  BuildActionE:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART7
          Files:
            - build-output/file7.txt
  BuildActionF:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ART7
    Configuration:
      Steps:
        - run: cd build-output && cat file7.txt
```

## Ejemplo: hacer referencia a un archivo en un artefacto cuando hay un WorkflowSource
<a name="workflows-working-artifacts-ex-ref-file-wf-source"></a>

El siguiente ejemplo muestra cómo generar un artefacto denominado `ART8` en `BuildActionG` y después hacer referencia a `file8.txt` (en el artefacto `ART8`) en `BuildActionH` (bajo `Steps`).

Observe cómo la referencia requiere el `$CATALYST_SOURCE_DIR_` *artifact-name* prefijo, como ocurrió en. [Ejemplo: Referencia a archivos en varios artefactos](#workflows-working-artifacts-ex-ref-file) Esto se debe a que hay varios elementos especificados en `Inputs` (una fuente y un artefacto), por lo que necesitará el prefijo para indicar dónde buscar el archivo.

**nota**  
Para obtener más información sobre la referencia a archivos‎, consulte ‎[Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

```
Actions:
  BuildActionG:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART8
          Files:
            - build-output/file8.txt
  BuildActionH:
    Identifier: aws/build@v1  
    Inputs:
      Sources:
        - WorkflowSource
      Artifacts:
        - ART8
    Configuration:
      Steps:
        - run: cd $CATALYST_SOURCE_DIR_ART8/build-output && cat file8.txt
```

## Ejemplo: Referencia a un archivo en un artefacto cuando hay un grupo de acciones
<a name="workflows-working-artifacts-ex-groups"></a>

El siguiente ejemplo muestra cómo generar un artefacto denominado `ART9` en `ActionGroup1`, `ActionI`, y después hacer referencia a `file9.txt` (en el artefacto `ART9`) en `ActionJ`.

Para obtener más información sobre la referencia a archivos‎, consulte ‎[Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

```
Actions:
  ActionGroup1:
    Actions:
      ActionI:
        Identifier: aws/build@v1
        Outputs:
          Artifacts:
            - Name: ART9
              Files:
                - build-output/file9.yml
      ActionJ:
        Identifier: aws/cfn-deploy@v1 
        Inputs:
          Sources:
            - WorkflowSource
          Artifacts:
            - ART9
        Configuration:
          template: /artifacts/ActionGroup1@ActionJ/ART9/build-output/file9.yml
```

# Definición de un artefacto de salida
<a name="workflows-working-artifacts-output"></a>

Sigue las siguientes instrucciones para definir el artefacto que quieres que genere una CodeCatalyst acción de Amazon. Este artefacto estará disponible posteriormente para que lo utilicen otras acciones.

**nota**  
No todas las acciones son compatibles con artefactos de salida. Para determinar si su acción es compatible, siga las instrucciones del editor visual que aparecen a continuación y compruebe si la acción incluye un botón de **Artefactos de salida** en la pestaña **Salidas**. En caso afirmativo, los artefactos de salida son compatibles. 

------
#### [ Visual ]

**Definición de un artefacto de salida mediante el editor visual**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **Visual**.

1. En el diagrama del flujo de trabajo, elija la acción que producirá el artefacto.

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

1. En **Artefactos**, seleccione **Agregar el artefacto**.

1. Seleccione **Agregar el artefacto** e introduzca la información en los campos de la siguiente manera.

    **Nombre del artefacto de compilación** 

   Especifique el nombre de un artefacto generado por la acción. Los nombres de los artefactos deben ser únicos en un flujo de trabajo y están limitados a caracteres alfanuméricos (a-z, A-Z, 0-9) y guiones bajos (\$1). No se admiten espacios, guiones (-) ni otros caracteres especiales. No puede utilizar comillas para permitir espacios, guiones y otros caracteres especiales en los nombres de los artefactos de salida.

   Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

    **Archivos producidos por compilación** 

   Especifique los archivos que se CodeCatalyst incluyen en el artefacto que genera la acción. Estos archivos los genera la acción del flujo de trabajo cuando se ejecuta y también están disponibles en el repositorio de código fuente. Las rutas de los archivos pueden residir en un repositorio de código fuente o en un artefacto de una acción anterior, y son relativas a la raíz del repositorio de código fuente o del artefacto. Puede utilizar patrones glob para especificar las rutas. Ejemplos:
   + Para especificar un único archivo que esté en la raíz de la ubicación de compilación o de la ubicación del repositorio de código fuente, utilice `my-file.jar`.
   + Para especificar un único archivo en un subdirectorio, use `directory/my-file.jar` o `directory/subdirectory/my-file.jar`.
   + Para especificar todos los archivos, utilice `"**/*"`. El patrón glob de `**` indica que debe coincidir con cualquier número de subdirectorios.
   + Para especificar todos los archivos y directorios de un directorio denominado `directory`, utilice `"directory/**/*"`. El patrón glob de `**` indica que debe coincidir con cualquier número de subdirectorios.
   + Para especificar todos los archivos de un directorio denominado `directory`, pero no ninguno de sus subdirectorios, utilice `"directory/*"`. 
**nota**  
Si la ruta del archivo incluye uno o más asteriscos (`*`) u otro carácter especial, escriba la ruta entre comillas dobles (`""`). Para obtener más información sobre los caracteres especiales, consulte [Pautas y convenciones de sintaxis](workflow-reference.md#workflow.terms.syntax.conv).

   Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).
**nota**  
Puede que tenga que añadir un prefijo a la ruta del archivo para indicar en qué artefacto u origen debe encontrarlo. Para obtener más información, consulte [Referencia a los archivos del repositorio de código fuente](workflows-sources-reference-files.md) y [Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Definición de un artefacto de salida mediante el editor de YAML**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **YAML**.

1. En una acción de flujo de trabajo, agregue código similar al siguiente:

   ```
   action-name:
     Outputs:
       Artifacts:
         - Name: artifact-name
           Files:
             - file-path-1
             - file-path-2
   ```

   Para obtener más ejemplos, consulte [Ejemplos de artefactos](workflows-working-artifacts-ex.md). Para obtener más información, consulte la [Definición de flujo de trabajo en YAML](workflow-reference.md) para su acción.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Definición de un artefacto de entrada
<a name="workflows-working-artifacts-refer"></a>

Si quieres usar un artefacto generado por otra CodeCatalyst acción de Amazon, debes especificarlo como entrada para la acción actual. Es posible que pueda especificar varios artefactos como entrada; depende de la acción. Para obtener más información, consulte la [Definición de flujo de trabajo en YAML](workflow-reference.md) para su acción.

**nota**  
No puede hacer referencia a artefactos de otros flujos de trabajo.

Siga estas instrucciones para especificar un artefacto de otra acción como entrada para la acción actual.

**Requisito previo**  
Antes de empezar, asegúrese de que ha generado el artefacto desde la otra acción. Para obtener más información, consulte [Definición de un artefacto de salida](workflows-working-artifacts-output.md). Al generar el artefacto, estará disponible para que lo usen otras acciones.

------
#### [ Visual ]

**Especificación de un artefacto como entrada a una acción (editor visual)**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, elija la acción en la que quiera especificar un artefacto como entrada.

1. Seleccione **Entradas**.

1. En **Artefactos (opcional)**, haga lo siguiente:

   Especifique los artefactos de acciones anteriores que desee proporcionar como entrada a esta acción. Estos artefactos ya deben estar definidos como artefactos de salida en acciones anteriores.

   Si no especifica ningún artefacto de entrada, debe especificar al menos un repositorio de código fuente en `action-name/Inputs/Sources`.

   Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).
**nota**  
Si la lista desplegable **Artefactos: opcional** no está disponible (editor visual) o si se producen errores al validar el código de YAML (editor de YAML), es posible que la acción solo admita una entrada. En este caso, intente eliminar la entrada de código fuente.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Especificación de un artefacto como entrada a una acción (editor de YAML)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **YAML**.

1. En la acción en la que desee especificar el artefacto como entrada, añada un código similar al siguiente:

   ```
   action-name:
     Inputs:
       Artifacts:
         - artifact-name
   ```

   Para obtener más ejemplos, consulte [Ejemplos de artefactos](workflows-working-artifacts-ex.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Referencia a archivos en un artefacto
<a name="workflows-working-artifacts-refer-files"></a>

Si tienes un archivo que reside dentro de un artefacto y necesitas hacer referencia a este archivo en una de tus acciones de CodeCatalyst flujo de trabajo de Amazon, completa el siguiente procedimiento.

**nota**  
Véase también [Referencia a los archivos del repositorio de código fuente](workflows-sources-reference-files.md).

------
#### [ Visual ]

*No disponible. Seleccione YAML para ver las instrucciones de YAML.*

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

**Referencia a los archivos de un artefacto (editor de YAML)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la acción en la que quiera hacer referencia a un archivo, agregue un código similar al siguiente:

   ```
   Actions:
     My-action:
       Inputs:
         Sources:
           - WorkflowSource
         Artifacts:
           - artifact-name  
       Configuration:
         template: artifact-path/path/to/file.yml
   ```

   En el código anterior, sustituya:
   + *artifact-name*con el nombre del artefacto.
   + *artifact-path*con un valor de la siguiente tabla.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/workflows-working-artifacts-refer-files.html)

   Para ver ejemplos, consulte [Ejemplos de artefactos](workflows-working-artifacts-ex.md).
**nota**  
Puedes omitir *artifact-path* y simplemente especificar la ruta del archivo relativa al directorio raíz del artefacto si:  
La acción en la que incluye la referencia solo incluye un elemento bajo `Inputs` (por ejemplo, incluye un artefacto de entrada y ningún origen).
El archivo al que quiere hacer referencia reside en la entrada principal. La *entrada principal* es el `WorkflowSource` o el primer artefacto de entrada de la lista, si no hay `WorkflowSource`.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Descarga de artefactos
<a name="workflows-download-workflow-outputs"></a>

Puede descargar e inspeccionar los artefactos generados por las acciones del flujo de trabajo de Amazon CodeCatalyst para solucionar problemas. Hay dos tipos de artefactos que puede descargar:
+ **Artefactos de origen**: artefactos que contienen una instantánea del contenido del repositorio de código fuente tal y como estaba cuando se inició la ejecución.
+ **Artefactos de flujo de trabajo**: artefactos definidos en la propiedad `Outputs` del archivo de configuración del flujo de trabajo.

**Descarga de los artefactos generados por el flujo de trabajo**

1. Abra la consola de CodeCatalyst en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. En el nombre del flujo de trabajo, seleccione **Ejecuciones**.

1. En **Historial de ejecuciones**, en la columna **ID de ejecución**, seleccione una ejecución. Por ejemplo, `Run-95a4d`.

1. Bajo el nombre de la ejecución, seleccione **Artefactos**.

1. Junto a un artefacto, seleccione **Descargar**. Se descargará un archivo de almacenamiento. Su nombre de archivo consta de siete caracteres aleatorios.

1. Extraiga el archivo de almacenamiento con la utilidad de extracción de archivos que elija.

# Especificación de la versión de la acción que se va a utilizar
<a name="workflows-action-versions"></a>

De forma predeterminada, cuando añades una acción a un flujo de trabajo, Amazon CodeCatalyst añade la versión completa al archivo de definición del flujo de trabajo con el siguiente formato:

 `vmajor.minor.patch` 

Por ejemplo:

```
My-Build-Action:
  Identifier: aws/build@v1.0.0
```

Puede acortar la versión completa de la propiedad `Identifier` para que el flujo de trabajo utilice siempre la versión secundaria o de parche más reciente para la acción.

Por ejemplo, si especifica:

```
My-CloudFormation-Action:
  Identifier: aws/cfn-deploy@v1.0
```

... y la última versión del parche es `1.0.4`, la acción utilizará la `1.0.4`. Si se lanza una versión posterior, por ejemplo `1.0.5`, la acción utilizará la `1.0.5`. Si se lanza una versión secundaria, por ejemplo `1.1.0`, la acción seguirá utilizando la `1.0.5`.

Para obtener instrucciones detalladas sobre cómo especificar las versiones, consulte uno de los siguientes temas.

Siga estas instrucciones para indicar qué versión de una acción quiere que utilice su flujo de trabajo. Puede especificar la última versión principal o secundaria, o una versión de parche específica.

Recomendamos usar la versión secundaria o de parche más reciente de una acción.

------
#### [ Visual ]

 *No disponible. Seleccione YAML para ver las instrucciones de YAML.* 

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

**Configuración de un flujo de trabajo para que utilice la versión más reciente de una acción o una versión de parche específica**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. Busque la acción cuya versión quiera editar.

1. Busque la propiedad `Identifier` de la acción y establezca la versión en una de las siguientes opciones:
   + action-identifier @v*major*: utilice esta sintaxis para que el flujo de trabajo utilice una versión principal específica y permita elegir automáticamente las versiones secundarias y de parche más recientes.
   + identificador de acción @v. *major* *minor*— Utilice esta sintaxis para que el flujo de trabajo utilice una versión secundaria específica y permita elegir automáticamente la última versión del parche.
   + identificador de acción @v. *major* *minor*. *patch* — Utilice esta sintaxis para que el flujo de trabajo utilice una versión de parche específica.
**nota**  
Si no tiene claro qué versiones están disponibles, consulte [Enumeración de las versiones disponibles de una acción](workflows-action-versions-determine.md).
**nota**  
No puede omitir la versión principal.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Enumeración de las versiones disponibles de una acción
<a name="workflows-action-versions-determine"></a>

Siga estas instrucciones para determinar qué versiones de una acción están disponibles para que las utilice en un flujo de trabajo.

------
#### [ Visual ]

**Determinación de qué versiones de una acción están disponibles**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. Busque la acción cuyas versiones quiera ver:

   1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

   1. Elija el nombre de cualquier flujo de trabajo o cree uno. Para obtener información acerca de la creación de flujos de trabajo, consulte [Creación de un flujo de trabajo](workflows-create-workflow.md).

   1. Elija **Edit (Edición de)**.

   1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

   1. En la lista desplegable, selecciona **Amazon CodeCatalyst** para ver CodeCatalyst, CodeCatalyst Labs y acciones de terceros, o elige **GitHub**ver GitHub acciones seleccionadas.

   1. Busque una acción y seleccione su nombre. No seleccione el signo más (**\$1**).

      Aparecen los detalles de la acción.

1. En el cuadro de diálogo de detalles de la acción, situado en la parte superior derecha, seleccione la lista desplegable **Versiones** para ver una lista de las versiones disponibles de la acción.

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

 *No disponible. Seleccione visual para ver las instrucciones del editor visual.* 

------

# Visualización del código fuente de una acción
<a name="workflows-view-source"></a>

Puede ver el código fuente de una acción para asegurarse de que no contenga código peligroso, vulnerabilidades de seguridad u otros defectos.

Sigue las siguientes instrucciones para ver el código fuente de una acción [CodeCatalyst](workflows-actions.md#workflows-actions-types-cc), de [CodeCatalyst Labs](workflows-actions.md#workflows-actions-types-cc-labs) o [de terceros](workflows-actions.md#workflows-actions-types-3p).

**nota**  
Para ver el código fuente de una [GitHubacción](workflows-actions.md#workflows-actions-types-github), ve a la página de la acción en [GitHub Marketplace](https://github.com/marketplace/actions). En la página se incluye un enlace al repositorio de la acción, donde puede encontrar el código fuente de la acción.

**nota**  
No puedes ver el código fuente de las siguientes CodeCatalyst acciones: [compilar](build-workflow-actions.md), [probar](test-workflow-actions.md) o [GitHub Actions](integrations-github-action-add.md).

**nota**  
AWS no respalda ni garantiza el código de acción de GitHub Actions ni de las acciones de terceros.<a name="workflows-to-view-source-cc"></a>

**Visualización del código fuente de una acción**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. Busque la acción cuyo código quiera ver:

   1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

   1. Elija el nombre de cualquier flujo de trabajo o cree uno. Para obtener información acerca de la creación de flujos de trabajo, consulte [Creación de un flujo de trabajo](workflows-create-workflow.md).

   1. Elija **Edit (Edición de)**.

   1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

   1. En la lista desplegable, selecciona **Amazon CodeCatalyst** para ver CodeCatalyst las acciones de CodeCatalyst Labs y de terceros.

   1. Busque una acción y seleccione su nombre. No seleccione el signo más (**\$1**).

      Aparecen los detalles de la acción.

1. En el cuadro de diálogo de detalles de la acción, cerca de la parte inferior, seleccione **Descargar**.

   Aparecerá una página con el bucket de Amazon S3 en el que se encuentra el código fuente de la acción. Para obtener información sobre Amazon S3, consulte [¿Qué es Amazon S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) en la *Guía del usuario de Amazon Simple Storage Service*.

1. Inspeccione el código para asegurarse de que cumpla sus expectativas de calidad y seguridad. 

# Integración con GitHub acciones
<a name="integrations-github-actions"></a>

Una *GitHub acción* se parece mucho a una [CodeCatalyst acción](workflows-actions.md#workflows-actions-types-cc), excepto que se desarrolló para su uso con GitHub flujos de trabajo. Para obtener más información sobre GitHub las acciones, consulte la documentación sobre [GitHub las acciones](https://docs.github.com/en/actions).

Puede utilizar GitHub las acciones junto con las CodeCatalyst acciones nativas en un CodeCatalyst flujo de trabajo.

Hay dos formas de añadir una GitHub acción a un CodeCatalyst flujo de trabajo:
+ Puedes seleccionar la GitHub acción de una lista seleccionada en la CodeCatalyst consola. Hay varias GitHub acciones populares disponibles. Para obtener más información, consulte [Añadir una GitHub acción seleccionada](integrations-github-action-add-curated.md).
+ Si la GitHub acción que quieres usar no está disponible en la CodeCatalyst consola, puedes añadirla mediante una acción de **GitHub Acciones**.

  Una acción de ***GitHub acciones*** es una *CodeCatalyst acción* que envuelve una GitHub acción y la hace compatible con los CodeCatalyst flujos de trabajo.

  A continuación se muestra un ejemplo de una acción de **GitHub acciones** que envuelve la acción de [SuperLinter](https://github.com/marketplace/actions/super-linter) GitHub:

  ```
  Actions:
    GitHubAction:
      Identifier: aws/github-actions-runner@v1
      Configuration:
        Steps:
          - name: Lint Code Base
            uses: github/super-linter@v4
            env:
              VALIDATE_ALL_CODEBASE: "true"
              DEFAULT_BRANCH: main
  ```

  En el código anterior, la acción CodeCatalyst **GitHub Actions** (identificada por`aws/github-actions-runner@v1`) envuelve la acción Super-Linter (identificada por`github/super-linter@v4`), lo que hace que funcione en un flujo de trabajo. CodeCatalyst 

  Para obtener más información, consulte [Añadir la GitHub acción «Acciones»](integrations-github-action-add.md).

Todas las GitHub acciones, tanto las seleccionadas como las no seleccionadas, deben estar incluidas en una acción de **GitHub Acciones** (`aws/github-actions-runner@v1`), como se muestra en el ejemplo anterior. El encapsulado es necesario para que la acción funcione correctamente. 

**Topics**
+ [

## ¿En qué se diferencian las GitHub acciones de las acciones? CodeCatalyst
](#integrations-github-actions-how-different)
+ [

## ¿ GitHub Las acciones pueden interactuar con otras CodeCatalyst acciones del flujo de trabajo?
](#integrations-github-actions-interactions.title)
+ [

## ¿Qué GitHub acciones puedo usar?
](#integrations-github-actions-supported)
+ [

## Limitaciones de GitHub las acciones en CodeCatalyst
](#integrations-github-actions-limitations)
+ [

## ¿Cómo añado una GitHub acción (pasos de alto nivel)?
](#integrations-github-actions-how-to)
+ [

## ¿Se ejecuta la GitHub acción GitHub?
](#integrations-github-actions-where-it-runs)
+ [

## ¿También puedo usar GitHub flujos de trabajo?
](#integrations-github-actions-workflows-support.title)
+ [

## Imagen en tiempo de ejecución utilizada por la GitHub acción «Acciones»
](#integrations-github-actions-runtime)
+ [

# Tutorial: código de Lint mediante una acción GitHub
](integrations-github-action-tutorial.md)
+ [

# Añadir la GitHub acción «Acciones»
](integrations-github-action-add.md)
+ [

# Añadir una GitHub acción seleccionada
](integrations-github-action-add-curated.md)
+ [

# Exportación de los parámetros de salida de GitHub
](integrations-github-action-export.md)
+ [

# Referencia a parámetros GitHub de salida
](integrations-github-action-referencing.md)
+ [

# GitHub Acción «Acciones» YAML
](github-action-ref.md)

## ¿En qué se diferencian las GitHub acciones de las acciones? CodeCatalyst
<a name="integrations-github-actions-how-different"></a>

GitHub Las acciones que se utilizan dentro de un CodeCatalyst flujo de trabajo no tienen el mismo nivel de acceso e integración ni las mismas CodeCatalyst características (como [los entornos](deploy-environments.md) y [los problemas](issues.md)) que CodeCatalyst las acciones. AWS 

## ¿ GitHub Las acciones pueden interactuar con otras CodeCatalyst acciones del flujo de trabajo?
<a name="integrations-github-actions-interactions.title"></a>

Sí. Por ejemplo, GitHub las acciones pueden usar variables generadas por otras CodeCatalyst acciones como entrada y también pueden compartir los parámetros y artefactos de salida con CodeCatalyst las acciones. Para obtener más información, consulte [Exportación de los parámetros de salida de GitHub](integrations-github-action-export.md) y [Referencia a parámetros GitHub de salida](integrations-github-action-referencing.md).

## ¿Qué GitHub acciones puedo usar?
<a name="integrations-github-actions-supported"></a>

Puedes usar cualquier GitHub acción disponible en la CodeCatalyst consola y cualquier GitHub acción disponible en [GitHubMarketplace](https://github.com/marketplace/actions). Si decides usar una GitHub Acción del Marketplace, ten en cuenta las siguientes [limitaciones](#integrations-github-actions-limitations).

## Limitaciones de GitHub las acciones en CodeCatalyst
<a name="integrations-github-actions-limitations"></a>
+ GitHub Las acciones no se pueden usar con el tipo de [cómputo CodeCatalyst Lambda](workflows-working-compute.md#compute.types).
+ GitHub Las acciones se ejecutan en la imagen de Docker del entorno de ejecución de [noviembre de 2022](build-images.md#build.previous-image), que incluye herramientas antiguas. Para obtener más información acerca de la imagen y las herramientas, consulte [Especificación de imágenes del entorno en tiempo de ejecución](build-images.md).
+ GitHub Las acciones que dependan internamente del [`github`contexto](https://docs.github.com/en/actions/learn-github-actions/contexts#github-context) o que hagan referencia a recursos GitHub específicos no funcionarán en ellas. CodeCatalyst Por ejemplo, las siguientes acciones no funcionarán en CodeCatalyst:
  + Acciones que intentan añadir, cambiar o actualizar GitHub recursos. Algunos ejemplos son las acciones que actualizan las solicitudes de cambios o que crean problemas en ellas GitHub.
  + Casi todas las acciones aparecen en [https://github.com/actions.](https://github.com/actions)
+ GitHub Las acciones que son [acciones de contenedor de Docker](https://docs.github.com/en/actions/creating-actions/about-custom-actions#docker-container-actions) funcionarán, pero debe ejecutarlas el usuario predeterminado de Docker (root). No ejecute la acción como usuario 1001. (En el momento de escribir este artículo, el usuario 1001 trabaja en GitHub, pero no en CodeCatalyst). Para obtener más información, consulta el tema [USER](https://docs.github.com/en/actions/creating-actions/dockerfile-support-for-github-actions#user) en el [soporte de Dockerfile para GitHub Actions](https://docs.github.com/en/actions/creating-actions/dockerfile-support-for-github-actions).

Para ver una lista de GitHub las acciones disponibles en la CodeCatalyst consola, consulte. [Añadir una GitHub acción seleccionada](integrations-github-action-add-curated.md)

## ¿Cómo añado una GitHub acción (pasos de alto nivel)?
<a name="integrations-github-actions-how-to"></a>

Los pasos de alto nivel para añadir una GitHub acción a un CodeCatalyst flujo de trabajo son los siguientes:

1. En el CodeCatalyst proyecto, se **crea un flujo de trabajo**. El flujo de trabajo es el lugar en el que puede definir cómo compilar, probar e implementar la aplicación. Para obtener más información, consulte [Introducción a los flujos de trabajo](workflows-getting-started.md).

1. En el flujo de trabajo, se **añade una GitHub acción seleccionada** o se **añade la acción de GitHub acciones**.

1. Puede elegir una de las opciones siguientes:
   + Si elige añadir una acción seleccionada, configúrela. Para obtener más información, consulte [Añadir una GitHub acción seleccionada](integrations-github-action-add-curated.md).
   + **Si eliges añadir una acción no seleccionada, **pegas el GitHub código YAML de la GitHub acción dentro de** la acción.** Puedes encontrar este código en la página de detalles de la GitHub acción que hayas elegido en [GitHubMarketplace](https://github.com/marketplace/actions). Es probable que tengas que modificar ligeramente el código para que funcione CodeCatalyst. Para obtener más información, consulte [Añadir la GitHub acción «Acciones»](integrations-github-action-add.md).

1. (Opcional) Dentro del flujo de trabajo, **añada otras acciones**, como las acciones de compilación y prueba. Para obtener más información, consulte [Creación, pruebas e implementaciones con flujos de trabajoCreación, pruebas e implementaciones con flujos de trabajo](workflow.md).

1. **Inicie el flujo de trabajo** de forma manual o automática mediante un desencadenador. El flujo de trabajo ejecuta la GitHub acción y cualquier otra acción del flujo de trabajo. Para obtener más información, consulte [Inicio manual de la ejecución de un flujo de trabajo](workflows-manually-start.md).

Para ver los pasos detallados, consulte:
+ [Añadir una GitHub acción seleccionada](integrations-github-action-add-curated.md).
+ [Añadir la GitHub acción «Acciones»](integrations-github-action-add.md).

## ¿Se ejecuta la GitHub acción GitHub?
<a name="integrations-github-actions-where-it-runs"></a>

¿No?. La GitHub acción se ejecuta utilizando CodeCatalyst la [imagen del entorno de ejecución](workflows-working-compute.md). CodeCatalyst

## ¿También puedo usar GitHub flujos de trabajo?
<a name="integrations-github-actions-workflows-support.title"></a>

No.

## Imagen en tiempo de ejecución utilizada por la GitHub acción «Acciones»
<a name="integrations-github-actions-runtime"></a>

La acción CodeCatalyst **GitHub Acciones** se ejecuta en una [imagen de noviembre de 2022](build-images.md#build.previous-image). Para obtener más información, consulte [Imágenes activas](build-images.md#build-curated-images).

# Tutorial: código de Lint mediante una acción GitHub
<a name="integrations-github-action-tutorial"></a>

En este tutorial, añadirás la [ GitHub acción Super-Linter](https://github.com/marketplace/actions/super-linter) a un flujo de trabajo de Amazon CodeCatalyst . La acción Super-Linter inspecciona el código, encuentra áreas en las que el código contiene errores, problemas de formato y construcciones sospechosas y, a continuación, envía los resultados a la consola). CodeCatalyst Después de añadir el linter al flujo de trabajo, ejecute el flujo de trabajo para hacer una revisión lint de una aplicación de Node.js de muestra (`app.js`). A continuación, corrija los problemas detectados y vuelva a ejecutar el flujo de trabajo para comprobar si las soluciones han funcionado.

**sugerencia**  
Valore la posibilidad de usar Super-Linter para hacer una revisión lint en archivos YAML, como [plantillas de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html).

**Topics**
+ [

## Requisitos previos
](#integrations-github-action-tutorial-prereqs)
+ [

## Paso 1: crear un repositorio de código fuente
](#integrations-github-action-tutorial-create-source-repo)
+ [

## Paso 2: añadir un archivo app.js
](#integrations-github-action-tutorial-add-appjs)
+ [

## Paso 3: crear un flujo de trabajo que ejecute la acción Super-Linter
](#integrations-github-action-tutorial-create-workflow)
+ [

## Paso 4: solucionar los problemas encontrados por Super-Linter
](#integrations-github-action-tutorial-fix-probs)
+ [

## Limpieza
](#integrations-github-action-tutorial-cleanup)

## Requisitos previos
<a name="integrations-github-action-tutorial-prereqs"></a>

Antes de comenzar, necesitará lo siguiente:
+ Un CodeCatalyst **espacio con un conectado.** Cuenta de AWS Para obtener más información, consulte [Creación de un espacio](spaces-create.md).
+ Se llama un proyecto vacío en tu CodeCatalyst espacio`codecatalyst-linter-project`. Use la opción **Empezar desde cero** para crear este proyecto.

  ```
  ```

  Para obtener más información, consulte [Crear un proyecto vacío en Amazon CodeCatalyst](projects-create.md#projects-create-empty).

## Paso 1: crear un repositorio de código fuente
<a name="integrations-github-action-tutorial-create-source-repo"></a>

En este paso, crearás un repositorio de origen en CodeCatalyst. Utilizará este repositorio para almacenar el archivo fuente de la aplicación de muestra (`app.js`) para este tutorial.

Para obtener más información sobre los repositorios de código fuente, consulte [Creación de un repositorio de código fuente](source-repositories-create.md).

**Creación de un repositorio de código fuente**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Vaya a su proyecto, `codecatalyst-linter-project`.

1. En el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**. 

1. Elija **Agregar repositorio** y, a continuación, elija **Crear repositorio**.

1. En **Nombre del repositorio**, escriba:

   ```
   codecatalyst-linter-source-repository
   ```

1. Seleccione **Crear**.

## Paso 2: añadir un archivo app.js
<a name="integrations-github-action-tutorial-add-appjs"></a>

En este paso, añadirá un archivo `app.js` al repositorio de código fuente. El `app.js` contiene un código de función con algunos errores que el linter encontrará.

**Adición del archivo app.js**

1. En la CodeCatalyst consola, elige tu proyecto,`codecatalyst-linter-project`.

1. En el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**.

1. En la lista de repositorios de código fuente, elija su repositorio, `codecatalyst-linter-source-repository`.

1. En **Archivos**, elija **Crear archivo**.

1. En el cuadro de texto, introduzca el siguiente código:

   ```
   // const axios = require('axios')
   // const url = 'http://checkip.amazonaws.com/';
   let response;
   /**
    *
    * Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format
    * @param {Object} event - API Gateway Lambda Proxy Input Format
    *
    * Context doc: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html 
    * @param {Object} context
    *
    * Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
    * @returns {Object} object - API Gateway Lambda Proxy Output Format
    *
    */
   exports.lambdaHandler = async (event, context) => {
     try {
       // const ret = await axios(url);
       response = {
         statusCode: 200,
         'body': JSON.stringify({
           message: 'hello world'
           // location: ret.data.trim()
         })
       }
     } catch (err) {
       console.log(err)
       return err
     }
   
       return response
   }
   ```

1. En **Nombre del archivo**, escriba `app.js`. Conserve las otras opciones predeterminadas.

1. Elija **Confirmar**.

   Ahora ha creado un archivo llamado `app.js`.

## Paso 3: crear un flujo de trabajo que ejecute la acción Super-Linter
<a name="integrations-github-action-tutorial-create-workflow"></a>

En este paso, creará un flujo de trabajo que ejecuta la acción Super-Linter al insertar código en el repositorio de código fuente. El flujo de trabajo consta de los siguientes componentes básicos, que se definen en un archivo YAML:
+ **Un desencadenador**: este desencadenador inicia la ejecución automática del flujo de trabajo cuando se introduce un cambio en el repositorio de código fuente. Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).
+ **Una acción GitHub de «Acciones»**: al activarse, la acción **GitHub Acciones** ejecuta la acción Super-Linter, que a su vez inspecciona todos los archivos del repositorio de origen. Si el linter encuentra un problema, habrá un error en la acción del flujo de trabajo. 

**Creación de un flujo de trabajo que ejecute la acción Super-Linter**

1. En la CodeCatalyst consola, elige tu proyecto,. `codecatalyst-linter-project`

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**. 

1. Seleccione **Crear flujo de trabajo**.

1. En **Repositorio de código fuente**, elija `codecatalyst-linter-source-repository`.

1. En **Ramificación**, elija `main`.

1. Seleccione **Crear**.

1. Elimine el código de ejemplo de YAML.

1. Añada el YAML siguiente:

   ```
   Name: codecatalyst-linter-workflow
   SchemaVersion: "1.0"
   Triggers:
     - Type: PUSH
       Branches:
         - main
   Actions:
     SuperLinterAction:
       Identifier: aws/github-actions-runner@v1
       Configuration:
         Steps:
           github-action-code
   ```

   En el código anterior, *github-action-code* sustitúyalo por el código de acción de Super-Linter, tal y como se indica en los pasos siguientes de este procedimiento.

1. Ve a la [página de Super-Linter](https://github.com/marketplace/actions/super-linter) en Marketplace. GitHub 

1. En `steps:` (minúsculas), busca el código y pégalo en el CodeCatalyst flujo de trabajo (mayúsculas). `Steps:`

   Ajusta el código de GitHub acción para que se ajuste a CodeCatalyst los estándares, como se muestra en el código siguiente.

   Su CodeCatalyst flujo de trabajo ahora tiene el siguiente aspecto:

   ```
   Name: codecatalyst-linter-workflow
   SchemaVersion: "1.0"
   Triggers:
     - Type: PUSH
       Branches:
         - main
   Actions:
     SuperLinterAction:
       Identifier: aws/github-actions-runner@v1
       Configuration:
         Steps:
           - name: Lint Code Base
             uses: github/super-linter@v4
             env:
               VALIDATE_ALL_CODEBASE: "true"
               DEFAULT_BRANCH: main
   ```

1. (Opcional) Seleccione **Validar** para asegurarse de que el código de YAML del flujo de trabajo es válido antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un **mensaje de confirmación**, seleccione su **repositorio** `codecatalyst-linter-source-repository` y vuelva a seleccionar **Confirmar**.

   Ahora ha creado un flujo de trabajo. La ejecución del flujo de trabajo se inicia automáticamente debido al desencadenador definido en la parte superior del flujo de trabajo.

**Consulta de la ejecución del flujo de trabajo en curso**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el flujo de trabajo que acaba de crear: `codecatalyst-linter-workflow`.

1. En el diagrama de flujo de trabajo, elija **SuperLinterAction**.

1. Espere a que la acción tenga un error. Este error era esperable, ya que linter encontró problemas en el código.

1. Deje la CodeCatalyst consola abierta y vaya a[Paso 4: solucionar los problemas encontrados por Super-Linter](#integrations-github-action-tutorial-fix-probs).

## Paso 4: solucionar los problemas encontrados por Super-Linter
<a name="integrations-github-action-tutorial-fix-probs"></a>

Super-Linter debería haber encontrado problemas en el código `app.js`, así como en el archivo `README.md` incluido en el repositorio de código fuente.

**Resolución de los problemas encontrados por linter**

1. En la CodeCatalyst consola, selecciona la pestaña **Registros** y, a continuación, selecciona **Lint Code Base**.

   Aparecerán los registros generados por la acción Super-Linter.

1. En los registros de Super-Linter, desplácese hacia abajo, hasta aproximadamente la línea 90, donde encontrará el origen de los problemas. Tendrán un aspecto similar al siguiente: 

   ```
   /github/workspace/hello-world/app.js:3:13: Extra semicolon.
   /github/workspace/hello-world/app.js:9:92: Trailing spaces not allowed.
   /github/workspace/hello-world/app.js:21:7: Unnecessarily quoted property 'body' found.
   /github/workspace/hello-world/app.js:31:1: Expected indentation of 2 spaces but found 4.
   /github/workspace/hello-world/app.js:32:2: Newline required at end of file but not found.
   ```

1. Corrija `app.js` y `README.md` en el repositorio de código fuente y confirme los cambios. 
**sugerencia**  
Para corregir `README.md`, añada `markdown` al bloque de código de la siguiente manera:  

   ```
   ```markdown
   Setup examples:
   ...
   ```
   ```

   Los cambios inician otro flujo de trabajo que se ejecuta automáticamente. Espere a que el flujo de trabajo finalice. Si ha solucionado todos los problemas, el flujo de trabajo debería funcionar correctamente.

## Limpieza
<a name="integrations-github-action-tutorial-cleanup"></a>

Limpie CodeCatalyst para eliminar los rastros de este tutorial de su entorno.

**Para limpiar en CodeCatalyst**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elimine `codecatalyst-linter-source-repository`.

1. Elimine `codecatalyst-linter-workflow`.

En este tutorial, has aprendido a añadir la GitHub acción Super-Linter a un CodeCatalyst flujo de trabajo para imprimir código.

# Añadir la GitHub acción «Acciones»
<a name="integrations-github-action-add"></a>

Una acción de ***GitHub acciones*** es una *CodeCatalyst acción* que envuelve una GitHub acción y la hace compatible con los flujos de trabajo. CodeCatalyst 

Para obtener más información, consulte [Integración con GitHub acciones](integrations-github-actions.md).

Para añadir la acción **GitHub Acciones** a un flujo de trabajo, sigue estos pasos.

**sugerencia**  
Para ver un tutorial que muestra cómo utilizar la acción **GitHub Acciones**, consulte[Tutorial: código de Lint mediante una acción GitHub](integrations-github-action-tutorial.md).

------
#### [ Visual ]

**Para añadir la acción «GitHub Acciones» mediante el editor visual**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **Visual**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, elija **GitHub**.

1. Busque la acción **GitHub Acciones** y realice una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija **GitHub Acciones**. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Ver código fuente** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. En las pestañas **Entradas** y **Configuración**, complete los campos según sus necesidades. Para obtener una descripción de cada uno de los campos, consulte la [GitHub Acción «Acciones» YAML](github-action-ref.md). Esta referencia proporciona información detallada sobre cada campo (y el valor de la propiedad de YAML correspondiente) tal como aparece en el editor visual y el de YAML.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Para añadir la acción «GitHub Acciones» mediante el editor YAML**

1. [Abre la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **YAML**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, elija **GitHub**.

1. Busque la acción **GitHub Acciones** y realice una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija **GitHub Acciones**. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Ver código fuente** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. Modifique las propiedades del código de YAML en función de sus necesidades. Encontrará una explicación de todas las propiedades disponibles en la [GitHub Acción «Acciones» YAML](github-action-ref.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

## Definición de la GitHub acción «Acciones»
<a name="integrations-github-action-add-definition"></a>

La acción **GitHub Acciones** se define como un conjunto de propiedades YAML dentro del archivo de definición de flujo de trabajo. Para obtener más información sobre estas propiedades, consulte [GitHub Acción «Acciones» YAML](github-action-ref.md) en la [Definición de flujo de trabajo en YAML](workflow-reference.md).

# Añadir una GitHub acción seleccionada
<a name="integrations-github-action-add-curated"></a>

Una * GitHub acción seleccionada* es una GitHub acción que está disponible en la CodeCatalyst consola y sirve como ejemplo de cómo utilizarla en un GitHub CodeCatalyst flujo de trabajo.

 GitHub **Las acciones seleccionadas se incluyen en la [acción CodeCatalyst](integrations-github-action-add.md) de la que se ha creado GitHub y se identifica mediante el `aws/github-actions-runner@v1` identificador.** Por ejemplo, este es el aspecto de la GitHub acción seleccionada, [TruffleHog OSS](https://github.com/marketplace/actions/trufflehog-oss): 

```
Actions:
  TruffleHogOSS_e8:
    Identifier: aws/github-actions-runner@v1
    Inputs:
      Sources:
        - WorkflowSource # This specifies that the action requires this Workflow as a source
    Configuration:
      Steps:
        - uses: trufflesecurity/trufflehog@v3.16.0
          with:
            path: ' ' # Required; description: Repository path
            base: ' ' # Required; description: Start scanning from here (usually main branch).
            head: ' ' # Optional; description: Scan commits until here (usually dev branch).
            extra_args: ' ' # Optional; description: Extra args to be passed to the trufflehog cli.
```

En el código anterior, la acción CodeCatalyst **GitHub Actions** (identificada por`aws/github-actions-runner@v1`) envuelve la acción TruffleHog OSS (identificada por`trufflesecurity/trufflehog@v3.16.0`), lo que hace que funcione en un CodeCatalyst flujo de trabajo.

Para configurar esta acción, debe reemplazar las cadenas vacías bajo `with:` con sus propios valores. Por ejemplo:

```
Actions:
  TruffleHogOSS_e8:
    Identifier: aws/github-actions-runner@v1
    Inputs:
      Sources:
        - WorkflowSource # This specifies that the action requires this Workflow as a source
    Configuration:
      Steps:
        - uses: trufflesecurity/trufflehog@v3.16.0
          with:
            path: ./
            base: main # Required; description: Start scanning from here (usually main branch).
            head: HEAD # Optional; description: Scan commits until here (usually dev branch).
            extra_args: '‐‐debug ‐‐only-verified' # Optional; description: Extra args to be passed to the trufflehog cli.
```

Para añadir una GitHub acción seleccionada a un flujo de trabajo, utilice el siguiente procedimiento. Para obtener información general sobre el uso de GitHub las acciones en un CodeCatalyst flujo de trabajo, consulte[Integración con GitHub acciones](integrations-github-actions.md).

**nota**  
Si tu GitHub acción no aparece en la lista de acciones seleccionadas, puedes añadirla a tu flujo de trabajo mediante la acción **GitHub Acciones**. Para obtener más información, consulte [Añadir la GitHub acción «Acciones»](integrations-github-action-add.md).

------
#### [ Visual ]

**Para añadir una GitHub acción seleccionada mediante el editor visual**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **Visual**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, elija **GitHub**.

1. Examine o busque una GitHub acción y realice una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija el nombre de la GitHub acción. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Ver código fuente** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. En las pestañas **Entradas**, **Configuración** y **Salidas**, complete los campos según sus necesidades. Para obtener una descripción de cada uno de los campos, consulte la [GitHub Acción «Acciones» YAML](github-action-ref.md). Esta referencia proporciona información detallada sobre cada campo (y el valor de propiedad de YAML correspondiente) disponible para la acción **GitHubActions**, tal como aparece en los editores de YAML y visual.

   Para obtener información sobre las opciones de configuración disponibles para la GitHub acción seleccionada, consulta su documentación.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Para añadir una GitHub acción seleccionada mediante el editor YAML**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **YAML**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, elija **GitHub**.

1. Examine o busque una GitHub acción y realice una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija el nombre de la GitHub acción. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Ver código fuente** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. Modifique las propiedades del código de YAML en función de sus necesidades. En **GitHub la**[GitHub Acción «Acciones» YAML](github-action-ref.md).

   Para obtener información sobre las opciones de configuración disponibles para la GitHub acción seleccionada, consulta su documentación.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Exportación de los parámetros de salida de GitHub
<a name="integrations-github-action-export"></a>

Puede usar los [parámetros de salida de GitHub](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-output-parameter) en los flujos de trabajo de CodeCatalyst.

**nota**  
Otra palabra para *parámetro de salida* es *variable*. Como GitHub usa el término *parámetro de salida* en su documentación, también usaremos este término.

Use las siguientes instrucciones para exportar un parámetro de salida de GitHub desde una acción de GitHub, de modo que esté disponible para que lo usen otras acciones del flujo de trabajo de CodeCatalyst.

**Exportación de un parámetro de salida de GitHub**

1. Abra un flujo de trabajo y seleccione **Editar**. Para obtener más información, consulte [Creación de un flujo de trabajo](workflows-create-workflow.md).

1. En la acción de **GitHub Actions** que genera el parámetro de salida que desea exportar, añada una sección `Outputs` con una propiedad `Variables` subyacente que tenga este aspecto:

   ```
   Actions:
     MyGitHubAction:
       Identifier: aws/github-actions-runner@v1
       Outputs:
         Variables:
           - 'step-id_output-name'
   ```

   Reemplace:
   + Sustituya *step id* por el valor de la propiedad `id:` en la sección `steps` de la acción de GitHub.
   + Sustituya *output-name* por el nombre del parámetro de salida de GitHub.

**Ejemplo**  
En el siguiente ejemplo, se muestra cómo exportar un parámetro de salida de GitHub llamado `SELECTEDCOLOR`.

   ```
   Actions:
     MyGitHubAction:
       Identifier: aws/github-actions-runner@v1
       Outputs:
         Variables:
           - 'random-color-generator_SELECTEDCOLOR'
       Configuration:
         Steps:
           - name: Set selected color
             run: echo "SELECTEDCOLOR=green" >> $GITHUB_OUTPUT
             id: random-color-generator
   ```

# Referencia a parámetros GitHub de salida
<a name="integrations-github-action-referencing"></a>

Utilice las siguientes instrucciones para hacer referencia a un parámetro GitHub de salida.

**Para hacer referencia a un parámetro GitHub de salida**

1. Realice los pasos que se indican en [Exportación de los parámetros de salida de GitHub](integrations-github-action-export.md).

   El parámetro GitHub de salida ahora está disponible para su uso en otras acciones.

1. Anote el valor `Variables` del parámetro de salida. Incluye un guion bajo (\$1).

1. Haga referencia al parámetro de salida con la siguiente sintaxis:

   ```
   ${action-name.output-name}
   ```

   Reemplace:
   + *action-name*con el nombre de la CodeCatalyst **GitHub acción** que produce el parámetro de salida (no utilice el `name` o de la GitHub acción`id`).
   + *output-name*con el `Variables` valor del parámetro de salida que anotaste anteriormente.

   **Ejemplo**

   ```
   BuildActionB:
     Identifier: aws/build@v1
     Configuration:
       Steps:
         - Run: echo ${MyGitHubAction.random-color-generator_SELECTEDCOLOR}
   ```

**Ejemplo con contexto**  
El siguiente ejemplo muestra cómo establecer una variable `SELECTEDCOLOR` en `GitHubActionA`, generarla y hacer referencia a ella en `BuildActionB`.

   ```
   Actions:
     GitHubActionA:
       Identifier: aws/github-actions-runner@v1
       Configuration:
         Steps:
           - name: Set selected color
             run: echo "SELECTEDCOLOR=green" >> $GITHUB_OUTPUT
             id: random-color-generator
       Outputs:
         Variables:
         - 'random-color-generator_SELECTEDCOLOR'
         
      BuildActionB:
       Identifier: aws/build@v1
       Configuration:
         Steps:
           - Run: echo ${GitHubActionA.random-color-generator_SELECTEDCOLOR}
   ```

# GitHub Acción «Acciones» YAML
<a name="github-action-ref"></a>

La siguiente es la definición en YAML de la acción **GitHubAcciones**.

Esta definición de acción existe como una sección dentro de un archivo de definición de flujo de trabajo más amplio. Para obtener más información acerca de este archivo, consulte [Definición de flujo de trabajo en YAML](workflow-reference.md).

Elija una propiedad de YAML en el código siguiente para ver su descripción.

**nota**  
La mayoría de las propiedades de YAML que se muestran a continuación tienen elementos de interfaz de usuario correspondientes en el editor visual. Para buscar un elemento de la interfaz de usuario, use **Ctrl\$1F**. El elemento aparecerá en la lista con su propiedad de YAML asociada.

```
# The workflow definition starts here.
# See Propiedades de nivel superior for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.
  action-name:
    Identifier:  aws/github-actions-runner@v1
    DependsOn:
      - dependent-action-name-1
    Compute:
      Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Inputs:
      Sources:
        - source-name-1
        - source-name-2
      Artifacts:
        - artifact-name
      Variables:
        - Name: variable-name-1
          Value: variable-value-1
        - Name: variable-name-2
          Value: variable-value-2   
    Outputs:
      Artifacts:
        - Name: output-artifact-1
          Files: 
            - github-output/artifact-1.jar
            - "github-output/build*"
        - Name: output-artifact-2
          Files:
            - github-output/artifact-2.1.jar
            - github-output/artifact-2.2.jar
      Variables:
        - variable-name-1
        - variable-name-2
      AutoDiscoverReports:
        Enabled: true | false
        ReportNamePrefix: AutoDiscovered
        IncludePaths:
          - "**/*"
        ExcludePaths:
          - node_modules/cdk/junit.xml
        SuccessCriteria:
          PassRate: percent
          LineCoverage: percent
          BranchCoverage: percent
          Vulnerabilities:
            Severity: CRITICAL|HIGH|MEDIUM|LOW|INFORMATIONAL
            Number: whole-number
      Reports:
        report-name-1:
          Format: format
          IncludePaths:
            - "*.xml"
          ExcludePaths:
            - report2.xml
            - report3.xml
          SuccessCriteria:
            PassRate: percent
            LineCoverage: percent
            BranchCoverage: percent
            Vulnerabilities:
              Severity: CRITICAL|HIGH|MEDIUM|LOW|INFORMATIONAL
              Number: whole-number
    Configuration      
      Steps:
        - github-actions-code
```

## action-name
<a name="github.name"></a>

(Obligatorio)

Especifique el nombre de la acción. Todos los nombres de las acciones deben ser únicos dentro del flujo de trabajo. Los nombres de las acciones están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de las acciones.

Interfaz de usuario correspondiente: pestaña de configuración/ *action-name*

## Identifier
<a name="github.identifier"></a>

(*action-name*/**Identifier**)

Identifica la acción. No cambie esta propiedad a menos que desee cambiar la versión. Para obtener más información, consulte [Especificación de la versión de la acción que se va a utilizar](workflows-action-versions.md).

Úselo `aws/github-actions-runner@v1` para **GitHubacciones y acciones**.

Interfaz de usuario correspondiente: diagrama de flujo de trabajo//*action-name***aws/ @v1 label github-actions-runner**

## DependsOn
<a name="github.depends-on"></a>

(*action-name*/**DependsOn**)

(Opcional)

Especifique la acción, el grupo de acciones o la puerta que debe ejecutarse correctamente para que esta acción se ejecute.

Para obtener más información sobre la funcionalidad “depende de”, consulte [Secuenciación de acciones](workflows-depends-on.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Depende de (opcional)**

## Compute
<a name="github.computename"></a>

(*action-name*/**Compute**)

(Opcional)

El motor de computación utilizado para ejecutar las acciones del flujo de trabajo. Puede especificar el motor de computación en el nivel del flujo de trabajo o en el nivel de acción, pero no en ambos. Cuando se especifica en el nivel de flujo de trabajo, la configuración del motor de computación se aplica a todas las acciones definidas en el flujo de trabajo. En el nivel de flujo de trabajo, también puede ejecutar varias acciones en la misma instancia. Para obtener más información, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md).

Interfaz de usuario correspondiente: *ninguna*

## Fleet
<a name="github.computefleet"></a>

(*action-name*/Compute/**Fleet**)

(Opcional)

Especifique la máquina o la flota que ejecutará el flujo de trabajo o las acciones del flujo de trabajo. Con las flotas bajo demanda, cuando se inicia una acción, el flujo de trabajo aprovisiona los recursos que necesita y las máquinas se destruyen cuando finaliza la acción. Ejemplos de flotas bajo demanda: `Linux.x86-64.Large`, `Linux.x86-64.XLarge`. Para obtener más información sobre las flotas bajo demanda, consulte [Propiedades de las flotas bajo demanda](workflows-working-compute.md#compute.on-demand).

Con las flotas aprovisionadas, configura un conjunto de máquinas dedicadas para ejecutar las acciones del flujo de trabajo. Estas máquinas permanecen inactivas, listas para procesar acciones de forma inmediata. Para obtener más información sobre las flotas aprovisionadas, consulte [Propiedades de flotas aprovisionadas](workflows-working-compute.md#compute.provisioned-fleets).

Si `Fleet` se omite, el valor predeterminado es `Linux.x86-64.Large`.

Interfaz de usuario correspondiente: pestaña Configuración/**Flota de computación: opcional**

## Timeout
<a name="github.timeout"></a>

(*action-name*/**Timeout**)

(Opcional)

Especifique la cantidad de tiempo en minutos (editor YAML) o en horas y minutos (editor visual) que la acción puede ejecutarse antes de que finalice la acción. CodeCatalyst El mínimo es 5 minutos y el máximo se describe en [Cuotas para flujos de trabajo en CodeCatalyst](workflows-quotas.md). El tiempo de espera predeterminado es el mismo que el tiempo de espera máximo.

Interfaz de usuario correspondiente: pestaña Configuración/**Tiempo de espera (opcional)**

## Environment
<a name="github.environment"></a>

(*action-name*/**Environment**)

(Opcional)

Especifica el CodeCatalyst entorno que se va a usar con la acción. La acción se conecta a Cuenta de AWS la Amazon VPC opcional especificada en el entorno elegido. La acción utiliza la función de IAM predeterminada especificada en el entorno para conectarse a Cuenta de AWS, y utiliza la función de IAM especificada en la [conexión de Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) para conectarse a la Amazon VPC.

**nota**  
Si el rol de IAM predeterminado no tiene los permisos necesarios para la acción, puede configurarla para que utilice un rol diferente. Para obtener más información, consulte [Cambio del rol de IAM de una acción](deploy-environments-switch-role.md).

Para obtener más información sobre los entornos, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md) y [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Name
<a name="github.environment.name"></a>

(*action-name*/Environment/**Name**)

(Obligatorio si se incluye [Environment](#github.environment))

Especifique el nombre del entorno existente que desea asociar a la acción.

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Connections
<a name="github.environment.connections"></a>

(*action-name*/Environment/**Connections**)

(Opcional)

Especifique la conexión de cuenta que desee asociar a la acción. Puede especificar un máximo de una conexión de cuenta en `Environment`.

Si no especifica una conexión de cuenta:
+ La acción utiliza la Cuenta de AWS conexión y la función de IAM predeterminada especificadas en el entorno de la consola. CodeCatalyst Para obtener información sobre cómo añadir una conexión de cuenta y un rol de IAM predeterminado al entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).
+ El rol de IAM predeterminado debe incluir las políticas y los permisos que requiere la acción. Para determinar cuáles son esas políticas y permisos, consulte la descripción de la propiedad **Role** en la documentación de la definición de YAML de la acción.

Para obtener más información sobre las conexiones de cuenta, consulte [Permitir el acceso a AWS los recursos con conexión Cuentas de AWS](ipa-connect-account.md). Para obtener más información sobre cómo añadir una conexión de cuenta a un entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: ¿tab/Environment/WhatLa configuración está activa? *my-environment* **/menú de tres puntos/ Cambiar rol**

## Name
<a name="github.environment.connections.name"></a>

(*action-name*/Environment/Connections/**Name**)

(Obligatorio si se incluye [Connections](#github.environment.connections))

Especifique el nombre de la conexión de cuenta.

Interfaz de usuario correspondiente: ¿La configuración está lista? tab/Environment/What *my-environment* **/menú de tres puntos/ Cambiar rol**

## Role
<a name="github.environment.connections.role"></a>

(*action-name*/Environment/Connections/**Role**)

(Obligatorio si se incluye [Connections](#github.environment.connections))

Especifique el nombre del rol de IAM que usa esta acción para acceder a servicios de AWS , como Amazon S3 y Amazon ECR y utilizar estos servicios. Asegúrese de añadir este rol a la conexión de Cuenta de AWS de su espacio. Para añadir un rol de IAM a una conexión de cuenta, consulte [Adición de roles de IAM a las conexiones de cuentas](ipa-connect-account-addroles.md).

[Si no especifica una función de IAM, la acción utilizará la función de IAM predeterminada que aparece en el entorno de la consola.](deploy-environments.md) CodeCatalyst Si usa el rol predeterminado en el entorno, asegúrese de que tenga las siguientes políticas.

**nota**  
Puede usar el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` con esta acción. Para obtener más información acerca de este rol, consulte [Creación del rol **CodeCatalystWorkflowDevelopmentRole-*spaceName*** para su cuenta y su espacio](ipa-iam-roles.md#ipa-iam-roles-service-create). Tenga en cuenta que el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` tiene permisos de acceso total, lo que puede suponer un riesgo para la seguridad. Le recomendamos que utilice este rol solo en tutoriales y situaciones en las que la seguridad no sea un problema. 

**aviso**  
Limite los permisos a los requeridos por la **GitHub acción Action**. El uso de un rol con permisos más amplios puede suponer un riesgo de seguridad.

Interfaz de usuario correspondiente: ¿tab/Environment/WhatLa configuración está activa*my-environment*? **/menú de tres puntos/ Cambiar rol**

## Inputs
<a name="github.inputs"></a>

(*action-name*/**Inputs**)

(Opcional)

La sección `Inputs` define los datos que necesita una acción durante la ejecución de un flujo de trabajo.

**nota**  
**Se permite un máximo de cuatro entradas (una fuente y tres artefactos) por GitHub acción de Actions.** Las variables no se contabilizan en este total.

Si necesita hacer referencia a archivos que se encuentran en entradas diferentes (por ejemplo, un código fuente y un artefacto), la entrada de código fuente es la entrada principal y el artefacto es la entrada secundaria. Las referencias a los archivos en las entradas secundarias llevan un prefijo especial para distinguirlas de las principales. Para obtener más información, consulte [Ejemplo: Referencia a archivos en varios artefactos](workflows-working-artifacts-ex.md#workflows-working-artifacts-ex-ref-file).

Interfaz de usuario correspondiente: pestaña **Entradas**

## Sources
<a name="github.inputs.sources"></a>

(*action-name*/Inputs/**Sources**)

(Opcional)

Especifique las etiquetas que representan los repositorios de código fuente que necesitará la acción. Actualmente, la única etiqueta admitida es `WorkflowSource`, que representa el repositorio de código fuente en el que se almacena el archivo de definición de flujo de trabajo.

Si omite un origen, debe especificar al menos un artefacto de entrada en `action-name/Inputs/Artifacts`.

Para obtener más información sobre orígenes, consulte [Conexión de repositorios de código fuente a flujos de trabajo](workflows-sources.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Orígenes (opcional)**

## Artifacts - input
<a name="github.inputs.artifacts"></a>

(*action-name*/Inputs/**Artifacts**)

(Opcional)

Especifique los artefactos de acciones anteriores que desee proporcionar como entrada a esta acción. Estos artefactos ya deben estar definidos como artefactos de salida en acciones anteriores.

Si no especifica ningún artefacto de entrada, debe especificar al menos un repositorio de código fuente en `action-name/Inputs/Sources`.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

**nota**  
Si la lista desplegable **Artefactos: opcional** no está disponible (editor visual) o si se producen errores al validar el código de YAML (editor de YAML), es posible que la acción solo admita una entrada. En este caso, intente eliminar la entrada de código fuente.

Interfaz de usuario correspondiente: pestaña Entradas/**Artefactos (opcional)**

## Variables - input
<a name="github.inputs.variables"></a>

(*action-name*/Inputs/**Variables**)

(Opcional)

Especifica una secuencia de name/value pares que defina las variables de entrada que quieres que estén disponibles para la acción. Los nombres de variables están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de variables.

Para obtener más información sobre las variables, incluidos ejemplos, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Variables (opcional)**

## Outputs
<a name="github.outputs"></a>

(*action-name*/**Outputs**)

(Opcional)

Define los datos que necesita una acción durante la ejecución de un flujo de trabajo.

Interfaz de usuario correspondiente: pestaña **Salidas**

## Artifacts - output
<a name="github.outputs.artifacts"></a>

(*action-name*/Outputs/**Artifacts**)

(Opcional)

Especifique el nombre de un artefacto generado por la acción. Los nombres de los artefactos deben ser únicos en un flujo de trabajo y están limitados a caracteres alfanuméricos (a-z, A-Z, 0-9) y guiones bajos (\$1). No se admiten espacios, guiones (-) ni otros caracteres especiales. No puede utilizar comillas para permitir espacios, guiones y otros caracteres especiales en los nombres de los artefactos de salida.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: pestaña Salidas/**Artefactos**

## Name
<a name="github.outputs.artifacts.name"></a>

(*action-name*/Outputs/Artifacts/**Name**)

(Obligatorio si se incluye [Artifacts - output](#github.outputs.artifacts))

Especifique el nombre de un artefacto generado por la acción. Los nombres de los artefactos deben ser únicos en un flujo de trabajo y están limitados a caracteres alfanuméricos (a-z, A-Z, 0-9) y guiones bajos (\$1). No se admiten espacios, guiones (-) ni otros caracteres especiales. No puede utilizar comillas para permitir espacios, guiones y otros caracteres especiales en los nombres de los artefactos de salida.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

**Interfaz de usuario correspondiente: genera el nombre del tab/Artifacts/Add artefacto o crea el nombre del artefacto**

## Files
<a name="github.outputs.artifacts.files"></a>

(*action-name*/Outputs/Artifacts/**Files**)

(Obligatorio si se incluye [Artifacts - output](#github.outputs.artifacts))

Especifique los archivos que se CodeCatalyst incluyen en el artefacto que genera la acción. Estos archivos los genera la acción del flujo de trabajo cuando se ejecuta y también están disponibles en el repositorio de código fuente. Las rutas de los archivos pueden residir en un repositorio de código fuente o en un artefacto de una acción anterior, y son relativas a la raíz del repositorio de código fuente o del artefacto. Puede utilizar patrones glob para especificar las rutas. Ejemplos:
+ Para especificar un único archivo que esté en la raíz de la ubicación de compilación o de la ubicación del repositorio de código fuente, utilice `my-file.jar`.
+ Para especificar un único archivo en un subdirectorio, use `directory/my-file.jar` o `directory/subdirectory/my-file.jar`.
+ Para especificar todos los archivos, utilice `"**/*"`. El patrón glob de `**` indica que debe coincidir con cualquier número de subdirectorios.
+ Para especificar todos los archivos y directorios de un directorio denominado `directory`, utilice `"directory/**/*"`. El patrón glob de `**` indica que debe coincidir con cualquier número de subdirectorios.
+ Para especificar todos los archivos de un directorio denominado `directory`, pero no ninguno de sus subdirectorios, utilice `"directory/*"`. 

**nota**  
Si la ruta del archivo incluye uno o más asteriscos (`*`) u otro carácter especial, escriba la ruta entre comillas dobles (`""`). Para obtener más información sobre los caracteres especiales, consulte [Pautas y convenciones de sintaxis](workflow-reference.md#workflow.terms.syntax.conv).

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

**nota**  
Puede que tenga que añadir un prefijo a la ruta del archivo para indicar en qué artefacto u origen debe encontrarlo. Para obtener más información, consulte [Referencia a los archivos del repositorio de código fuente](workflows-sources-reference-files.md) y [Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

**Interfaz de usuario correspondiente: genera los tab/Artifacts/Add artefactos o archivos producidos por build**

## Variables - output
<a name="github.outputs.variables"></a>

(*action-name*/Outputs/**Variables**)

(Opcional)

Especifique las variables que desea que exporte la acción para que estén disponibles para su uso en acciones posteriores.

Para obtener más información sobre las variables, incluidos ejemplos, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

Interfaz de usuario correspondiente: pestaña Salidas/Variables/**Agregar variable**

## variable-name-1
<a name="github.outputs.variables.name"></a>

**(nombre de la variable-1) *action-name* /Outputs/Variables**

(Opcional)

Especifique el nombre de la variable que desee que exporte la acción. Esta variable ya debe estar definida en la sección `Inputs` o `Steps` de la misma acción.

Para obtener más información sobre las variables, incluidos ejemplos, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

**Interfaz de usuario correspondiente: genera la variable/nombre tab/Variables/Add**

## AutoDiscoverReports
<a name="github.outputs.autodiscover"></a>

(*action-name*/Outputs/**AutoDiscoverReports**)

(Opcional)

Define la configuración de la característica de detección automática.

Al habilitar la detección automática, CodeCatalyst busca todos los archivos `Inputs` transferidos a la acción, así como todos los archivos generados por la propia acción, buscando informes de pruebas, cobertura de código y análisis de composición de software (SCA). Para cada informe que se encuentre, lo CodeCatalyst transforma en un CodeCatalyst informe. Un *CodeCatalyst informe* es un informe que está totalmente integrado en el CodeCatalyst servicio y se puede ver y manipular a través de la CodeCatalyst consola.

**nota**  
De forma predeterminada, la característica de detección automática inspecciona todos los archivos. Puede limitar los archivos que se inspeccionan mediante las propiedades [IncludePaths](#github.reports.includepaths) o [ExcludePaths](#github.reports.excludepaths). 

Interfaz de usuario correspondiente: *ninguna*

## Enabled
<a name="github.outputs.autodiscover.enabled"></a>

(*action-name*/Outputs/AutoDiscoverReports/**Enabled**)

(Opcional)

Active o desactive la característica de detección automática.

Los valores válidos son `true` o `false`.

Si `Enabled` se omite, el valor predeterminado es `true`.

Interfaz de usuario correspondiente: pestaña Salidas/informes/**Detección de informes de forma automática**

## ReportNamePrefix
<a name="github.outputs.autodiscover.reportnameprefix"></a>

(*action-name*/Outputs/AutoDiscoverReports/**ReportNamePrefix**)

(Obligatorio si [AutoDiscoverReports](#github.outputs.autodiscover) está incluido y activado)

Especifique un prefijo que CodeCatalyst preceda a todos los informes que encuentre para asignar un nombre a los informes asociados. CodeCatalyst Por ejemplo, si especifica un prefijo de `AutoDiscovered` y CodeCatalyst descubre automáticamente dos informes de pruebas `TestSuiteOne.xml` y`TestSuiteTwo.xml`, los CodeCatalyst informes asociados se `AutoDiscoveredTestSuiteOne` denominarán y. `AutoDiscoveredTestSuiteTwo`

**Interfaz de usuario correspondiente: los resultados tab/Reports/Automatically detectan informes/prefijo de informe**

## IncludePaths
<a name="github.reports.includepaths"></a>

(*action-name*/Outputs/AutoDiscoverReports/**IncludePaths**)

O

(*action-name*/Outputs/Reports/*report-name-1*/**IncludePaths**)

(Obligatorio si [AutoDiscoverReports](#github.outputs.autodiscover) está incluido y activado, o si se incluye [Reports](#github.configuration.reports))

Especifique los archivos y las rutas de archivo que se CodeCatalyst incluyen al buscar informes sin procesar. Por ejemplo, si lo especificas`"/test/report/*"`, CodeCatalyst busca en el `/test/report/*` directorio toda la [imagen de compilación](build-images.md) utilizada por la acción. Cuando encuentra ese directorio, CodeCatalyst busca los informes en ese directorio.

**nota**  
Si la ruta del archivo incluye uno o más asteriscos (`*`) u otros caracteres especiales, escriba la ruta entre comillas dobles (`""`). Para obtener más información sobre los caracteres especiales, consulte [Pautas y convenciones de sintaxis](workflow-reference.md#workflow.terms.syntax.conv).

Si se omite esta propiedad, el valor predeterminado es `"**/*"`, lo que significa que la búsqueda incluye todos los archivos de todas las rutas.

**nota**  
En el caso de los informes configurados manualmente, `IncludePaths` debe ser un patrón glob que coincida con un único archivo.

Interfaz de usuario correspondiente:
+ **Rutas de salida: tab/Reports/Automatically discover reports/'Include/exclude '/ Incluir rutas**
+ **Las salidas tab/Reports/Manually configuran informes/ /'Include/Exclude rutas'/ Incluyen rutas *report-name-1***

## ExcludePaths
<a name="github.reports.excludepaths"></a>

(*action-name*/Outputs/AutoDiscoverReports/**ExcludePaths**)

O

(*action-name*/Outputs/Reports/*report-name-1*/**ExcludePaths**)

(Opcional)

Especifique los archivos y las rutas de archivo que se excluyen al buscar informes sin procesar. CodeCatalyst Por ejemplo, si lo especifica`"/test/my-reports/**/*"`, no CodeCatalyst buscará archivos en el `/test/my-reports/` directorio. Para ignorar todos los archivos de un directorio, utilice el patrón glob `**/*`.

**nota**  
Si la ruta del archivo incluye uno o más asteriscos (`*`) u otros caracteres especiales, escriba la ruta entre comillas dobles (`""`). Para obtener más información sobre los caracteres especiales, consulte [Pautas y convenciones de sintaxis](workflow-reference.md#workflow.terms.syntax.conv).

Interfaz de usuario correspondiente:
+ **Rutas de salida: tab/Reports/Automatically discover reports/'Include/exclude '/ Excluye rutas**
+ **Las salidas tab/Reports/Manually configuran los informes/ /'Include/Exclude rutas'/ Excluir rutas *report-name-1***

## SuccessCriteria
<a name="github.reports.successcriteria"></a>

(*action-name*/Outputs/AutoDiscoverReports/**SuccessCriteria**)

O

(*action-name*/Outputs/Reports/*report-name-1*/**SuccessCriteria**)

(Opcional)

Especifique los criterios de éxito de los informes de prueba, cobertura del código, análisis de composición de software (SCA) y análisis estático (SA).

Para obtener más información, consulte [Configuración de los criterios de éxito de los informes](test-config-action.md#test.success-criteria).

Interfaz de usuario correspondiente:
+ tab/Reports/AutomaticallyLas salidas detectan **informes o criterios de éxito**
+ **Las salidas tab/Reports/Manually configuran los informes//criterios de éxito *report-name-1***

## PassRate
<a name="github.reports.successcriteria.passrate"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**PassRate**)

O

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**PassRate**)

(Opcional)

Especifique el porcentaje de pruebas en un informe de prueba que deben aprobarse para que el CodeCatalyst informe asociado se marque como aprobado. Los valores válidos son números decimales. Por ejemplo: `50`, `60.5`. Los criterios del índice de aprobación se aplican únicamente a los informes de pruebas. Para obtener más información sobre los informes de pruebas, consulte [Informes de pruebas](test-workflow-actions.md#test-reports).

Interfaz de usuario correspondiente:
+ tab/Reports/Automatically discover reports/Success**Criterios de salida y tasa de aprobación**
+ **Los resultados tab/Reports/Manually configuran los informes/ /Criterios de éxito/Tasa *report-name-1* de aprobación**

## LineCoverage
<a name="github.reports.successcriteria.linecoverage"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**LineCoverage**)

O

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**LineCoverage**)

(Opcional)

Especifique el porcentaje de líneas de un informe de cobertura de código que deben cubrirse para que el CodeCatalyst informe asociado se marque como aprobado. Los valores válidos son números decimales. Por ejemplo: `50`, `60.5`. Los criterios de cobertura de línea se aplican únicamente a los informes de cobertura de código. Para obtener más información sobre los informes de cobertura de código, consulte [Informes de cobertura de código](test-workflow-actions.md#test-code-coverage-reports).

Interfaz de usuario correspondiente:
+ tab/Reports/Automatically discover reports/Success**Criterios de salida o cobertura de línea**
+ **Las salidas tab/Reports/Manually configuran los informes/ /Criterios de éxito/ Cobertura *report-name-1* de línea**

## BranchCoverage
<a name="github.reports.successcriteria.branchcoverage"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**BranchCoverage**)

O

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**BranchCoverage**)

(Opcional)

Especifique el porcentaje de ramas en un informe de cobertura de código que deben cubrirse para que el CodeCatalyst informe asociado se marque como aprobado. Los valores válidos son números decimales. Por ejemplo: `50`, `60.5`. Los criterios de cobertura de ramificaciones se aplican únicamente a los informes de cobertura de código. Para obtener más información sobre los informes de cobertura de código, consulte [Informes de cobertura de código](test-workflow-actions.md#test-code-coverage-reports).

Interfaz de usuario correspondiente:
+ tab/Reports/Automatically discover reports/Success**Criterios de salida o cobertura de sucursales**
+ **Los resultados tab/Reports/Manually configuran los informes/ /Criterios de éxito/ Cobertura de *report-name-1* las sucursales**

## Vulnerabilities
<a name="github.reports.successcriteria.vulnerabilities"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**Vulnerabilities**)

O

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**Vulnerabilities**)

(Opcional)

Especifique el número máximo y la gravedad de las vulnerabilidades permitidas en el informe de la SCA para que el CodeCatalyst informe asociado se marque como aprobado. Para especificar las vulnerabilidades, debe especificar lo siguiente:
+ La gravedad mínima de las vulnerabilidades que desea incluir en el recuento. Los valores válidos, desde el más al menos grave, son `CRITICAL`, `HIGH`, `MEDIUM`, `LOW` y `INFORMATIONAL`.

  Por ejemplo, si elige `HIGH`, se contabilizan las vulnerabilidades `HIGH` y `CRITICAL`.
+ El número máximo de vulnerabilidades de la gravedad especificada que desea permitir. Si se supera este número, el CodeCatalyst informe se marca como fallido. Los valores válidos son números enteros.

Los criterios de vulnerabilidad se aplican únicamente a los informes de SCA. Para obtener más información acerca de los informes de SCA, consulte [Informes de análisis de composición de software](test-workflow-actions.md#test-sca-reports).

Para especificar la gravedad mínima, utilice la propiedad `Severity`. Para especificar el número máximo de vulnerabilidades, utilice la propiedad `Number`.

Para obtener más información acerca de los informes de SCA, consulte [Tipos de informes de calidad](test-workflow-actions.md#test-reporting).

Interfaz de usuario correspondiente:
+ tab/Reports/Automatically discover reports/Success**Criterios o vulnerabilidades de salida**
+ **Los resultados tab/Reports/Manually configuran los *report-name-1* informes/ /Criterios de éxito/ Vulnerabilidades**

## Reports
<a name="github.configuration.reports"></a>

(*action-name*/Outputs/**Reports** )

(Opcional)

Una sección que especifica la configuración de los informes de prueba.

Interfaz de usuario correspondiente: pestaña Salidas/**Informes**

## report-name-1
<a name="github.configuration.reports.report-name-1"></a>

(*action-name*/Outputs/Reports/**nombre-de-informe-1**)

(Obligatorio si se incluye [Reports](#github.configuration.reports))

El nombre que desea asignar al CodeCatalyst informe que se generará a partir de los informes sin procesar.

**Interfaz de usuario correspondiente: los resultados tab/Reports/Manually configuran los informes o el nombre del informe**

## Format
<a name="github.configuration.reports.name.testresults.format"></a>

(*action-name*/Outputs/Reports/*report-name-1*/**Format**)

(Obligatorio si se incluye [Reports](#github.configuration.reports))

Especifique el formato de archivo que va a utilizar para sus informes. Los valores posibles son los siguientes.
+ Para los informes de prueba:
  + Para Cucumber JSON, especifique **Cucumber** (editor visual) o `CUCUMBERJSON` (editor de YAML).
  + Para JUnit XML, especifique **JUnit**(editor visual) o `JUNITXML` (editor YAML).
  + Para NUnit XML, especifique **NUnit**(editor visual) o `NUNITXML` (editor YAML).
  + Para NUnit 3 XML, especifique **NUnit3**(editor visual) o `NUNIT3XML` (editor YAML).
  + Para Visual Studio TRX, especifique **Visual Studio TRX** (editor visual) o `VISUALSTUDIOTRX` (editor de YAML).
  + Para TestNG XML, especifique **TestNG** (editor visual) o `TESTNGXML` (editor de YAML).
+ Para los informes de cobertura de código:
  + Para Clover XML, especifique **Clover** (editor visual) o `CLOVERXML` (editor de YAML).
  + Para Cobertura XML, especifique **Cobertura** (editor visual) o `COBERTURAXML` (editor de YAML).
  + Para JaCoCo XML, especifique **JaCoCo**(editor visual) o `JACOCOXML` (editor YAML).
  + Para el SimpleCov JSON generado por [simplecov, no por simplecov-json](https://github.com/simplecov-ruby/simplecov)[, especifique **Simplecov**](https://github.com/vicentllongo/simplecov-json) (editor visual) o (editor YAML). `SIMPLECOV`
+ Para los informes de análisis de composición de software (SCA):
  + Para SARIF, especifique **SARIF** (editor visual) o `SARIFSCA` (editor de YAML).

****Interfaz de usuario correspondiente: Muestra el tipo de informe y el formato del informe tab/Reports/Manually configure reports/Add *report-name-1*****

## Configuration
<a name="github.configuration"></a>

(*action-name*/**Configuration**)

(Obligatorio) Una sección en la que puede definir las propiedades de configuración de la acción. 

Interfaz de usuario correspondiente: pestaña **Configuración**

## Steps
<a name="github.configuration.steps"></a>

(*action-name*/Configuration/**Steps**)

(Obligatorio) 

Especifica tu código de GitHub acción tal como aparece en la página de detalles de la acción en [GitHub Marketplace](https://github.com/marketplace). Añada el código siguiendo estas pautas:

1. Pega el código de la `steps:` sección de la GitHub acción en la `Steps:` sección del CodeCatalyst flujo de trabajo. El código comienza con un guion (-) y tiene un aspecto similar al siguiente.

   GitHub código para pegar:

   ```
   - name: Lint Code Base
     uses: github/super-linter@v4
     env:
       VALIDATE_ALL_CODEBASE: false
       DEFAULT_BRANCH: master
       GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
   ```

1. Revise el código que acaba de pegar y modifíquelo según sea necesario para que cumpla con los CodeCatalyst estándares. **Por ejemplo, con el bloque de código anterior, puede eliminar el código y añadirlo en *red italics* negrita.**

   CodeCatalyst flujo de trabajo yaml:

   ```
   Steps:      
      - name: Lint Code Base
        uses: github/super-linter@v4
        env:
          VALIDATE_ALL_CODEBASE: false
          DEFAULT_BRANCH: mastermain
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
   ```

1. Para obtener código adicional que se incluya en la GitHub acción pero que no exista dentro de la `steps:` sección, agréguelo al CodeCatalyst flujo de trabajo con un código CodeCatalyst equivalente. Puedes revisarla [Definición de flujo de trabajo en YAML](workflow-reference.md) para obtener información sobre cómo puedes transferir tu GitHub código a CodeCatalyst. En esta guía, no hablaremos de los pasos de migración detallados.

Este es un ejemplo de cómo especificar las rutas de los archivos en una acción de **GitHub Acciones**:

```
Steps:
  - name: Lint Code Base
    uses: github/super-linter@v4
    ...
  - run: cd /sources/WorkflowSource/MyFolder/  && cat file.txt
  - run: cd /artifacts/MyGitHubAction/MyArtifact/MyFolder/  && cat file2.txt
```

Para obtener más información sobre cómo especificar rutas de archivos, consulte [Referencia a los archivos del repositorio de código fuente](workflows-sources-reference-files.md) y [Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

Interfaz de usuario correspondiente: pestaña de **GitHub configuración/acciones** (YAML)

# Configuración de imágenes de computación y tiempo de ejecución
<a name="workflows-working-compute"></a>

En un CodeCatalyst flujo de trabajo, puede especificar la imagen del entorno de procesamiento y tiempo de ejecución que se CodeCatalyst utiliza para ejecutar las acciones del flujo de trabajo.

El término *cómputo* se refiere al motor informático (la CPU, la memoria y el sistema operativo) que administra y mantiene CodeCatalyst para ejecutar las acciones del flujo de trabajo.

**nota**  
Si la computación se define como una propiedad del flujo de trabajo, no se puede definir como una propiedad de ninguna acción de ese flujo de trabajo. De modo similar, si la computación se define como la propiedad de una acción, no puede definirse en el flujo de trabajo.

Una *imagen de entorno de ejecución* es un contenedor de Docker en el que CodeCatalyst se ejecutan las acciones del flujo de trabajo. El contenedor Docker se ejecuta sobre la plataforma de procesamiento elegida e incluye un sistema operativo y herramientas adicionales que una acción de flujo de trabajo podría necesitar, como Node.js y.tar. AWS CLI

**Topics**
+ [

## Tipos de computación
](#compute.types)
+ [

## Flotas de computación
](#compute.fleets)
+ [

## Propiedades de las flotas bajo demanda
](#compute.on-demand)
+ [

## Propiedades de flotas aprovisionadas
](#compute.provisioned-fleets)
+ [

# Edición de una flota aprovisionada
](projects-create-compute-resource.md)
+ [

# Edición de una flota aprovisionada
](edit-compute-resource.md)
+ [

# Eliminación de una flota aprovisionada
](delete-compute-resource.md)
+ [

# Asignación de una flota o computación a una acción
](workflows-assign-compute-resource.md)
+ [

# Uso compartido de recursos de computación entre acciones
](compute-sharing.md)
+ [

# Especificación de imágenes del entorno en tiempo de ejecución
](build-images.md)

## Tipos de computación
<a name="compute.types"></a>

CodeCatalyst ofrece los siguientes tipos de procesamiento:
+ Amazon EC2
+ AWS Lambda

Amazon EC2 ofrece una flexibilidad optimizada durante las ejecuciones de acciones y Lambda ofrece velocidades optimizadas de inicio de las acciones. Lambda permite ejecutar acciones de flujo de trabajo más rápidas debido a una latencia de inicio más baja. Lambda le permite ejecutar flujos de trabajo básicos que permiten compilar, probar e implementar aplicaciones sin servidor con tiempos de ejecución comunes. Entre estos tiempos de ejecución se incluyen Node.js, Python, Java, .NET y Go. Sin embargo, hay algunos casos de uso con los que Lambda no es compatible; si esto le afecta, utilice el tipo de computación de Amazon EC2:
+ Lambda no es compatible con imágenes de entorno de tiempo de ejecución de un registro específico.
+ Lambda no admite herramientas que requieran permisos raíz. En el caso de herramientas como `yum` o `rpm`, utilice el tipo de computación de Amazon EC2 u otras herramientas que no requieran permisos raíz.
+ Lambda no admite compilaciones ni ejecuciones de Docker. No se admiten las siguientes acciones que utilizan imágenes de Docker: Deploy AWS CloudFormation stack, Deploy to Amazon ECS, Amazon S3 publish, AWS CDK bootstrap, AWS CDK deploy, AWS Lambda invoke y Actions. GitHub GitHub Las acciones basadas en Docker que se ejecutan dentro de CodeCatalyst GitHub Actions Action tampoco son compatibles con la computación Lambda. Puede utilizar alternativas que no requieran permisos raíz, como Podman.
+ Lambda no admite la escritura en archivos fuera de `/tmp`. Al configurar las acciones de un flujo de trabajo, puede reconfigurar las herramientas para instalar o escribir en `/tmp`. Si tiene una acción de compilación que instale `npm`, asegúrese de configurarla para que instale en `/tmp`.
+ Lambda no es compatible con los tiempos de ejecución de más de 15 minutos.

## Flotas de computación
<a name="compute.fleets"></a>

CodeCatalyst ofrece las siguientes flotas informáticas:
+ Flotas bajo demanda
+ Flotas aprovisionadas

En el caso de las flotas bajo demanda, cuando se inicia una acción de flujo de trabajo, el flujo de trabajo aprovisiona los recursos que necesita. Las máquinas se destruyen cuando finaliza la acción. Solo pagará por la cantidad de minutos durante los que se ejecuten sus acciones. Las flotas bajo demanda están completamente administradas e incluyen capacidades de escalado automático para administrar los picos de demanda.

CodeCatalyst también ofrece flotas aprovisionadas que contienen máquinas alimentadas por Amazon EC2 que son mantenidas por. CodeCatalyst Con las flotas aprovisionadas, configura un conjunto de máquinas dedicadas para ejecutar las acciones del flujo de trabajo. Estas máquinas permanecen inactivas, listas para procesar acciones de forma inmediata. Con flotas aprovisionadas, sus máquinas estarán siempre en funcionamiento e incurrirán en costos mientras estén aprovisionadas.

Para crear, actualizar o eliminar una flota, debe tener el rol de **Administrador del espacio** o el rol de **Administrador del proyecto**.

## Propiedades de las flotas bajo demanda
<a name="compute.on-demand"></a>

CodeCatalyst proporciona las siguientes flotas bajo demanda:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/workflows-working-compute.html)

**nota**  
Las especificaciones de las flotas bajo demanda variarán en función del nivel de facturación. Para obtener más información, consulte [Precios](https://codecatalyst.aws/explore/pricing).

Si no se selecciona ninguna flota, CodeCatalyst utiliza`Linux.x86-64.Large`.

## Propiedades de flotas aprovisionadas
<a name="compute.provisioned-fleets"></a>

Una flota aprovisionada contiene las siguientes propiedades: 

**Sistema operativo**  
El sistema operativo. A continuación, se muestran los sistemas operativos disponibles:  
+ Amazon Linux 2
+ Windows Server 2022
**nota**  
Las flotas de Windows solo son compatibles en la acción de compilación. Otras acciones no son compatibles actualmente con Windows.

**Arquitectura**  
Arquitectura del procesador. Están disponibles las siguientes arquitecturas:  
+ x86\$164
+ Arm64

**Tipo de máquina**  
El tipo de máquina de cada instancia. Dispone de los siguientes tipos de máquina:      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/workflows-working-compute.html)

**Capacidad**  
El número inicial de máquinas asignadas a la flota, que define el número de acciones que pueden funcionar en paralelo.

**Modo de escalado**  
Define el comportamiento cuando el número de acciones supera la capacidad de la flota.    
**Aprovisionamiento de capacidad adicional bajo demanda**  
Se configuran máquinas adicionales bajo demanda, que se escalan verticalmente de forma automática en respuesta a las nuevas acciones en ejecución y, posteriormente, se reducen verticalmente a la capacidad base a medida que finalizan. Esto puede conllevar costos adicionales, ya que se paga por minuto por cada máquina en ejecución.  
**Esperar hasta que se disponga de capacidad de flota adicional**  
Las ejecuciones de acciones se colocan en una cola hasta que haya una máquina disponible. Esto limita los costos adicionales, ya que no se asignan máquinas adicionales.

# Edición de una flota aprovisionada
<a name="projects-create-compute-resource"></a>

Use las siguientes instrucciones para crear una flota aprovisionada.

**nota**  
Las flotas aprovisionadas se desactivarán tras dos semanas de inactividad. Si se vuelven a utilizar, se reactivarán automáticamente, pero esta reactivación puede provocar una latencia.

**Creación de una flota aprovisionada**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Computación**.

1. Elija **Crear flota aprovisionada**.

1. En el campo de texto **Nombre de la flota aprovisionada**, introduzca el nombre de la flota.

1. En el menú desplegable **Sistema operativo**, elija el sistema operativo.

1. En el menú desplegable **Tipo de máquina**, elija el tipo para su máquina.

1. En el campo de texto **Capacidad**, introduzca el número máximo de máquinas en la flota.

1. En el menú desplegable **Modos de escalado**, elija el comportamiento de desbordamiento deseado. Para obtener más información acerca de estos campos, consulte [Propiedades de flotas aprovisionadas](workflows-working-compute.md#compute.provisioned-fleets).

1. Seleccione **Crear**.

Tras crear la flota aprovisionada, estará listo para asignarla a una acción. Para obtener más información, consulte [Asignación de una flota o computación a una acción](workflows-assign-compute-resource.md).

# Edición de una flota aprovisionada
<a name="edit-compute-resource"></a>

Use las siguientes instrucciones para editar una flota aprovisionada.

**nota**  
Las flotas aprovisionadas se desactivarán tras dos semanas de inactividad. Si se vuelven a utilizar, se reactivarán automáticamente, pero esta reactivación puede provocar una latencia.

**Edición de una flota aprovisionada**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Computación**.

1. En la lista **Flota aprovisionada**, seleccione la flota que desee editar.

1. Elija **Edit (Edición de)**.

1. En el campo de texto **Capacidad**, introduzca el número máximo de máquinas en la flota.

1. En el menú desplegable **Modos de escalado**, elija el comportamiento de desbordamiento deseado. Para obtener más información acerca de estos campos, consulte [Propiedades de flotas aprovisionadas](workflows-working-compute.md#compute.provisioned-fleets).

1. Seleccione **Save**.

# Eliminación de una flota aprovisionada
<a name="delete-compute-resource"></a>

Siga estas instrucciones para eliminar una flota aprovisionada.

**Eliminación de una flota aprovisionada**
**aviso**  
Antes de eliminar una flota aprovisionada, quítela de todas las acciones eliminando la propiedad `Fleet` del código de YAML de la acción. Cualquier acción que siga haciendo referencia a una flota aprovisionada después de eliminarla fallará la próxima vez que se ejecute la acción.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Computación**.

1. En la lista **Flota aprovisionada**, seleccione la flota que desee eliminar.

1. Elija **Eliminar**.

1. Escriba **delete** para confirmar la eliminación.

1. Elija **Eliminar**.

# Asignación de una flota o computación a una acción
<a name="workflows-assign-compute-resource"></a>

De forma predeterminada, las acciones de flujo de trabajo utilizan la flota bajo demanda `Linux.x86-64.Large` con un tipo de computación de Amazon EC2. Para usar una flota aprovisionada en su lugar o usar una flota bajo demanda diferente, por ejemplo`Linux.x86-64.2XLarge`, siga estas instrucciones.

------
#### [ Visual ]

**Antes de empezar**
+ Si desea asignar una flota aprovisionada, primero debe crear la flota aprovisionada. Para obtener más información, consulte [Edición de una flota aprovisionada](projects-create-compute-resource.md).

**Asignación de una flota aprovisionada o un tipo de flota diferente a una acción**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, elija la acción a la que desee asignar la flota aprovisionada o el nuevo tipo de flota.

1. Elija la pestaña **Configuración**.

1. En **Flota de computación**, haga lo siguiente:

   Especifique la máquina o la flota que ejecutará el flujo de trabajo o las acciones del flujo de trabajo. Con las flotas bajo demanda, cuando se inicia una acción, el flujo de trabajo aprovisiona los recursos que necesita y las máquinas se destruyen cuando finaliza la acción. Ejemplos de flotas bajo demanda: `Linux.x86-64.Large`, `Linux.x86-64.XLarge`. Para obtener más información sobre las flotas bajo demanda, consulte [Propiedades de las flotas bajo demanda](workflows-working-compute.md#compute.on-demand).

   Con las flotas aprovisionadas, configura un conjunto de máquinas dedicadas para ejecutar las acciones del flujo de trabajo. Estas máquinas permanecen inactivas, listas para procesar acciones de forma inmediata. Para obtener más información sobre las flotas aprovisionadas, consulte [Propiedades de flotas aprovisionadas](workflows-working-compute.md#compute.provisioned-fleets).

   Si `Fleet` se omite, el valor predeterminado es `Linux.x86-64.Large`.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Antes de empezar**
+ Si desea asignar una flota aprovisionada, primero debe crear la flota aprovisionada. Para obtener más información, consulte [Edición de una flota aprovisionada](projects-create-compute-resource.md).

**Asignación de una flota aprovisionada o un tipo de flota diferente a una acción**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. Busque la acción a la que desee asignar la flota aprovisionada o el nuevo tipo de flota.

1. En la acción, añada una propiedad `Compute` y configure `Fleet` según el nombre de la flota o el tipo de flota bajo demanda. Para obtener más información, consulte la descripción de la propiedad `Fleet` en la [Acciones de compilación y prueba de YAML](build-action-ref.md) de la acción.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Uso compartido de recursos de computación entre acciones
<a name="compute-sharing"></a>

De forma predeterminada, las acciones de un flujo de trabajo se ejecutan en instancias independientes de una [flota](workflows-working-compute.md#compute.fleets). Este comportamiento proporciona a las acciones aislamiento y previsibilidad en cuanto al estado de las entradas. El comportamiento predeterminado requiere una configuración explícita para compartir el contexto, como archivos y variables, entre las acciones. 

El uso compartido de recursos de computación es una funcionalidad que permite ejecutar todas las acciones de un flujo de trabajo en la misma instancia. El uso compartido de recursos de computación puede proporcionar tiempos de ejecución del flujo de trabajo más rápidos, ya que se dedica menos tiempo a aprovisionar instancias. También puede compartir archivos (artefactos) entre las acciones sin necesidad de una configuración adicional del flujo de trabajo.

Cuando un flujo de trabajo se ejecuta mediante el uso compartido de recursos de computación, se reserva una instancia de la flota predeterminada o especificada durante todas las acciones de ese flujo de trabajo. Cuando se completa la ejecución del flujo de trabajo, se libera la reserva de la instancia.

**Topics**
+ [

## Ejecución de varias acciones en recursos de computación compartidos
](#how-to-compute-share)
+ [

## Consideraciones sobre el uso compartido de recursos de computación
](#compare-compute-sharing)
+ [

## Activación del uso compartido de recursos de computación
](#compute-sharing-steps)
+ [

## Ejemplos
](#compute-sharing-examples)

## Ejecución de varias acciones en recursos de computación compartidos
<a name="how-to-compute-share"></a>

Puede usar el atributo `Compute` de la definición de YAML en el nivel del flujo de trabajo para especificar las propiedades de los recursos compartidos de flota y computación de las acciones. También puede configurar las propiedades de computación con el editor visual de CodeCatalyst. Para especificar una flota, defina el nombre de una flota existente, establezca el tipo de computación en **EC2** y active el uso compartido de recursos de computación.

**nota**  
El uso compartido de recursos de computación solo se admite si el tipo de procesamiento está configurado en **EC2** y no es compatible con el sistema operativo Windows Server 2022. Para obtener más información sobre las flotas de computación, los tipos de computación y las propiedades, consulte [Configuración de imágenes de computación y tiempo de ejecución](workflows-working-compute.md).

**nota**  
Si trabaja en el nivel gratuito y especifica la flota de `Linux.x86-64.XLarge` o `Linux.x86-64.2XLarge` manualmente en la definición de flujo de trabajo de YAML, la acción seguirá ejecutándose en la flota predeterminada (`Linux.x86-64.Large`). Para obtener más información sobre la disponibilidad de computación y los precios, consulte la [tabla con las opciones de los niveles](https://codecatalyst.aws/explore/pricing). 

Cuando el uso compartido de recursos de computación está activado, la carpeta que contiene el código fuente del flujo de trabajo se copia automáticamente en todas las acciones. No es necesario configurar los artefactos de salida ni hacer referencia a ellos como artefactos de entrada en una definición de flujo de trabajo (archivo YAML). Como autor de un flujo de trabajo, debe configurar las variables de entorno mediante entradas y salidas, del mismo modo que lo haría si no utilizara el uso compartido de recursos de computación. Si quiere compartir carpetas entre acciones ajenas al código fuente del flujo de trabajo, considere la posibilidad de almacenar los archivos en caché. Para obtener más información, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md) y [Almacenamiento en caché de archivos entre ejecuciones de flujos de trabajo](workflows-caching.md).

El repositorio de código fuente en el que reside el archivo de definición del flujo de trabajo se identifica mediante la etiqueta `WorkflowSource`. Al utilizar el uso compartido de recursos de computación, el código fuente del flujo de trabajo se descarga en la primera acción que hace referencia a él y queda automáticamente disponible para que lo utilicen las siguientes acciones de la ejecución del flujo de trabajo. Cualquier cambio realizado en la carpeta que contiene el código fuente del flujo de trabajo mediante una acción, como añadir, modificar o eliminar archivos, también estará visible en las acciones siguientes del flujo de trabajo. Puede hacer referencia a los archivos que se encuentran en la carpeta de código fuente del flujo de trabajo en cualquiera de las acciones del flujo de trabajo, del mismo modo que lo haría si no utilizara el uso compartido de recursos de computación. Para obtener más información, consulte [Referencia a los archivos del repositorio de código fuente](workflows-sources-reference-files.md).

**nota**  
Los flujos de trabajo con recursos de computación compartidos deben especificar una secuencia estricta de acciones, por lo que no se pueden configurar acciones paralelas. Aunque se pueden configurar artefactos de salida en cualquier acción de la secuencia, no se admiten artefactos de entrada.

## Consideraciones sobre el uso compartido de recursos de computación
<a name="compare-compute-sharing"></a>

Puede ejecutar flujos de trabajo con recursos de computación compartidos para acelerar las ejecuciones de los flujos de trabajo y compartir el contexto entre las acciones de un flujo de trabajo que utilizan la misma instancia. Tenga en cuenta lo siguiente para determinar si el uso compartido de recursos de computación es adecuado para su escenario:


|   | Con uso compartido de recursos de computación | Sin uso compartido de recursos de computación | 
| --- | --- | --- | 
|  Tipo de computación  |  Amazon EC2  |  Amazon EC2, AWS Lambda  | 
|  Aprovisionamiento de instancias  |  Las acciones se ejecutan en la misma instancia  |  Las acciones se ejecutan en instancias distintas  | 
|  Sistema operativo  |  Amazon Linux 2  |  Amazon Linux 2, Windows Server 2022 (solo acción de compilación)  | 
|  Referencia a archivos  |  `$CATALYST_SOURCE_DIR_WorkflowSource`, `/sources/WorkflowSource/`  |  `$CATALYST_SOURCE_DIR_WorkflowSource`, `/sources/WorkflowSource/`  | 
|  Estructura de flujo de trabajo  |  Las acciones solo se pueden ejecutar de forma secuencial  |  Las acciones se pueden ejecutar en paralelo  | 
|  Acceder a los datos en las acciones del flujo  |  Acceder al código fuente del flujo de trabajo en caché (`WorkflowSource`)  |  Acceder a las salidas de artefactos compartidos (requiere configuración adicional)  | 

## Activación del uso compartido de recursos de computación
<a name="compute-sharing-steps"></a>

Utilice la siguiente instrucción para activar el uso compartido de recursos de computación en un flujo de trabajo.

------
#### [ Visual ]

**Activación del uso compartido de recursos de computación mediante el editor visual**

1. Abra la consola de CodeCatalyst en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **Visual**.

1. Elija **Propiedades del flujo de trabajo**.

1. En el menú desplegable **Tipo de computación**, elija **EC2**.

1. (Opcional) En el menú desplegable **Flota de computación (opcional)**, seleccione la flota que quiera usar para ejecutar las acciones del flujo de trabajo. Puede elegir una flota bajo demanda o crear y elegir una flota aprovisionada. Para obtener más información, consulte [Edición de una flota aprovisionada](projects-create-compute-resource.md) y [Asignación de una flota o computación a una acción](workflows-assign-compute-resource.md). 

1. Pulse el botón de alternancia para activar el uso compartido de recursos de computación y hacer que las acciones del flujo de trabajo se ejecuten en la misma flota.

1. (Opcional) Elija el modo de ejecución del flujo de trabajo. Para obtener más información, consulte [Configuración del comportamiento de puesta en cola de las ejecuciones](workflows-configure-runs.md).

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Activación del uso compartido de recursos de computación mediante el editor de YAML**

1. Abra la consola de CodeCatalyst en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **YAML**.

1. Active la opción de uso compartido de recursos de computación estableciendo el campo `SharedInstance` en `TRUE` y `Type` en `EC2`. Establezca `Fleet` en la flota de computación que desee usar para ejecutar acciones del flujo de trabajo. Puede elegir una flota bajo demanda o crear y elegir una flota aprovisionada. Para obtener más información, consulte [Edición de una flota aprovisionada](projects-create-compute-resource.md) y [Asignación de una flota o computación a una acción](workflows-assign-compute-resource.md).

   En un flujo de trabajo de YAML, añada código similar al siguiente:

   ```
     Name: MyWorkflow
     SchemaVersion: "1.0"
     Compute: # Define compute configuration.
       Type: EC2
       Fleet: MyFleet # Optionally, choose an on-demand or provisioned fleet.
       SharedInstance: true # Turn on compute sharing. Default is False.
     Actions:
       BuildFirst:
         Identifier: aws/build@v1
         Inputs:
           Sources:
             - WorkflowSource
         Configuration:
           Steps:
             - Run: ...
             ...
   ```

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

## Ejemplos
<a name="compute-sharing-examples"></a>

**Topics**
+ [

### Ejemplo: Amazon S3 Publish
](#compute-share-s3)

### Ejemplo: Amazon S3 Publish
<a name="compute-share-s3"></a>

En los siguientes ejemplos de flujo de trabajo se muestra cómo ejecutar la acción Publish de Amazon S3 de dos maneras: primero mediante artefactos de entrada y, a continuación, mediante el uso compartido de recursos de computación. Con el uso compartido de recursos de computación, los artefactos de entrada no son necesarios, ya que se puede acceder al `WorkflowSource` almacenado en caché. Además, el artefacto de salida de la acción Build ya no es necesario. La acción Publish de S3 está configurada para utilizar la propiedad explícita `DependsOn` para mantener las acciones secuenciales; la acción Build debe ejecutarse correctamente para que la acción Publish de S3 se ejecute.
+ Sin el uso compartido de recursos de computación, tiene que usar artefactos de entrada y compartir los resultados con las siguientes acciones:

  ```
  Name: S3PublishUsingInputArtifact
  SchemaVersion: "1.0"
  Actions:
    Build:
      Identifier: aws/build@v1
      Outputs:
        Artifacts:
          - Name: ArtifactToPublish
            Files: [output.zip]
      Inputs:
        Sources:
          - WorkflowSource
      Configuration:
        Steps:
          - Run: ./build.sh # Build script that generates output.zip
    PublishToS3:
      Identifier: aws/s3-publish@v1
      Inputs:
        Artifacts:
        - ArtifactToPublish
      Environment:
        Connections:
          - Role: codecatalyst-deployment-role
            Name: dev-deployment-role
        Name: dev-connection
      Configuration:
        SourcePath: output.zip
        DestinationBucketName: amzn-s3-demo-bucket
  ```
+ Si utiliza el uso compartido de recursos de computación estableciendo `SharedInstance` en `TRUE`, puede ejecutar varias acciones en la misma instancia y compartir artefactos especificando un único código fuente del flujo de trabajo. Los artefactos de entrada no son obligatorios y no se pueden especificar:

  ```
  Name: S3PublishUsingComputeSharing
  SchemaVersion: "1.0"
  Compute: 
    Type: EC2
    Fleet: dev-fleet
    SharedInstance: TRUE
  Actions:
    Build:
      Identifier: aws/build@v1
      Inputs:
        Sources:
          - WorkflowSource
      Configuration:
        Steps:
          - Run: ./build.sh # Build script that generates output.zip
    PublishToS3:
      Identifier: aws/s3-publish@v1
      DependsOn: 
        - Build
      Environment:
        Connections:
          - Role: codecatalyst-deployment-role
            Name: dev-deployment-role
        Name: dev-connection
      Configuration:
        SourcePath: output.zip
        DestinationBucketName: amzn-s3-demo-bucket
  ```

# Especificación de imágenes del entorno en tiempo de ejecución
<a name="build-images"></a>

Una *imagen de entorno de ejecución* es un contenedor de Docker en el que se ejecutan las acciones del flujo de CodeCatalyst trabajo. El contenedor Docker se ejecuta sobre la plataforma de procesamiento elegida e incluye un sistema operativo y herramientas adicionales que una acción de flujo de trabajo podría necesitar, como Node.js y.tar. AWS CLI

De forma predeterminada, las acciones del flujo de trabajo se ejecutarán en una de las [imágenes activas](#build-curated-images) suministradas y mantenidas por. CodeCatalyst Solo las acciones de compilación y prueba admiten imágenes personalizadas. Para obtener más información, consulte [Asignación de una imagen de Docker de un entorno en tiempo de ejecución personalizada a una acción](#build-images-specify).

**Topics**
+ [

## Imágenes activas
](#build-curated-images)
+ [

## ¿Qué pasa si una imagen activa no incluye las herramientas que necesito?
](#build-images-more-tools)
+ [

## Asignación de una imagen de Docker de un entorno en tiempo de ejecución personalizada a una acción
](#build-images-specify)
+ [

## Ejemplos
](#workflows-working-custom-image-ex)

## Imágenes activas
<a name="build-curated-images"></a>

*Las imágenes activas son imágenes* del entorno de ejecución que son totalmente compatibles con las herramientas preinstaladas CodeCatalyst e incluyen dichas herramientas. Actualmente hay dos conjuntos de imágenes activas: uno publicado en marzo de 2024 y otro publicado en noviembre de 2022.

El hecho de que una acción utilice una imagen de marzo de 2024 o de noviembre de 2022 depende de la acción:
+ Las acciones de compilación y prueba que se añadieron a un flujo de trabajo el 26 de marzo de 2024 o después incluirán una sección `Container` en su definición de YAML que especifica explícitamente una [imagen de marzo de 2024](#build.default-image). Si lo desea, puede eliminar la sección `Container` para volver a la imagen de [noviembre de 2022](#build.previous-image).
+ Las acciones de compilación y prueba que se hayan añadido a un flujo de trabajo antes del 26 de marzo de 2024 *no* incluirán ninguna sección `Container` en su definición de YAML y, por lo tanto, utilizarán una [imagen de noviembre de 2022](#build.previous-image). Puede conservar la imagen de noviembre de 2022 o actualizarla. Para actualizar la imagen, abra la acción en el editor visual, elija la pestaña **Configuración** y, a continuación, seleccione la imagen de marzo de 2024 en la lista desplegable **Imagen de Docker del entorno en tiempo de ejecución**. Esta selección añadirá una sección `Container` a la definición de YAML de la acción que se rellenará con la imagen correspondiente de marzo de 2024.
+ Todas las demás acciones utilizarán una [imagen de noviembre de 2022](#build.previous-image) o una [imagen de marzo de 2024](#build.default-image). Para obtener más información, consulte la documentación de la acción. 

**Topics**
+ [

### Imágenes de marzo de 2024
](#build.default-image)
+ [

### Imágenes de noviembre de 2022
](#build.previous-image)

### Imágenes de marzo de 2024
<a name="build.default-image"></a>

Las imágenes de marzo de 2024 son las últimas imágenes proporcionadas por. CodeCatalyst Hay una imagen de marzo de 2024 por type/fleet combinación de cómputo.

En la siguiente tabla, se muestran las herramientas instaladas en cada imagen de marzo de 2024.


**Herramientas de imagen de marzo de 2024**  

| Herramienta | CodeCatalyst Amazon EC2 para Linux x86\$164 - `CodeCatalystLinux_x86_64:2024_03` | CodeCatalyst Lambda para Linux x86\$164 - `CodeCatalystLinuxLambda_x86_64:2024_03` | CodeCatalyst Amazon EC2 para Linux Arm64 - `CodeCatalystLinux_Arm64:2024_03` | CodeCatalyst Lambda para Linux Arm64 - `CodeCatalystLinuxLambda_Arm64:2024_03` | 
| --- | --- | --- | --- | --- | 
| AWS CLI | 2.15.17 | 2.15.17 | 2.15.17 | 2.15.17 | 
| AWS Copiloto CLI | 1.32.1 | 1,32.1 | 1,32.1 | 1,32.1 | 
| Docker | 240,9 | N/A | 24.0.9 | N/A | 
| Docker Compose | 2.23.3 | N/A | 2.23.3 | N/A | 
| Git | 2.43,0 | 2.43,0 | 2.43,0 | 2.43,0 | 
| Go | 1,21,5 | 1.21.5 | 1.21.5 | 1.21.5 | 
| Gradle | 8.5 | 8.5 | 8.5 | 8.5 | 
| Java | Corretto17 | Corretto17 | Corretto17 | Corretto17 | 
| Maven | 3.9.6 | 3.9.6 | 3.9.6 | 3.9.6 | 
| Node.js | 18,19,0 | 18,19,0 | 18,19,0 | 18,19,0 | 
| npm | 102.3 | 10.2.3 | 10.2.3 | 10.2.3 | 
| Python | 3,9,18 | 3.9,18 | 3.9,18 | 3.9,18 | 
| Python3 | 3.11.6 | 3.11.6 | 3.11.6 | 3.11.6 | 
| pip | 22.3.1 | 22.3.1 | 22.3.1 | 22.3.1 | 
| .NET | 8.0.100 | 8.0.100 | 8.0.100 | 8.0.100 | 

### Imágenes de noviembre de 2022
<a name="build.previous-image"></a>

Hay una imagen de noviembre de 2022 por combinación de cómputo type/fleet . También hay una imagen de Windows de noviembre de 2022 disponible con la acción de compilación si ha configurado una [flota aprovisionada](workflows-working-compute.md#compute.fleets).

En la siguiente tabla, se muestran las herramientas instaladas en cada imagen de noviembre de 2022.


**Herramientas de imagen de noviembre de 2022**  

| Herramienta | CodeCatalyst Amazon EC2 para Linux x86\$164 - `CodeCatalystLinux_x86_64:2022_11` | CodeCatalyst Lambda para Linux x86\$164 - `CodeCatalystLinuxLambda_x86_64:2022_11` | CodeCatalyst Amazon EC2 para Linux Arm64 - `CodeCatalystLinux_Arm64:2022_11` | CodeCatalyst Lambda para Linux Arm64 - `CodeCatalystLinuxLambda_Arm64:2022_11` | CodeCatalyst Amazon EC2 para Windows x86\$164 - `CodeCatalystWindows_x86_64:2022_11` | 
| --- | --- | --- | --- | --- | --- | 
| AWS CLI | 2.15.17 | 2.15.17 | 2.15.17 | 2.15.17 | 2.13.19 | 
| AWS Copiloto CLI | 0.6.0 | 0.6.0 | N/A | N/A | 1.30.1 | 
| Docker | 23,01 | N/A | 23.0.1 | N/A | N/A | 
| Docker Compose | 2.16.0 | N/A | 2.16.0 | N/A | N/A | 
| Git | 2.40.0 | 2.40.0 | 2.39,2 | 2.39,2 | 2.42,0 | 
| Go | 1.20.2 | 1.20.2 | 1.20.1 | 1,20.1 | 1.19 | 
| Gradle | 8.0.2 | 8.0.2 | 8.0.1 | 8.0.1 | 8.3 | 
| Java | Corretto17 | Corretto17 | Corretto17 | Corretto17 | Corretto17 | 
| Maven | 3.9.4 | 3.9.4 | 3.9.0 | 3.9.0 | 3.9.4 | 
| Node.js | 16,20,2 | 16,20,2 | 16,19,1 | 16,14.2 | 16,20,0 | 
| npm | 8,19,4 | 8.19,4 | 8.19,3 | 8.5.0 | 8.19,4 | 
| Python | 3,9,15 | 2.7.18 | 3.11.2 | 2.7.18 | 3.9.13 | 
| Python3 | N/A | 3,9,15 | N/A | 3.11.2 | N/A | 
| pip | 22.2.2 | 22.2.2 | 23.0.1 | 23.0.1 | 22.0.4 | 
| .NET | 6.0.407 | 6,0407 | 6,0406 | 6.0.406 | 6.0.414 | 

## ¿Qué pasa si una imagen activa no incluye las herramientas que necesito?
<a name="build-images-more-tools"></a>

Si ninguna de las [imágenes activas](#build-curated-images) suministradas por CodeCatalyst incluye las herramientas que necesita, tiene un par de opciones:
+ Puede proporcionar una imagen de Docker del entorno en tiempo de ejecución personalizada que incluya las herramientas necesarias. Para obtener más información, consulte [Asignación de una imagen de Docker de un entorno en tiempo de ejecución personalizada a una acción](#build-images-specify).
**nota**  
 Si desea proporcionar una imagen de Docker del entorno en tiempo de ejecución personalizada, asegúrese de que la imagen personalizada tenga Git instalado. 
+ Puede hacer que la acción de compilación o prueba del flujo de trabajo instale las herramientas que necesite.

  Por ejemplo, puede incluir las siguientes instrucciones en la sección `Steps` del código de YAML de la acción de compilación o prueba:

  ```
  Configuration:
    Steps:
      - Run: ./setup-script
  ```

  Luego, la *setup-script* instrucción ejecutaría el siguiente script para instalar el administrador de paquetes Node (npm):

  ```
  #!/usr/bin/env bash
  echo "Setting up environment"
  
  touch ~/.bashrc
  curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
  source ~/.bashrc 
  nvm install v16.1.0
  source ~/.bashrc
  ```

  Para obtener más información sobre el código de YAML de la acción de compilación, consulte [Acciones de compilación y prueba de YAML](build-action-ref.md).

## Asignación de una imagen de Docker de un entorno en tiempo de ejecución personalizada a una acción
<a name="build-images-specify"></a>

Si no desea utilizar una imagen de [Active proporcionada por CodeCatalyst, puede proporcionar una imagen](#build-curated-images) de Docker de un entorno de ejecución personalizado. Si quiere proporcionar una imagen personalizada, asegúrese de que tenga Git instalado. La imagen puede residir en Docker Hub, Amazon Elastic Container Registry o cualquier repositorio público.

Para obtener información sobre cómo crear una imagen de Docker personalizada, consulte [Containerize an application](https://docs.docker.com/get-started/02_our_app/) en la documentación de Docker.

Use las siguientes instrucciones para asignar una imagen de Docker del entorno en tiempo de ejecución personalizada a una acción. Tras especificar una imagen, la CodeCatalyst despliega en la plataforma informática cuando se inicia la acción.

**nota**  
Las siguientes acciones no son compatibles con las imágenes de Docker del entorno de ejecución personalizado: **Deploy CloudFormation stack**, **Deploy to ECS** y **GitHub Actions. Las** imágenes de Docker del entorno de ejecución personalizado tampoco admiten el tipo de cálculo **Lambda**.

------
#### [ Visual ]

**Asignación de una imagen de Docker del entorno en tiempo de ejecución personalizada mediante el editor visual**

1. [Abra la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, elija la acción que utilizará la imagen de Docker del entorno en tiempo de ejecución personalizada.

1. Elija la pestaña **Configuración**.

1. Cerca de la parte inferior, complete los siguientes campos.

   **Imagen de Docker del entorno en tiempo de ejecución (opcional)**

   Especifique el registro en el que la imagen está almacenada. Los valores válidos son:
   + `CODECATALYST` (editor de YAML)

     La imagen se guarda en el CodeCatalyst registro.
   + **Docker Hub** (editor visual) o `DockerHub` (editor de YAML)

     La imagen está almacenada en el registro de imágenes de Docker Hub.
   + **Otro registro** (editor visual) o `Other` (editor de YAML)

     La imagen está almacenada en un registro de imágenes personalizado. Se puede utilizar cualquier registro disponible públicamente.
   + **Amazon Elastic Container Registry** (editor visual) o `ECR` (editor de YAML)

     La imagen está almacenada en un repositorio de imágenes de Amazon Elastic Container Registry. Para usar una imagen de un repositorio de Amazon ECR, esta acción necesita acceso a Amazon ECR. Para habilitar este acceso, debe crear un [rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que incluya los siguientes permisos y una política de confianza personalizada. (Si lo desea, puede modificar un rol existente para incluir los permisos y la política).

     El rol de IAM debe incluir los siguientes permisos en su política de rol:
     + `ecr:BatchCheckLayerAvailability`
     + `ecr:BatchGetImage`
     + `ecr:GetAuthorizationToken`
     + `ecr:GetDownloadUrlForLayer`

     El rol de IAM debe incluir la siguiente política de confianza personalizada:

     Para obtener más información sobre cómo crear roles de IAM, consulte [Crear un rol mediante políticas de confianza personalizadas (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) en la *Guía del usuario de IAM*.

     Una vez que haya creado el rol, debe asignarlo a la acción a través de un entorno. Para obtener más información, consulte [Asociación de un entorno a una acción](deploy-environments-add-app-to-environment.md).

   **URL de imagen de ECR**, **Imagen de Docker Hub** o **URL de imagen**

   Especifique uno de los siguientes valores:
   + Si utiliza un registro de `CODECATALYST`, establezca la imagen en una de las siguientes [imágenes activas](#build-curated-images):
     + `CodeCatalystLinux_x86_64:2024_03`
     + `CodeCatalystLinux_x86_64:2022_11`
     + `CodeCatalystLinux_Arm64:2024_03`
     + `CodeCatalystLinux_Arm64:2022_11`
     + `CodeCatalystLinuxLambda_x86_64:2024_03`
     + `CodeCatalystLinuxLambda_x86_64:2022_11`
     + `CodeCatalystLinuxLambda_Arm64:2024_03`
     + `CodeCatalystLinuxLambda_Arm64:2022_11`
     + `CodeCatalystWindows_x86_64:2022_11`
   + Si utiliza un registro de Docker Hub, establezca la imagen con el nombre de la imagen de Docker Hub y la etiqueta opcional.

     Ejemplo: `postgres:latest`
   + Si utiliza un registro de Amazon ECR, establezca la imagen en el URI del registro de Amazon ECR.

     Ejemplo: `111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo`
   + Si utiliza un registro personalizado, establezca la imagen en el valor esperado por el registro personalizado.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Asignación de una imagen de Docker de entorno en tiempo de ejecución personalizada mediante el editor de YAML**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. Busque la acción a la que desea asignar una imagen de Docker del entorno en tiempo de ejecución.

1. En la acción, añada una sección `Container` y sus propiedades subyacentes `Registry` y `Image`. Para obtener más información, consulte la descripción de las propiedades `Container`, `Registry` y `Image` en la [Acciones](workflow-reference.md#actions-reference) de la acción.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

## Ejemplos
<a name="workflows-working-custom-image-ex"></a>

Los siguientes ejemplos muestran cómo asignar una imagen de Docker del entorno en tiempo de ejecución personalizada a una acción del archivo de definición del flujo de trabajo.

**Topics**
+ [

### Ejemplo: uso de una imagen de Docker del entorno en tiempo de ejecución personalizada para que Node.js 18 sea compatible con Amazon ECR
](#workflows-working-custom-image-ex-ecr-node18)
+ [

### Ejemplo: uso de una imagen de Docker del entorno en tiempo de ejecución personalizada para que Node.js 18 sea compatible con Docker Hub
](#workflows-working-custom-image-ex-docker-node18)

### Ejemplo: uso de una imagen de Docker del entorno en tiempo de ejecución personalizada para que Node.js 18 sea compatible con Amazon ECR
<a name="workflows-working-custom-image-ex-ecr-node18"></a>

El siguiente ejemplo muestra cómo usar una imagen de Docker del entorno en tiempo de ejecución personalizada para que Node.js 18 sea compatible con [Amazon ECR](https://gallery.ecr.aws/amazonlinux/amazonlinux).

```
Configuration:
  Container:
    Registry: ECR
    Image: public.ecr.aws/amazonlinux/amazonlinux:2023
```

### Ejemplo: uso de una imagen de Docker del entorno en tiempo de ejecución personalizada para que Node.js 18 sea compatible con Docker Hub
<a name="workflows-working-custom-image-ex-docker-node18"></a>

El siguiente ejemplo muestra cómo usar una imagen de Docker del entorno en tiempo de ejecución personalizada para que Node.js 18 sea compatible con [Docker Hub](https://hub.docker.com/_/node).

```
Configuration:
  Container:
    Registry: DockerHub
    Image: node:18.18.2
```

# Conexión de repositorios de código fuente a flujos de trabajo
<a name="workflows-sources"></a>

Un *origen*, denominado también *origen de entrada*, es un repositorio de código fuente al que se conecta una [acción del flujo de trabajo](workflows-actions.md) para obtener los archivos que necesita para llevar a cabo sus operaciones. Por ejemplo, una acción de flujo de trabajo puede conectarse a un repositorio de código fuente para obtener los archivos de código fuente de la aplicación con el fin de compilar una aplicación.

CodeCatalyst los flujos de trabajo admiten las siguientes fuentes:
+ CodeCatalyst repositorios de fuentes: para obtener más información, consulte[Almacene código y colabore en él con los repositorios de código fuente en CodeCatalystAlmacenamiento de código y colaboración con los repositorios de código fuente](source.md).
+ GitHub repositorios, repositorios de Bitbucket y repositorios de GitLab proyectos: para obtener más información, consulte. [Añada funcionalidad a los proyectos con extensiones en CodeCatalystAdición de funcionalidad a proyectos mediante extensiones](extensions.md)

**Topics**
+ [

# Especificación del repositorio de código fuente de un archivo de flujo de trabajo
](workflows-sources-specify-workflow-def.md)
+ [

# Especificación del repositorio de código fuente de una acción de flujo de trabajo
](workflows-sources-specify-action.md)
+ [

# Referencia a los archivos del repositorio de código fuente
](workflows-sources-reference-files.md)
+ [

# variables BranchName '' y CommitId ''
](workflows-sources-variables.md)

# Especificación del repositorio de código fuente de un archivo de flujo de trabajo
<a name="workflows-sources-specify-workflow-def"></a>

Siga las instrucciones siguientes para especificar el repositorio de CodeCatalyst origen en el que desea almacenar el archivo de definición de flujo de trabajo. Si prefieres especificar un GitHub repositorio, un repositorio de Bitbucket o un repositorio de GitLab proyectos, consulta en su lugar[Añada funcionalidad a los proyectos con extensiones en CodeCatalystAdición de funcionalidad a proyectos mediante extensiones](extensions.md).

El repositorio de código fuente en el que reside el archivo de definición del flujo de trabajo se identifica mediante la etiqueta `WorkflowSource`.

**nota**  
El repositorio de código fuente en el que reside el archivo de definición de flujo de trabajo se especifica cuando se confirma por primera vez. Tras esta confirmación, el repositorio y el archivo de definición del flujo de trabajo se vinculan permanentemente. La única forma de cambiar el repositorio después de la confirmación inicial es volver a crear el flujo de trabajo en un repositorio diferente.

**Especificación del repositorio de código fuente en el que se almacenará el archivo de definición del flujo de trabajo**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Seleccione **Crear flujo de trabajo** y cree el flujo de trabajo. Para obtener más información, consulte [Creación de un flujo de trabajo](workflows-create-workflow.md).

   Durante el proceso de creación del flujo de trabajo, puede especificar el CodeCatalyst repositorio, la rama y la carpeta en los que desea almacenar el archivo de definición del flujo de trabajo.

# Especificación del repositorio de código fuente de una acción de flujo de trabajo
<a name="workflows-sources-specify-action"></a>

Utilice estas instrucciones para especificar un repositorio de código fuente para utilizarlo con una acción de flujo de trabajo. Al iniciarse, la acción agrupa los archivos del repositorio de código fuente configurado en un artefacto, descarga el artefacto en la [imagen de Docker del entorno en tiempo de ejecución](build-images.md) en la que se ejecuta la acción, y después completa su procesamiento con los archivos descargados.

**nota**  
Actualmente, dentro de una acción de flujo de trabajo, solo se puede especificar un repositorio de código fuente, que es el repositorio de código fuente en el que reside el archivo de definición del flujo de trabajo (en el directorio `.codecatalyst/workflows/` o en uno de sus subdirectorios). Este repositorio de código fuente se representa mediante la etiqueta `WorkflowSource`.

------
#### [ Visual ]

**Especificación del repositorio de código fuente que utilizará una acción (editor visual)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, elija la acción en la que quiera especificar el origen.

1. Seleccione **Entradas**.

1. En **Orígenes (opcional)**, haga lo siguiente:

   Especifique las etiquetas que representan los repositorios de código fuente que necesitará la acción. Actualmente, la única etiqueta admitida es `WorkflowSource`, que representa el repositorio de código fuente en el que se almacena el archivo de definición de flujo de trabajo.

   Si omite un origen, debe especificar al menos un artefacto de entrada en `action-name/Inputs/Artifacts`.

   Para obtener más información sobre orígenes, consulte [Conexión de repositorios de código fuente a flujos de trabajo](workflows-sources.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Especificación del repositorio de código fuente que utilizará una acción (editor de YAML)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En una acción, agregue código similar al siguiente:

   ```
   action-name:
    Inputs:
      Sources:
        - WorkflowSource
   ```

   Para obtener más información, consulte la descripción de la propiedad `Sources` en la [Definición de flujo de trabajo en YAML](workflow-reference.md) para la acción.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Referencia a los archivos del repositorio de código fuente
<a name="workflows-sources-reference-files"></a>

Si tiene archivos que residan en un repositorio de código fuente y necesita hacer referencia a estos archivos en una de las acciones de su flujo de trabajo, complete el siguiente procedimiento.

**nota**  
Véase también [Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

**Referencia a un archivo almacenado en un repositorio de código fuente**
+ En la acción en la que quiera hacer referencia a un archivo, agregue un código similar al siguiente:

  ```
  Actions:
    My-action:
      Inputs:
        Sources:
          - WorkflowSource
        Configuration:
          Steps:
          - run: cd my-app && cat file1.jar
  ```

  En el código anterior, la acción busca en el directorio `my-app` de la raíz del repositorio de código fuente `WorkflowSource` para buscar y mostrar el archivo `file1.jar`.

# variables BranchName '' y CommitId ''
<a name="workflows-sources-variables"></a>

La CodeCatalyst fuente produce `BranchName` y establece `CommitId` las variables cuando se ejecuta el flujo de trabajo. Se conocen como *variables predefinidas*. Para obtener información sobre estas variables, consulte la tabla siguiente.

Para obtener información sobre cómo hacer referencia a estas variables en un flujo de trabajo, consulte [Uso de variables predefinidas](workflows-using-predefined-variables.md).


| Clave | Valor | 
| --- | --- | 
|  CommitId  |  El ID de confirmación que representa el estado del repositorio en el momento en que se inició la ejecución del flujo de trabajo. Ejemplo: `example3819261db00a3ab59468c8b` Véase también: [Ejemplo: hacer referencia a la variable predefinida CommitId "»](workflows-predefined-examples.md#workflows-working-with-variables-ex-refer-action)  | 
|  BranchName  |  El nombre de la ramificación desde la que se inició la ejecución del flujo de trabajo. Ejemplos: `main`, `feature/branch` y `test-LiJuan` Véase también: [Ejemplo: hacer referencia a la variable predefinida BranchName «»](workflows-predefined-examples.md#workflows-working-with-variables-ex-branch)  | 

# Conexión de repositorios de paquetes a flujos de trabajo
<a name="workflows-packages"></a>

Un *paquete* es un paquete que incluye el software y los metadatos necesarios para instalar el software y resolver cualquier dependencia. CodeCatalyst admite el formato de paquete npm.

Un paquete se compone de lo siguiente:
+ Un nombre (por ejemplo, `webpack` es el nombre de un paquete npm conocido).
+ Un [espacio de nombres](packages-concepts.md#packages-concepts-package-namespaces) opcional (por ejemplo, `@types` en `@types/node`).
+ Un conjunto de [versiones](packages-concepts.md#packages-concepts-package-versions) (por ejemplo, `1.0.0`, `1.0.1` o `1.0.2`).
+ Metadatos en el nivel del paquete (por ejemplo, etiquetas dist de npm).

En CodeCatalyst, puede publicar paquetes y consumir paquetes de los repositorios de CodeCatalyst paquetes de sus flujos de trabajo. Puedes configurar una acción de compilación o prueba con un repositorio de CodeCatalyst paquetes para configurar automáticamente el cliente npm de una acción para enviar y extraer paquetes del repositorio especificado.

Para obtener más información sobre los paquetes, consulte [Publica y comparte paquetes de software en CodeCatalyst](packages.md).

**nota**  
Actualmente, las acciones de compilación y prueba son compatibles con los repositorios de CodeCatalyst paquetes.

**Topics**
+ [

# Tutorial: Extracción de un repositorio de paquetes
](packages-tutorial.md)
+ [

# Especificar los repositorios de CodeCatalyst paquetes en los flujos de trabajo
](workflows-package-specify-action.md)
+ [

# Uso de tokens de autorización en acciones del flujo de trabajo
](workflows-package-export-token.md)
+ [

# Ejemplos: Repositorios de paquetes en flujos de trabajo
](workflows-working-packages-ex.md)

# Tutorial: Extracción de un repositorio de paquetes
<a name="packages-tutorial"></a>

En este tutorial, aprenderá a crear un flujo de trabajo que ejecute una aplicación cuyas dependencias se extraigan de un repositorio de [CodeCatalyst paquetes](packages-concepts.md#packages-concepts-repository). La aplicación es una sencilla aplicación de Node.js que imprime un mensaje de «Hola mundo» en los registros. CodeCatalyst La aplicación tiene una sola dependencia: el paquete npm [lodash](https://www.npmjs.com/package/lodash). El paquete `lodash` se usa para transformar una cadena `hello-world` en `Hello World`. Utilizará la versión 4.17.20 de este paquete.

Tras configurar la aplicación y el flujo de trabajo, debe configurarlos CodeCatalyst para bloquear la importación de `lodash` versiones adicionales de al repositorio de CodeCatalyst paquetes desde el registro público externo ([npmjs.com](https://www.npmjs.com/)). A continuación, compruebe que las versiones adicionales de `lodash` se hayan bloqueado correctamente.

Al final de este tutorial, deberías tener una buena idea de cómo interactúa un flujo de trabajo con los repositorios de paquetes, tanto internos como externos CodeCatalyst, para recuperar los paquetes. También debes entender las behind-the-scenes interacciones que se producen entre npm, tu repositorio de paquetes, tu flujo de trabajo y el archivo de tu aplicación. `package.json` 

**Topics**
+ [

## Requisitos previos
](#packages-tutorial-prereqs)
+ [

## Paso 1: creación de un repositorio de código fuente
](#packages-tutorial-source-repo)
+ [

## Paso 2: Cree los repositorios de paquetes CodeCatalyst y gateway
](#packages-tutorial-package-repo)
+ [

## Paso 3: creación de la aplicación “Hola, mundo”
](#packages-tutorial-create-app)
+ [

## Paso 4: creación de un flujo de trabajo que ejecute “Hola, mundo”
](#packages-tutorial-create-workflow)
+ [

## Paso 5: verificación del flujo de trabajo
](#packages-tutorial-verify)
+ [

## Paso 6: bloqueo de las importaciones desde npmjs.com
](#packages-tutorial-block)
+ [

## Paso 7: prueba de la característica de bloqueo
](#packages-tutorial-test-block)
+ [

## Limpieza
](#packages-tutorial-cleanup)

## Requisitos previos
<a name="packages-tutorial-prereqs"></a>

Antes de empezar:
+ Necesitas un CodeCatalyst **espacio.** Para obtener más información, consulte [Creación de un espacio](spaces-create.md).
+ En tu CodeCatalyst espacio, necesitas un proyecto vacío llamado:

  ```
  codecatalyst-package-project
  ```

  Use la opción **Empezar desde cero** para crear este proyecto.

  Para obtener más información, consulte [Crear un proyecto vacío en Amazon CodeCatalyst](projects-create.md#projects-create-empty).

## Paso 1: creación de un repositorio de código fuente
<a name="packages-tutorial-source-repo"></a>

En este paso, crearás un repositorio de origen en CodeCatalyst. Este repositorio almacena los archivos de código fuente del tutorial, como los archivos `index.js` y `package.json`.

Para obtener más información sobre los repositorios de código fuente, consulte [Creación de un repositorio de código fuente](source-repositories-create.md).

**Creación de un repositorio de código fuente**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Vaya a su proyecto, `codecatalyst-package-project`.

1. En el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**. 

1. Elija **Agregar repositorio** y, a continuación, elija **Crear repositorio**.

1. En **Nombre del repositorio**, escriba:

   ```
   hello-world-app
   ```

1. Seleccione **Crear**.

## Paso 2: Cree los repositorios de paquetes CodeCatalyst y gateway
<a name="packages-tutorial-package-repo"></a>

En este paso, creará un repositorio de paquetes en su CodeCatalyst proyecto y lo conectará a un repositorio de puerta de enlace, también en su CodeCatalyst proyecto. Luego, importará la dependencia del tutorial (`lodash`) desde npmjs.com a ambos repositorios.

El repositorio de puerta de enlace es el «pegamento» que conecta tu repositorio de paquetes con el npmjs.com público. CodeCatalyst 

Para obtener más información sobre los repositorios de paquetes, consulte [Publica y comparte paquetes de software en CodeCatalyst](packages.md).

**nota**  
En este tutorial, se utilizan los términos repositorio de *CodeCatalyst paquetes y repositorio* de *puerta* de enlace para hacer referencia a los dos repositorios en los que se crean CodeCatalyst en el siguiente procedimiento.

**Para crear repositorios de CodeCatalyst paquetes y puertas de enlace**

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

1. Seleccione **Crear repositorio de paquetes**.

1. En **Nombre del repositorio**, escriba:

   ```
   codecatalyst-package-repository
   ```

1. Elija **\$1 Seleccionar repositorios ascendentes**.

1. Seleccione **Repositorios de puerta de enlace**.

1. En el **npm-public-registry-gateway**cuadro, selecciona **Crear**.

1. Elija **Seleccionar**.

1. Seleccione **Crear**.

   CodeCatalyst crea un repositorio de paquetes denominado `codecatalyst-package-repository` que está conectado a un repositorio de puerta de enlace. El repositorio de puerta de enlace está conectado al registro npmjs.com.

## Paso 3: creación de la aplicación “Hola, mundo”
<a name="packages-tutorial-create-app"></a>

En este paso, crea una aplicación Node.js de «Hello World» e importa su dependencia (`lodash`) a su pasarela y a los repositorios de paquetes. CodeCatalyst 

Para crear la aplicación, necesita un equipo de desarrollo con Node.js y tener instalado el cliente de `npm` asociado.

En este tutorial se asume que utilizarás un entorno de CodeCatalyst desarrollo como máquina de desarrollo. Aunque no es necesario utilizar un entorno CodeCatalyst de desarrollo, es recomendable porque proporciona un entorno de trabajo limpio, tiene Node.js `npm` preinstalado y es fácil de eliminar cuando haya terminado el tutorial. Para obtener más información sobre los CodeCatalyst entornos de desarrollo, consulte[Creación de un entorno de desarrollo](devenvironment-create.md).

Siga las instrucciones siguientes para iniciar un entorno CodeCatalyst de desarrollo y utilizarlo para crear la aplicación «Hello World».

**Para lanzar un entorno de desarrollo CodeCatalyst**

1. En el panel de navegación, elija **Código** y, a continuación, **Entornos de desarrollo**. 

1. Cerca de la parte superior, elija **Crear entorno de desarrollo** y, a continuación, elija **AWS Cloud9 (en el navegador)**.

1. Asegúrese de que **Repositorio** se haya configurado como `hello-world-app` y que **Ramificación existente** se haya configurado como `main`. Seleccione **Crear**.

   El entorno de desarrollo se abrirá en una nueva pestaña del navegador y el repositorio (`hello-world-app`) se clonará en este.

1. Deje abiertas las dos pestañas CodeCatalyst del navegador y continúe con el siguiente procedimiento.

**Creación de la aplicación Node.js “Hola, mundo”**

1. Vaya a su entorno de desarrollo.

1. En la línea de comandos del terminal, cambie al directorio raíz del repositorio de código fuente de `hello-world-app`.

   ```
   cd hello-world-app
   ```

1. Inicialice un proyecto de Node.js:

   ```
   npm init -y
   ```

   La inicialización crea un archivo `package.json` en el directorio raíz de `hello-world-app`.

1. Conecte el cliente npm de su entorno de desarrollo a su repositorio de CodeCatalyst paquetes:

   1. Cambie a la CodeCatalyst consola.

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

   1. Elija `codecatalyst-package-repository`.

   1. Seleccione **Establecer conexión con el repositorio**.

   1. Seleccione **Crear token**. Se creará un token de acceso personal (PAT) para usted.

   1. Seleccione **Copiar** para copiar los comandos.

   1. Cambie a su entorno de desarrollo.

   1. Asegúrese de estar en el directorio `hello-world-app`.

   1. Pegue los comandos. Tendrán un aspecto similar al siguiente:

      ```
      npm set registry=https://packages.us-west-2.codecatalyst.aws/npm/ExampleCompany/codecatalyst-package-project/codecatalyst-package-repository/ --location project
      npm set //packages.us-west-2.codecatalyst.aws/npm/ExampleCompany/codecatalyst-package-project/hello-world-app/:_authToken=username:token-secret
      ```

1. Importe la versión 4.17.20 de `lodash`:

   ```
   npm install lodash@v4.17.20 --save --save-exact
   ```

   npm busca la versión 4.17.20 de `lodash` en las siguientes ubicaciones y en el siguiente orden:
   + En el entorno de desarrollo. No lo encuentra aquí.
   + En el repositorio de CodeCatalyst paquetes. No lo encuentra aquí.
   + En el repositorio de puerta de enlace. No lo encuentra aquí.
   + En npmjs.com. Lo encuentra aquí.

   npm importa `lodash` al repositorio de la puerta de enlace, al repositorio de CodeCatalyst paquetes y al entorno de desarrollo.
**nota**  
Si no hubieras conectado el cliente npm a tu repositorio de CodeCatalyst paquetes en el paso 4, npm lo habría extraído `lodash` directamente de npmjs.com y no habría importado el paquete a ninguno de los repositorios.

   npm también actualiza el archivo `package.json` con la dependencia `lodash` y crea un directorio `node_modules` que contiene `lodash` y todas sus dependencias.

1. Compruebe que `lodash` se haya importado correctamente a su entorno de desarrollo. Escriba:

   ```
   npm list
   ```

   Aparecerá el siguiente mensaje que indica que la importación se ha realizado correctamente:

   ```
   `-- lodash@4.17.20
   ```

1. (Opcional) Abre `hello-world-app/package.json` y verifica que se hayan agregado las líneas: ***red bold***

   ```
   {
     "name": "hello-world-app",
     "version": "1.0.0",
     "description": "",
     "main": "index.js",
     "scripts": {
       "test": "echo \"Error: no test specified\" && exit 1"
     },
     "keywords": [],
     "author": "",
     "license": "ISC",
     dependencies": {
       "lodash": "4.17.20"
     }
   }
   ```

1. En `/hello-world-app`, cree un archivo llamado `index.js` con el siguiente contenido:
**sugerencia**  
Puede utilizar la navegación lateral de su entorno de desarrollo para crear este archivo.

   ```
   // Importing lodash library
   const _ = require('lodash');
   
   // Input string
   const inputString = 'hello-world';
   
   // Transforming the string using lodash
   const transformedString = _.startCase(inputString.replace('-', ' '));
   
   // Outputting the transformed string to the console
   console.log(transformedString);
   ```

**Para comprobar que 'lodash' se importó a su puerta de enlace y a los repositorios de CodeCatalyst paquetes**

1. Cambie a la consola. CodeCatalyst 

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

1. Elija **npm-public-registry-gateway**.

1. Asegúrese de que aparezca `lodash`. La columna **Última versión** indica `4.17.20`.

1. Repita este procedimiento para el `codecatalyst-package-repository`. Puede que tenga que actualizar la ventana del navegador para ver el paquete importado.

**Prueba de “Hola, mundo” en el entorno de desarrollo**

1. Cambie a su entorno de desarrollo.

1. Compruebe que aún se encuentra en el directorio `hello-world-app` y ejecute la aplicación:

   ```
   node index.js
   ```

   Aparecerá un mensaje `Hello World`. Node.js ejecutó la aplicación con el paquete `lodash` que ha descargado en el entorno de desarrollo en un paso anterior.

**Método para ignorar el directorio “node\$1modules” y confirmar “Hola, mundo”**

1. Ignore el directorio `node_modules`. Escriba:

   ```
   echo "node_modules/" >> .gitignore
   ```

   Es recomendable evitar confirmar este directorio. Además, confirmar este directorio interferirá con pasos futuros en este tutorial.

1. Añada, confirme y envíe:

   ```
   git add .
   git commit -m "add the Hello World application"
   git push
   ```

   Los archivos de la aplicación y del proyecto “Hola, mundo” se añaden al repositorio de código fuente.

## Paso 4: creación de un flujo de trabajo que ejecute “Hola, mundo”
<a name="packages-tutorial-create-workflow"></a>

En este paso, creará un flujo de trabajo que ejecute la aplicación “Hola, mundo” con la dependencia `lodash`. El flujo de trabajo incluye una sola *acción* o tarea llamada `RunHelloWorldApp`. La acción `RunHelloWorldApp` incluye los siguientes comandos y secciones importantes:
+ **`Packages`**

  En esta sección se indica el nombre del repositorio de CodeCatalyst paquetes al que se debe conectar la acción cuando se ejecuta. `npm install`
+ **`- Run: npm install`** 

  Este comando le indica a npm que instale las dependencias especificadas en el archivo `package.json`. La única dependencia especificada en el archivo `package.json` es `lodash`; npm busca `lodash` en las siguientes ubicaciones:
  + En la imagen de Docker que ejecuta la acción. No lo encuentra aquí.
  + En el repositorio de CodeCatalyst paquetes. Lo encuentra aquí.

  Cuando npm encuentra `lodash`, lo importa a la imagen de Docker que ejecuta la acción.
+ **`- Run: npm list`**

  Este comando imprime qué versión de `lodash` se ha descargado en la imagen de Docker que ejecuta la acción.
+ **`- Run: node index.js`**

  Este comando ejecuta la aplicación “Hola, mundo” mediante la dependencia especificada en el archivo `package.json`.

Como puede ver, la acción `RunHelloWorldApp` es una acción de creación, como lo indica el identificador `aws/build@v1` situado cerca de la parte superior del flujo de trabajo. Para obtener más información sobre la acción de compilación, consulte [Compilación con flujos de trabajo](build-workflow-actions.md).

Usa las siguientes instrucciones para crear un flujo de trabajo que extraiga la `lodash` dependencia del repositorio de CodeCatalyst paquetes y, a continuación, ejecute la aplicación «Hello World».

**Para crear un flujo de trabajo**

1. Cambie a la consola. CodeCatalyst 

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Seleccione **Crear flujo de trabajo**.

1. En **Repositorio de código fuente**, elija `hello-world-app`.

1. En **Ramificación**, elija `main`.

   El archivo de definición del flujo de trabajo se creará en el repositorio y la ramificación de origen elegidos.

1. Seleccione **Crear**.

1. Seleccione **YAML** cerca de la parte superior.

1. Elimine el código de ejemplo de YAML.

1. Añada el código de YAML siguiente:

   ```
   Name: codecatalyst-package-workflow
   SchemaVersion: "1.0"
   
   # Required - Define action configurations.
   Actions:
     RunHelloWorldApp:
       # Identifies the action. Do not modify this value.
       Identifier: aws/build@v1
       Compute:
         Type: Lambda
       Inputs:
         Sources:
           - WorkflowSource # This specifies your source repository. 
       Configuration:
         Steps:
           - Run: npm install
           - Run: npm list
           - Run: node index.js
         Container: # This specifies the Docker image that runs the action.
           Registry: CODECATALYST
           Image: CodeCatalystLinuxLambda_x86_64:2024_03
       Packages:
         NpmConfiguration:
           PackageRegistries:
             - PackagesRepository: codecatalyst-package-repository
   ```

   En el código anterior, *codecatalyst-package-repository* sustitúyalo por el nombre del repositorio de CodeCatalyst paquetes en el que lo creaste[Paso 2: Cree los repositorios de paquetes CodeCatalyst y gateway](#packages-tutorial-package-repo).

   Para obtener información sobre las propiedades de este archivo, consulte el [Acciones de compilación y prueba de YAML](build-action-ref.md).

1. (Opcional) Seleccione **Validar** para asegurarse de que el código de YAML del flujo de trabajo sea válido antes de confirmarlo.

1. Elija **Confirmar**.

1. En el cuadro de diálogo **Confirmar flujo de trabajo**, escriba lo siguiente:

   1. En **Nombre del archivo de flujo de trabajo**, deje el valor predeterminado, `codecatalyst-package-workflow`.

   1. En **Mensaje de confirmación**, escriba:

      ```
      add initial workflow file
      ```

   1. En **Repositorio**, elija **hello-world-app**.

   1. En **Nombre de la ramificación**, elija **principal**.

   1. Elija **Confirmar**.

   Ahora ha creado un flujo de trabajo.

**Ejecución del flujo de trabajo**

1. Junto al flujo de trabajo que acaba de crear (`codecatalyst-package-workflow`), seleccione **Acciones** y, a continuación, **Ejecutar**.

   Se inicia una ejecución de flujo de trabajo.

1. En la notificación verde de la parte superior, a la derecha, seleccione el enlace a la ejecución. El enlace tiene un aspecto similar a `View Run-1234`.

   Aparece un diagrama de flujo de trabajo que muestra quién inició la ejecución y la **RunHelloWorldApp**acción.

1. Selecciona la casilla de **RunHelloWorldApp**acción para ver el progreso de la acción. 

1. Cuando termine la ejecución, vaya a [Paso 5: verificación del flujo de trabajo](#packages-tutorial-verify).

## Paso 5: verificación del flujo de trabajo
<a name="packages-tutorial-verify"></a>

En este paso, comprobará que el flujo de trabajo haya ejecutado correctamente la aplicación “Hola, mundo” con su dependencia `lodash`.

**Verificación de la ejecución de la aplicación “Hola, mundo” utilizando su dependencia**

1. En el diagrama de flujo de trabajo, selecciona la **RunHelloWorldApp**casilla.

   Aparecerá una lista de mensajes de registro.

1. Amplíe el mensaje de registro `node index.js`.

   Aparecerá el siguiente mensaje:

   ```
   [Container] 2024/04/24 21:15:41.545650 Running command node index.js
   Hello World
   ```

   La aparición de `Hello Word` (en lugar de `hello-world`) indica que la dependencia `lodash` se ha empleado correctamente.

1. Amplíe el registro `npm list`.

   Aparecerá un mensaje similar al siguiente:

   ```
   └── lodash@4.17.20
   ```

   Este mensaje indica que la versión 4.17.20 de `lodash` se descargó en la imagen de Docker que ejecutaba la acción del flujo de trabajo.

## Paso 6: bloqueo de las importaciones desde npmjs.com
<a name="packages-tutorial-block"></a>

 Ahora que la `lodash` versión 4.17.20 está presente en tu gateway y en los repositorios de CodeCatalyst paquetes, puedes bloquear las importaciones de otras versiones. El bloqueo impide importar accidentalmente versiones posteriores (o anteriores) de `lodash`, que podrían contener código malicioso. Para obtener más información, consulte [Edición de los controles de origen de los paquetes](package-origin-controls.md) y [Ataques de sustitución de dependencias](package-origin-controls.md#dependency-substitution-attacks).

Siga las instrucciones a continuación para bloquear las importaciones de `lodash` en el repositorio de puerta de enlace. Al bloquear los paquetes en la puerta de enlace, también se bloquean en las ubicaciones descendentes.

**Bloqueo de las importaciones en el repositorio de puerta de enlace**

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

1. Elija **npm-publish-registry-gateway**.

1. Elija `lodash`.

1. Cerca de la parte superior, seleccione **Controles de origen**.

1. En **Ascendente**, seleccione **Bloquear**.

1. Seleccione **Save**.

   Ahora, ha bloqueado las importaciones al repositorio de puerta de enlace (y a los repositorios y ordenadores descendentes) desde npmjs.com.

## Paso 7: prueba de la característica de bloqueo
<a name="packages-tutorial-test-block"></a>

En esta sección, verificará el funcionamiento del bloqueo que configuró en [Paso 6: bloqueo de las importaciones desde npmjs.com](#packages-tutorial-block). Para empezar, configure “Hola, mundo” de tal modo que solicite la versión 4.17.2**1** de `lodash` en lugar de la que está disponible en el repositorio de puerta de enlace, que es la versión 4.17.2**0**. A continuación, compruebe que la aplicación no pueda extraer la versión 4.17.21 de nmpjs.com, lo que indica que el bloqueo es correcto. Como prueba final, desbloquee las importaciones al repositorio de puerta de enlace y compruebe que la aplicación pueda extraer correctamente la versión 4.17.21 de `lodash`.

Utilice el siguiente conjunto de procedimientos para probar la característica de bloqueo.

**Antes de empezar**

1. Cambie a su entorno de desarrollo.

1. Extraiga el `codecatalyst-package-workflow.yaml` archivo que creó anteriormente con la CodeCatalyst consola:

   ```
   git pull
   ```

**Configuración de “Hola, mundo” para solicitar la versión 4.17.21 de lodash**

1. Abra `/hello-world-app/package.json`.

1. Cambie la `lodash` versión a la 4.17.21 como se muestra en: ***red bold***

   ```
   {
     "name": "hello-world-app",
     "version": "1.0.0",
     "description": "",
     "main": "index.js",
     "scripts": {
       "test": "echo \"Error: no test specified\" && exit 1"
     },
     "keywords": [],
     "author": "",
     "license": "ISC",
     "dependencies": {
       "lodash": "4.17.21"
     }
   }
   ```

   Ahora hay una discrepancia entre la versión del `package.json` archivo (4.17.21) y la versión de los repositorios de CodeCatalyst paquetes y de la puerta de enlace (4.17.20).

1. Añada, confirme y envíe:

   ```
   git add .
   git commit -m "update package.json to use lodash 4.17.21"
   git push
   ```

**Comprobación de que “Hola, mundo” no puede extraer la versión 4.17.21 de lodash**

1. Ejecute el flujo de trabajo con la discrepancia de versiones:

   1. Cambie CodeCatalyst a la consola.

   1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

   1. Junto a `codecatalyst-package-workflow`, seleccione **Acciones** y **Ejecutar**.

      npm busca las dependencias en `package.json` y ve que “Hola, mundo” necesita la versión 4.17.21 de `lodash`; npm busca la dependencia en las siguientes ubicaciones y en el siguiente orden:
      + En la imagen de Docker que ejecuta la acción. No lo encuentra aquí.
      + En el repositorio de CodeCatalyst paquetes. No lo encuentra aquí.
      + En el repositorio de puerta de enlace. No lo encuentra aquí.
      + En npmjs.com. Lo encuentra aquí.

      Cuando npm encuentra la versión 4.17.21 en npmjs.com, intenta importarla al repositorio de puerta de enlace, pero la importación no ocurre porque ha configurado la puerta de enlace para que bloquee las importaciones de `lodash`.

      Como no hay importación, se produce un error en el flujo de trabajo.

1. Compruebe que ha habido un error en el flujo de trabajo:

   1. En la notificación verde de la parte superior, a la derecha, seleccione el enlace a la ejecución. El enlace tiene un aspecto similar a `View Run-2345`.

   1. En el diagrama de flujo de trabajo, seleccione la **RunHelloWorldApp**casilla.

   1. Amplíe el mensaje de registro `npm install`.

      Aparecerá el siguiente mensaje:

      ```
      [Container] 2024/04/25 17:20:34.995591 Running command npm install
      npm ERR! code ETARGET
      npm ERR! notarget No matching version found for lodash@4.17.21.
      npm ERR! notarget In most cases you or one of your dependencies are requesting
      npm ERR! notarget a package version that doesn't exist.
      
      npm ERR! A complete log of this run can be found in: /tmp/.npm/_logs/2024-05-08T22_03_26_493Z-debug-0.log
      ```

      El error indica que no se ha encontrado la versión 4.17.21. Esto es de esperar porque la ha bloqueado.

**Desbloqueo de las importaciones desde npmjs.com**

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

1. Elija **npm-publish-registry-gateway**.

1. Elija `lodash`.

1. Cerca de la parte superior, seleccione **Controles de origen**.

1. En **Ascendente**, seleccione **Permitir**.

1. Seleccione **Save**.

   Ahora, ha desbloqueado las importaciones de `lodash`.

   Ahora, el flujo de trabajo puede importar la versión 4.17.21 de `lodash`.

**Prueba de que las importaciones de npmjs.com se han desbloqueado**

1. Ejecute el flujo de trabajo de nuevo. Esta vez, el flujo de trabajo debería funcionar correctamente porque la importación de la versión 4.17.21 debería ocurrir. Para ejecutar el flujo de trabajo de nuevo:

   1. Elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

   1. Junto a `codecatalyst-package-workflow`, seleccione **Acciones** y **Ejecutar**.

   1. En la notificación verde de la parte superior, a la derecha, seleccione el enlace a la ejecución. El enlace tiene un aspecto similar a `View Run-3456`.

      Aparece un diagrama de flujo de trabajo que muestra quién inició la ejecución y la **RunHelloWorldApp**acción.

   1. Selecciona la casilla de **RunHelloWorldApp**acción para ver el progreso de la acción. 

   1. Expanda el mensaje de registro de `npm list` y compruebe que haya un mensaje similar al siguiente:

      ```
      └── lodash@4.17.21
      ```

      Este mensaje indica que se ha descargado la versión 4.17.21 de `lodash`.

1. Compruebe que la versión 4.17.21 se haya importado a sus repositorios CodeCatalyst y a los de Gateway:

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

   1. Elija **npm-public-registry-gateway**.

   1. Busque `lodash` y asegúrese de que la versión sea `4.17.21`.
**nota**  
Aunque la versión 4.17.20 no aparezca en esta página, puede encontrarla seleccionando `lodash` y, a continuación, seleccionando **Versiones** en la parte superior.

   1. Repita estos pasos para comprobar que la versión 4.17.21 se haya importado en `codecatalyst-package-repository`.

## Limpieza
<a name="packages-tutorial-cleanup"></a>

Limpie los archivos y servicios utilizados en este tutorial para evitar que le cobren por ellos.

**Limpieza de los paquetes del tutorial**

1. Elimine `codecatalyst-package-project`:

   1. En la CodeCatalyst consola, navegue hasta el `codecatalyst-package-project` proyecto si aún no está allí.

   1. En el panel de navegación, seleccione **Configuración del proyecto**.

   1. Elija **Eliminar proyecto**, introduzca **delete** y elija **Eliminar proyecto**.

      CodeCatalyst elimina todos los recursos del proyecto, incluidos los repositorios de código fuente, puerta de enlace y CodeCatalyst paquetes. También se elimina el entorno de desarrollo.

1. Elimine el token (PAT):

   1. Elija el nombre de usuario, a la derecha y seleccione **Mi configuración**.

   1. En **Tokens de acceso personal**, seleccione el token que ha creado en este tutorial y, luego, elija **Eliminar**.

En este tutorial, aprendió a crear un flujo de trabajo que ejecute una aplicación que extraiga sus dependencias de un repositorio de paquetes. CodeCatalyst También aprendiste a bloquear y desbloquear paquetes para que no ingresen a tu puerta de enlace y a los repositorios de CodeCatalyst paquetes.

# Especificar los repositorios de CodeCatalyst paquetes en los flujos de trabajo
<a name="workflows-package-specify-action"></a>

En CodeCatalyst, puedes añadir un repositorio de CodeCatalyst paquetes a tus acciones de compilación y prueba en tu flujo de trabajo. El repositorio de paquetes debe estar configurado con un formato de paquete, como npm. También puede elegir incluir una secuencia de ámbitos para el repositorio de paquetes seleccionado.

Utilice las siguientes instrucciones para especificar una configuración de paquete para utilizarla con una acción de flujo de trabajo.

------
#### [ Visual ]

**Especificación de la configuración de paquete que utilizará una acción (editor visual)**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, seleccione la acción **Compilación** o **Probar** con la que desee configurar un repositorio de paquetes.

1. Seleccione **Paquetes**.

1. En el menú desplegable **Añadir configuración**, elija la configuración de paquete que desee utilizar con sus acciones del flujo de trabajo.

1. Seleccione **Agregar repositorio de paquetes**.

1. En el menú desplegable **del repositorio de paquetes**, especifique el nombre del *repositorio de CodeCatalyst paquetes* que desea que utilice la acción.

   Para obtener más información sobre los repositorios de paquetes, consulte [Repositorios de paquetes](packages-concepts.md#packages-concepts-repository).

1. (Opcional) En **Ámbitos (opcional)**, especifique la secuencia de *ámbitos* que desee definir en el registro de paquetes.

   Al definir los ámbitos, el repositorio de paquetes especificado se configura como el registro de todos los ámbitos de la lista. Si se solicita un paquete con ese ámbito a través del cliente npm, se utilizará ese repositorio en lugar del predeterminado. El nombre de cada ámbito debe tener el prefijo @.

   Si `Scopes` se omite, el repositorio de paquetes especificado se configura como el registro predeterminado para todos los paquetes utilizados por la acción.

   Para obtener más información sobre los ámbitos, consulte [Espacios de nombres en paquetes](packages-concepts.md#packages-concepts-package-namespaces) y [Scoped packages](https://docs.npmjs.com/cli/v10/using-npm/scope).

1. Seleccione **Agregar**.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Especificación de la configuración de paquete que utilizará una acción (editor de YAML)**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En una acción de **Compilación** o **Probar**, agregue un código similar al siguiente:

   ```
   action-name:
    Configuration:
       Packages:
           NpmConfiguration:
             PackageRegistries:
               - PackagesRepository: package-repository
                 Scopes:
                   - "@scope"
   ```

   Para obtener más información, consulte la descripción de la propiedad `Packages` en la [Acciones de compilación y prueba de YAML](build-action-ref.md) para la acción.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Uso de tokens de autorización en acciones del flujo de trabajo
<a name="workflows-package-export-token"></a>

Puede usar un token proporcionado por la acción del flujo de trabajo para configurar manualmente un administrador de paquetes para autenticarse en los repositorios de CodeCatalyst paquetes. CodeCatalyst hace que este token esté disponible como una variable de entorno para que pueda consultarlo en sus acciones.


| Variable de entorno | Valor | 
| --- | --- | 
|  CATALYST\$1MACHINE\$1RESOURCE\$1NAME  |  La identidad de usuario de un token de autorización.  | 
|  CATALYST\$1PACKAGES\$1AUTHORIZATION\$1TOKEN  |  El valor de un token de autorización.  | 

**nota**  
Tenga en cuenta que estas variables de entorno solo se rellenarán si ha configurado su acción para exportar el token de autorización.

Siga estas instrucciones para usar un token de autorización con una acción de flujo de trabajo.

------
#### [ Visual ]

**Uso de un token de autorización exportado con una acción (editor visual)**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, seleccione la acción **Compilación** o **Probar** con la que desee configurar un repositorio de paquetes.

1. Seleccione **Paquetes**.

1. Active el **Token de autorización de exportación**.

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

**Uso de un token de autorización exportado con una acción (editor de YAML)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En una acción de **Compilación** o **Probar**, agregue un código similar al siguiente:

   ```
   Actions:
     action-name:
       Packages:
         ExportAuthorizationToken: true
   ```

   Puede hacer referencia a las variables de entorno `$CATALYST_MACHINE_RESOURCE_NAME` y `$CATALYST_PACKAGES_AUTHORIZATION_TOKEN` en la sección `Steps` de YAML. Para obtener más información, consulta [Ejemplo: configuración manual `pip` para autenticarse con CodeCatalyst](workflows-working-packages-ex.md#workflows-working-packages-pypi-token).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Ejemplos: Repositorios de paquetes en flujos de trabajo
<a name="workflows-working-packages-ex"></a>

En los siguientes ejemplos se muestra cómo hacer referencia a paquetes en el archivo de definición del flujo de trabajo.

**Topics**
+ [

## Ejemplo: Definición de paquetes con `NpmConfiguration`
](#workflows-working-packages-ex-basic)
+ [

## Ejemplo: Anulación del registro predeterminado
](#workflows-working-packages-ex-overriding-registry)
+ [

## Ejemplo: Anulación de los ámbitos del registro de paquetes
](#workflows-working-packages-ex-overriding-scopes)
+ [

## Ejemplo: configuración manual `pip` para autenticarse con CodeCatalyst
](#workflows-working-packages-pypi-token)

## Ejemplo: Definición de paquetes con `NpmConfiguration`
<a name="workflows-working-packages-ex-basic"></a>

En el siguiente ejemplo se muestra cómo definir un paquete con `NpmConfiguration` en un archivo de definición de flujo de trabajo.

```
Actions:
  Build:
  Identifier: aws/build-beta@v1
  Configuration:
    Packages:
        NpmConfiguration:
          PackageRegistries:
            - PackagesRepository: main-repo
            - PackagesRepository: scoped-repo
              Scopes:
                - "@scope1"
```

En este ejemplo, se configura el cliente npm de la siguiente manera:

```
default: main-repo
@scope1: scoped-repo
```

En este ejemplo, hay dos repositorios definidos. El registro predeterminado se establece como `main-repo`, ya que se ha definido sin un ámbito. El ámbito `@scope1` está configurado como `PackageRegistries` para `scoped-repo`.

## Ejemplo: Anulación del registro predeterminado
<a name="workflows-working-packages-ex-overriding-registry"></a>

En el siguiente ejemplo se muestra cómo anular el registro predeterminado.

```
NpmConfiguration:
  PackageRegistries:
    - PackagesRepository: my-repo-1
    - PackagesRepository: my-repo-2
    - PackagesRepository: my-repo-3
```

En este ejemplo, se configura el cliente npm de la siguiente manera:

```
default: my-repo-3
```

Si especifica varios repositorios predeterminados, el último repositorio tendrá prioridad. En este ejemplo, el último repositorio de la lista es `my-repo-3`, lo que significa que npm se conectará a `my-repo-3`. Esto anula los repositorios `my-repo-1` y `my-repo-2`.

## Ejemplo: Anulación de los ámbitos del registro de paquetes
<a name="workflows-working-packages-ex-overriding-scopes"></a>

En el siguiente ejemplo se muestra cómo anular un ámbito en un registro de paquetes.

```
NpmConfiguration:
  PackageRegistries:
    - PackagesRepository: my-default-repo
    - PackagesRepository: my-repo-1
      Scopes:
        - "@scope1"
        - "@scope2"
    - PackagesRepository: my-repo-2
      Scopes:
        - "@scope2"
```

En este ejemplo, se configura el cliente npm de la siguiente manera:

```
default: my-default-repo
@scope1: my-repo-1
@scope2: my-repo-2
```

Si incluye ámbitos solapados, el último repositorio tendrá prioridad. En este ejemplo, la última vez que se configuró el ámbito `@scope2` en `PackageRegistries` es para `my-repo-2`. Esto anula el ámbito `@scope2` configurado para `my-repo-1`.

## Ejemplo: configuración manual `pip` para autenticarse con CodeCatalyst
<a name="workflows-working-packages-pypi-token"></a>

En el siguiente ejemplo, se muestra cómo hacer referencia a las variables de entorno de CodeCatalyst autorización en una acción de compilación.

```
Actions:
  Build:
    Identifier: aws/build@v1.0.0
    Configuration:
      Steps:
        - Run: pip config set global.index-url https://$CATALYST_MACHINE_RESOURCE_NAME:$CATALYST_PACKAGES_AUTHORIZATION_TOKEN@codecatalyst.aws/pypi/my-space/my-project/my-repo/simple/
    Packages:
      ExportAuthorizationToken: true
```

# Invocación de una función de Lambda mediante un flujo de trabajo
<a name="lam-invoke-action"></a>

En esta sección se describe cómo invocar una AWS Lambda función mediante un flujo de trabajo. CodeCatalyst Para ello, debe añadir la acción **invocar en AWS Lambda ** al flujo de trabajo. La acción **invocar en AWS Lambda ** invoca la función de Lambda que especifique.

Además de invocar la función, la acción **invocar en AWS Lambda ** también convierte todas las claves de nivel superior de la carga útil de respuesta recibida de la función de Lambda en una [variable de salida del flujo de trabajo](workflows-working-with-variables.md). Luego, puede hacer referencia a estas variables en acciones posteriores del flujo de trabajo. Si no desea que todas las claves de nivel superior se conviertan en variables, puede usar filtros para especificar las claves exactas. Para obtener más información, consulte la descripción de la propiedad [ResponseFilters](lam-invoke-action-ref.md#lam.invoke.response.filters) en la [YAML de la acción invocar de AWS Lambda](lam-invoke-action-ref.md). 

**Topics**
+ [

## Cuándo usar esta acción
](#lam-invoke-action-when-to-use)
+ [

## Imagen de tiempo de ejecución utilizada por la acción «invocar»AWS Lambda
](#lam-invoke-action-runtime)
+ [

# Ejemplo: Invocación de una función de Lambda
](lam-invoke-action-example-workflow.md)
+ [

# Añadir la acción «AWS Lambda invocar»
](lam-invoke-action-add.md)
+ [

# Variables de invocar en AWS Lambda
](lam-invoke-action-variables.md)
+ [

# YAML de la acción invocar de AWS Lambda
](lam-invoke-action-ref.md)

## Cuándo usar esta acción
<a name="lam-invoke-action-when-to-use"></a>

Utilice esta acción si desea añadir una funcionalidad a un flujo de trabajo encapsulado en una función de Lambda y ejecutado por esta.

Por ejemplo, quizá desee que el flujo de trabajo envíe una notificación `Build started` a un canal de Slack antes de iniciar la compilación de la aplicación. En ese caso, el flujo de trabajo incluiría una acción **invocar en AWS Lambda ** para que Lambda envíe la notificación de Slack, así como una [acción de compilación](build-add-action.md) para compilar la aplicación.

Otro ejemplo: supongamos que necesita que el flujo de trabajo haga un análisis de vulnerabilidades en la aplicación antes de implementarla; en este caso, utilizaría una acción de compilación para compilar la aplicación, una acción **invocar en AWS Lambda ** para que Lambda busque vulnerabilidades y una acción de implementación para implementar la aplicación analizada.

## Imagen de tiempo de ejecución utilizada por la acción «invocar»AWS Lambda
<a name="lam-invoke-action-runtime"></a>

La acción **invocar en AWS Lambda ** se ejecuta en una [imagen de noviembre de 2022](build-images.md#build.previous-image). Para obtener más información, consulte [Imágenes activas](build-images.md#build-curated-images).

# Ejemplo: Invocación de una función de Lambda
<a name="lam-invoke-action-example-workflow"></a>

El siguiente ejemplo de flujo de trabajo incluye la acción **invocación de AWS Lambda ** junto con una acción de implementación. El flujo de trabajo envía una notificación de Slack en la que se indica que se ha iniciado una implementación y, a continuación, despliega una aplicación utilizando una plantilla. AWS CloudFormation El flujo de trabajo consta de los siguientes componentes, que se ejecutarán en orden:
+ Un **desencadenador**: este desencadenador inicia la ejecución automática del flujo de trabajo cuando se introduce un cambio en el repositorio de código fuente. Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).
+ Una acción **invocación de AWS Lambda ** (`LambdaNotify`): al activarse, esta acción invoca la función de Lambda `Notify-Start` en la cuenta y la región de AWS especificadas (`my-aws-account` y `us-west-2`). Al invocarse, la función de Lambda envía una notificación de Slack que indica que se ha iniciado una implementación.
+ Una acción de **despliegue de CloudFormation pila** (`Deploy`): al finalizar la acción de **AWS Lambda invocación**, la acción de **despliegue de CloudFormation pila** ejecuta la plantilla (`cfn-template.yml`) para desplegar tu pila de aplicaciones. Para obtener más información sobre la acción **Implementar CloudFormation una pila**, consulte[Implementación de una CloudFormation pila](deploy-action-cfn.md).

**nota**  
El siguiente ejemplo de flujo de trabajo tiene fines ilustrativos y no funcionará sin una configuración adicional.

**nota**  
En el código de YAML que se muestra a continuación, puede omitir las secciones `Connections:` si lo desea. Si omite estas secciones, debe asegurarse de que la función especificada en el campo **Función de IAM predeterminada** de su entorno incluya los permisos y las políticas de confianza que requieren las acciones de **AWS Lambda invocación** e **implementación CloudFormation ** de la pila. Para obtener más información sobre cómo configurar un entorno con un rol de IAM predeterminado, consulte [Creación de un entorno](deploy-environments-creating-environment.md). Para obtener más información sobre los permisos y las políticas de confianza que requieren las acciones de ** CloudFormation pila **AWS Lambda invocar** e implementar**, consulte la descripción de la `Role` propiedad en los campos y. [YAML de la acción invocar de AWS Lambda](lam-invoke-action-ref.md) [Acción «Desplegar CloudFormation pila» YAML](deploy-action-ref-cfn.md)

```
Name: codecatalyst-lamda-invoke-workflow
SchemaVersion: 1.0

Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  LambdaNotify:
    Identifier: aws/lambda-invoke@v1
    Environment:
      Name: my-production-environment
      Connections:
        - Name: my-aws-account
          Role: codecatalyst-lambda-invoke-role
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Function: Notify-Start
      AWSRegion: us-west-2
        
  Deploy:
    Identifier: aws/cfn-deploy@v1
    Environment:
      Name: my-production-environment
      Connections:
        - Name: my-aws-account
          Role: codecatalyst-deploy-role
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      name: my-application-stack
      region: us-west-2
      role-arn: arn:aws:iam::111122223333:role/StackRole
      template: ./cfn-template.yml
      capabilities: CAPABILITY_IAM,CAPABILITY_AUTO_EXPAND
```

# Añadir la acción «AWS Lambda invocar»
<a name="lam-invoke-action-add"></a>

 Siga estas instrucciones para añadir la acción **invocación de AWS Lambda ** en un flujo de trabajo. 

**Requisito previo**  
Antes de empezar, asegúrese de que la AWS Lambda función y el rol de ejecución de Lambda asociado estén listos y disponibles en. AWS Para obtener más información, consulte [Rol de ejecución de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) en la *Guía del desarrollador de AWS Lambda *.

------
#### [ Visual ]

**Para añadir la acción de «AWS Lambda invocar», utilice el editor visual**

1. [Abra la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busque la acción **Invocación de AWS Lambda ** y lleve a cabo una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Seleccione **Invocación de AWS Lambda **. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Ver código fuente** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. En las pestañas **Entradas**, **Configuración** y **Salidas**, complete los campos según sus necesidades. Para obtener una descripción de cada uno de los campos, consulte la [YAML de la acción invocar de AWS Lambda](lam-invoke-action-ref.md). Esta referencia proporciona información detallada sobre cada campo (y el valor de la propiedad de YAML correspondiente) tal como aparece en el editor visual y el de YAML.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Para añadir la acción «AWS Lambda invocar» mediante el editor YAML**

1. [Abre la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busque la acción **Invocación de AWS Lambda ** y lleve a cabo una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Seleccione **Invocación de AWS Lambda **. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Ver código fuente** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. Modifique las propiedades del código de YAML en función de sus necesidades. Encontrará una explicación de todas las propiedades disponibles en la [YAML de la acción invocar de AWS Lambda](lam-invoke-action-ref.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Variables de invocar en AWS Lambda
<a name="lam-invoke-action-variables"></a>

De forma predeterminada, la acción **invocar en AWS Lambda ** produce una variable por clave de nivel superior en la carga útil de respuesta de Lambda.

Por ejemplo, si la carga útil de respuesta tiene el siguiente aspecto:

```
responsePayload = {
  "name": "Saanvi",
  "location": "Seattle",
  "department": {
    "company": "Amazon",
    "team": "AWS"
  }
}
```

la acción generará las siguientes variables:


| Clave | Valor | 
| --- | --- | 
|  name  |  Saanvi  | 
|  ubicación  |  Seattle  | 
|  departamento  |  \$1“company”: “Amazon”, “team”: “AWS”\$1  | 

**nota**  
Puede cambiar las variables que se generan mediante la propiedad `ResponseFilters` de YAML. Para obtener más información, consulte [ResponseFilters](lam-invoke-action-ref.md#lam.invoke.response.filters) en la [YAML de la acción invocar de AWS Lambda](lam-invoke-action-ref.md).

*Las variables generadas y establecidas por la acción de «AWS Lambda invocar» en tiempo de ejecución se conocen como variables predefinidas.*

Para obtener información sobre cómo hacer referencia a estas variables en un flujo de trabajo, consulte [Uso de variables predefinidas](workflows-using-predefined-variables.md).

# YAML de la acción invocar de AWS Lambda
<a name="lam-invoke-action-ref"></a>

A continuación, encontrará una definición en YAML de la acción **invocar de AWS Lambda **. Para obtener información sobre cómo utilizar esta acción, consulte [Invocación de una función de Lambda mediante un flujo de trabajo](lam-invoke-action.md).

Esta definición de acción existe como una sección dentro de un archivo de definición de flujo de trabajo más amplio. Para obtener más información acerca de este archivo, consulte [Definición de flujo de trabajo en YAML](workflow-reference.md).

**nota**  
La mayoría de las propiedades de YAML que se muestran a continuación tienen elementos de interfaz de usuario correspondientes en el editor visual. Para buscar un elemento de la interfaz de usuario, use **Ctrl\$1F**. El elemento aparecerá en la lista con su propiedad de YAML asociada.

```
# The workflow definition starts here.
# See Propiedades de nivel superior for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  LambdaInvoke\$1nn: 
    Identifier: aws/lambda-invoke@v1
    DependsOn:
      - dependent-action
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - request-payload
      Variables:
        - Name: variable-name-1
          Value: variable-value-1
        - Name: variable-name-2
          Value: variable-value-2
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Configuration:
      Function: my-function|function-arn
      AWSRegion: us-west-2
      # Specify RequestPayload or RequestPayloadFile, but not both.
      RequestPayload: '{"firstname": "Li", lastname: "Jean", "company": "ExampleCo", "team": "Development"}'
      RequestPayloadFile: my/request-payload.json
      ContinueOnError: true|false
      LogType: Tail|None
      ResponseFilters: '{"name": ".name", "company": ".department.company"}'
    Outputs:
      Artifacts:
        - Name: lambda_artifacts
          Files: 
            - "lambda-response.json"
```

## LambdaInvoke
<a name="lam.invoke.name"></a>

(Obligatorio) 

Especifique el nombre de la acción. Todos los nombres de las acciones deben ser únicos dentro del flujo de trabajo. Los nombres de las acciones están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de las acciones.

Predeterminado: `Lambda_Invoke_Action_Workflow_nn`.

Interfaz de usuario correspondiente: pestaña Configuración/**Nombre de la acción**

## Identifier
<a name="lam.invoke.identifier"></a>

(*LambdaInvoke*/**Identifier**)

(Obligatorio) 

Identifica la acción. No cambie esta propiedad a menos que desee cambiar la versión. Para obtener más información, consulte [Especificación de la versión de la acción que se va a utilizar](workflows-action-versions.md).

Predeterminado: `aws/lambda-invoke@v1`.

Interfaz de usuario correspondiente: Diagrama de flujo de trabajo/LambdaInvoke\$1nn/etiqueta **aws/lambda-invoke@v1**

## DependsOn
<a name="lam.invoke.dependson"></a>

(*LambdaInvoke*/**DependsOn**)

(Opcional)

Especifique la acción, el grupo de acciones o la puerta que debe ejecutarse correctamente para que esta acción se ejecute.

Para obtener más información sobre la funcionalidad “depende de”, consulte [Secuenciación de acciones](workflows-depends-on.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Depende de (opcional)**

## Compute
<a name="lam.invoke.computename"></a>

(*LambdaInvoke*/**Compute**)

(Opcional)

El motor de computación utilizado para ejecutar las acciones del flujo de trabajo. Puede especificar el motor de computación en el nivel del flujo de trabajo o en el nivel de acción, pero no en ambos. Cuando se especifica en el nivel de flujo de trabajo, la configuración del motor de computación se aplica a todas las acciones definidas en el flujo de trabajo. En el nivel de flujo de trabajo, también puede ejecutar varias acciones en la misma instancia. Para obtener más información, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md).

Interfaz de usuario correspondiente: *ninguna*

## Type
<a name="lam.invoke.computetype"></a>

(*LambdaInvoke*/Compute/**Type**)

(Obligatorio si se incluye [Compute](#lam.invoke.computename))

El tipo de motor de computación. Puede utilizar uno de los siguientes valores:
+ **EC2**(editor visual) o (editor YAML`EC2`)

  Optimizado para ofrecer flexibilidad durante las ejecuciones de acciones.
+ **Lambda** (editor visual) o `Lambda` (editor de YAML)

  Velocidades de inicio de acciones optimizadas.

Para obtener más información sobre los tipos de computación, consulte [Tipos de computación](workflows-working-compute.md#compute.types).

Interfaz de usuario correspondiente: pestaña Configuración/**Tipo de computación**

## Fleet
<a name="lam.invoke.computefleet"></a>

(*LambdaInvoke*/Compute/**Fleet**)

(Opcional)

Especifique la máquina o la flota que ejecutará el flujo de trabajo o las acciones del flujo de trabajo. Con las flotas bajo demanda, cuando se inicia una acción, el flujo de trabajo aprovisiona los recursos que necesita y las máquinas se destruyen cuando finaliza la acción. Ejemplos de flotas bajo demanda: `Linux.x86-64.Large`, `Linux.x86-64.XLarge`. Para obtener más información sobre las flotas bajo demanda, consulte [Propiedades de las flotas bajo demanda](workflows-working-compute.md#compute.on-demand).

Con las flotas aprovisionadas, configura un conjunto de máquinas dedicadas para ejecutar las acciones del flujo de trabajo. Estas máquinas permanecen inactivas, listas para procesar acciones de forma inmediata. Para obtener más información sobre las flotas aprovisionadas, consulte [Propiedades de flotas aprovisionadas](workflows-working-compute.md#compute.provisioned-fleets).

Si `Fleet` se omite, el valor predeterminado es `Linux.x86-64.Large`.

Interfaz de usuario correspondiente: pestaña Configuración/**Flota de computación**

## Timeout
<a name="lam.invoke.timeout"></a>

(*LambdaInvoke*/**Timeout**)

(Obligatorio) 

Especifique la cantidad de tiempo en minutos (editor YAML) o en horas y minutos (editor visual) que la acción puede ejecutarse antes de que CodeCatalyst finalice la acción. El mínimo es 5 minutos y el máximo se describe en [Cuotas para flujos de trabajo en CodeCatalyst](workflows-quotas.md). El tiempo de espera predeterminado es el mismo que el tiempo de espera máximo.

Interfaz de usuario correspondiente: pestaña Configuración/**Tiempo de espera (opcional)**

## Inputs
<a name="lam.invoke.inputs"></a>

(*LambdaInvoke*/**Inputs**)

(Obligatorio) 

La sección `Inputs` define los datos que la acción **invocar en AWS Lambda ** necesita durante la ejecución de un flujo de trabajo.

**nota**  
Solo se permite una entrada (ya sea un código fuente o un artefacto) para cada acción **invocar en AWS Lambda **. Las variables no se contabilizan en este total.

Interfaz de usuario correspondiente: pestaña **Entradas**

## Sources
<a name="lam.invoke.inputs.sources"></a>

(*LambdaInvoke*/Inputs/**Sources**)

(Obligatorio si [RequestPayloadFile](#lam.invoke.request.payload.file)se proporciona)

Si quiere pasar un archivo JSON de carga útil de solicitud a la acción **invocar en AWS Lambda ** y ese archivo de carga útil está almacenado en un repositorio de código fuente, especifique la etiqueta de ese repositorio. Actualmente, la única etiqueta admitida es `WorkflowSource`.

Si el archivo de carga útil de solicitud no está incluido en un repositorio de código fuente, debe residir en un artefacto generado por otra acción.

Para obtener más información sobre el archivo de carga útil, consulte [RequestPayloadFile](#lam.invoke.request.payload.file).

**nota**  
En lugar de especificar un archivo de carga útil, puede añadir el código JSON de la carga útil directamente en la acción mediante la propiedad `RequestPayload`. Para obtener más información, consulte [RequestPayload](#lam.invoke.request.payload). 

Para obtener más información sobre orígenes, consulte [Conexión de repositorios de código fuente a flujos de trabajo](workflows-sources.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Orígenes (opcional)**

## Artifacts - input
<a name="lam.invoke.inputs.artifacts"></a>

(*LambdaInvoke*/Inputs/**Artifacts**)

(Obligatorio si [RequestPayloadFile](#lam.invoke.request.payload.file)se proporciona)

Si desea pasar un archivo JSON de carga útil de solicitud a la acción **invocar en AWS Lambda ** y ese archivo de carga útil está contenido en un [artefacto de salida](build-action-ref.md#build.outputs.artifacts) de una acción anterior, especifique aquí ese artefacto.

Para obtener más información sobre el archivo de carga útil, consulte [RequestPayloadFile](#lam.invoke.request.payload.file).

**nota**  
En lugar de especificar un archivo de carga útil, puede añadir el código JSON de la carga útil directamente en la acción mediante la propiedad `RequestPayload`. Para obtener más información, consulte [RequestPayload](#lam.invoke.request.payload). 

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Artefactos (opcional)**

## Variables - input
<a name="lam.invoke.inputs.variables"></a>

(*LambdaInvoke*/Inputs/**Variables**)

(Opcional)

Especifique una secuencia de name/value pares que defina las variables de entrada que desea poner a disposición de la acción. Los nombres de variables están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de variables.

Para obtener más información sobre las variables, incluidos ejemplos, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Variables (opcional)**

## Environment
<a name="lam.invoke.environment"></a>

(*LambdaInvoke*/**Environment**)

(Obligatorio) 

Especifique el CodeCatalyst entorno que se va a utilizar con la acción. La acción se conecta a Cuenta de AWS la Amazon VPC opcional especificada en el entorno elegido. La acción utiliza la función de IAM predeterminada especificada en el entorno para conectarse a Cuenta de AWS, y utiliza la función de IAM especificada en la [conexión de Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) para conectarse a la Amazon VPC.

**nota**  
Si el rol de IAM predeterminado no tiene los permisos necesarios para la acción, puede configurarla para que utilice un rol diferente. Para obtener más información, consulte [Cambio del rol de IAM de una acción](deploy-environments-switch-role.md).

Para obtener más información sobre los entornos, consulte [Implementación en Cuentas de AWS y VPCs](deploy-environments.md) y [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Name
<a name="lam.invoke.environment.name"></a>

(*LambdaInvoke*/Environment/**Name**)

(Obligatorio si se incluye [Environment](#lam.invoke.environment))

Especifique el nombre del entorno existente que desea asociar a la acción.

Interfaz de usuario correspondiente: pestaña Configuración/**Entorno**

## Connections
<a name="lam.invoke.environment.connections"></a>

(*LambdaInvoke*/Environment/**Connections**)

(Opcional en las versiones más recientes de la acción; obligatorio en las versiones más antiguas)

Especifique la conexión de cuenta que desee asociar a la acción. Puede especificar un máximo de una conexión de cuenta en `Environment`.

Si no especifica una conexión de cuenta:
+ La acción utiliza la Cuenta de AWS conexión y la función de IAM predeterminada especificadas en el entorno de la consola. CodeCatalyst Para obtener información sobre cómo añadir una conexión de cuenta y un rol de IAM predeterminado al entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).
+ El rol de IAM predeterminado debe incluir las políticas y los permisos que requiere la acción. Para determinar cuáles son esas políticas y permisos, consulte la descripción de la propiedad **Role** en la documentación de la definición de YAML de la acción.

Para obtener más información sobre las conexiones de cuenta, consulte [Permitir el acceso a AWS los recursos con conexión Cuentas de AWS](ipa-connect-account.md). Para obtener más información sobre cómo añadir una conexión de cuenta a un entorno, consulte [Creación de un entorno](deploy-environments-creating-environment.md).

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿tab/Environment/WhatLa configuración está lista? *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ conexión de cuenta Environment/account/role AWS **

## Name
<a name="lam.invoke.environment.connections.name"></a>

(*LambdaInvoke*/Environment/Connections/**Name**)

(Obligatorio si se incluye [Connections](#lam.invoke.environment.connections))

Especifique el nombre de la conexión de cuenta.

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿La configuración está lista? tab/Environment/What *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ conexión de cuenta Environment/account/role AWS **

## Role
<a name="lam.invoke.environment.connections.role"></a>

(*LambdaInvoke*/Environment/Connections/**Role**)

(Obligatorio si se incluye [Connections](#lam.invoke.environment.connections))

Especifique el nombre de la función de IAM que la acción de **AWS Lambda invocación** utiliza para acceder a la función AWS Lambda e invocarla. Asegúrese de haber [agregado el rol a su CodeCatalyst espacio](ipa-connect-account-addroles.md) y de que el rol incluya las siguientes políticas.

Si no especifica un rol de IAM, la acción utilizará el rol de IAM predeterminado que aparece en el [entorno](deploy-environments.md) de la consola. CodeCatalyst Si usa el rol predeterminado en el entorno, asegúrese de que tenga las siguientes políticas.
+ La siguiente política de permisos:
**aviso**  
Limite los permisos a los que se muestran en la siguiente política. El uso de un rol con permisos más amplios puede suponer un riesgo de seguridad.
+ La siguiente política de confianza personalizada:

**nota**  
Puede usar el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` con esta acción, si así lo desea. Para obtener más información acerca de este rol, consulte [Creación del rol **CodeCatalystWorkflowDevelopmentRole-*spaceName*** para su cuenta y su espacio](ipa-iam-roles.md#ipa-iam-roles-service-create). Tenga en cuenta que el rol `CodeCatalystWorkflowDevelopmentRole-spaceName` tiene permisos de acceso total, lo que puede suponer un riesgo para la seguridad. Le recomendamos que utilice este rol solo en tutoriales y situaciones en las que la seguridad no sea un problema. 

Interfaz de usuario correspondiente: una de las siguientes, según la versión de la acción.
+ (Versiones más recientes) ¿tab/Environment/WhatLa configuración está lista? *my-environment* **/menú de tres puntos/ Cambiar rol**
+ **(Versiones anteriores) Pestaña de configuración/' '/ Rol Environment/account/role**

## Configuration
<a name="lam.invoke.configuration"></a>

(*LambdaInvoke*/**Configuration**)

(Obligatorio) 

Una sección en la que puede definir las propiedades de configuración de la acción.

Interfaz de usuario correspondiente: pestaña **Configuración**

## Function
<a name="lam.invoke.function"></a>

(*LambdaInvoke*/Configuration/**Function**)

(Obligatorio) 

Especifique la AWS Lambda función que invocará esta acción. Puede especificar el nombre de la función o su Nombre de recurso de Amazon (ARN). Encontrará el nombre o el ARN en la consola de Lambda.

**nota**  
La AWS cuenta en la que reside la función Lambda puede ser diferente de la cuenta especificada en. `Connections:`

Interfaz de usuario correspondiente: pestaña Configuración/**Función**

## AWSRegion
<a name="lam.invoke.region"></a>

(*LambdaInvoke*/Configuration/**AWSRegion**)

(Obligatorio) 

Especifique la AWS región en la que reside AWS Lambda la función. Para obtener una lista de códigos de región, consulte [Puntos de conexión regionales](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints) en la *Referencia general de AWS*.

Interfaz de usuario correspondiente: pestaña Configuración/**Bucket de destino (opcional)**

## RequestPayload
<a name="lam.invoke.request.payload"></a>

(*LambdaInvoke*/Configuration/**RequestPayload**)

(Opcional)

Si quiere pasar una carga útil de solicitud a la acción **invocar en AWS Lambda **, especifique aquí la carga útil de solicitud, en formato JSON.

Ejemplo de carga útil de solicitud:

```
'{ "key": "value" }'
```

Si no desea pasar una carga útil de solicitud a la función de Lambda, omita esta propiedad.

**nota**  
Puede especificar `RequestPayload` o `RequestPayloadFile`, pero no ambos.

Para obtener más información sobre la carga útil de solicitud, consulte el tema [Invocar](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html) en la *Referencia de la API de AWS Lambda *.

Interfaz de usuario correspondiente: pestaña Configuración/**Carga útil de solicitud (opcional)**

## RequestPayloadFile
<a name="lam.invoke.request.payload.file"></a>

(*LambdaInvoke*/Configuration/**RequestPayloadFile**)

(Opcional)

Si quiere pasar una carga útil de solicitud a la acción **invocar en AWS Lambda **, especifique aquí la ruta a esa carga útil de solicitud. El archivo debe estar en formato JSON.

El archivo de carga útil de la solicitud puede residir en un repositorio de código fuente o en un artefacto de una acción anterior. La ruta del archivo hace referencia al directorio raíz del repositorio de código fuente o del artefacto.

Si no desea pasar una carga útil de solicitud a la función de Lambda, omita esta propiedad.

**nota**  
Puede especificar `RequestPayload` o `RequestPayloadFile`, pero no ambos.

Para obtener más información sobre el archivo de carga útil de solicitud, consulte el tema [Invocar](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html) en la *Referencia de la API de AWS Lambda *.

Interfaz de usuario correspondiente: pestaña Configuración/**Archivo de carga útil de solicitud (opcional)**

## ContinueOnError
<a name="lam.invoke.continue"></a>

(*LambdaInvoke*/Configuration/**RequestPayloadFile**)

(Opcional)

Especifique si desea marcar la acción **invocar en AWS Lambda ** como realizada correctamente aunque haya un error en la función de AWS Lambda invocada. Valore la posibilidad de poner esta propiedad en `true` para permitir que se inicien las acciones posteriores del flujo de trabajo a pesar del error en Lambda.

El valor predeterminado es que la acción falle si la función de Lambda falla (“desactivado” en el editor visual o `false` en el editor YAML).

Interfaz de usuario correspondiente: pestaña Configuración/**Continuar en caso de error**

## LogType
<a name="lam.invoke.log.type"></a>

(*LambdaInvoke*/Configuration/**LogType**)

(Opcional)

Especifique si desea incluir los registros de errores en la respuesta de la función de Lambda después de invocarla. Puede ver estos registros en la pestaña **Registros** de la acción de **invocación de Lambda** en la consola. CodeCatalyst Los valores posibles son los que se indican a continuación.
+ `Tail`: devolver registros
+ `None`: no devolver registros

El valor predeterminado es **Cola**.

Para obtener más información sobre el tipo de registro, consulte el tema [Invocar](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html) en la *Referencia de la API de AWS Lambda *.

Para obtener más información acerca de cómo visualizar los archivos de registro, consulte [Visualización del estado y los detalles de la ejecución de un flujo de trabajo](workflows-view-run.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Tipo de registro**

## ResponseFilters
<a name="lam.invoke.response.filters"></a>

(*LambdaInvoke*/Configuration/**ResponseFilters**)

(Opcional)

Especifique qué claves de la carga útil de respuesta de Lambda desea convertir en variables de salida. Luego, puede hacer referencia a las variables de salida en acciones posteriores del flujo de trabajo. Para obtener más información sobre las variables de CodeCatalyst, consulte. [Uso de variables en flujos de trabajo](workflows-working-with-variables.md)

Por ejemplo, si la carga útil de respuesta tiene el siguiente aspecto:

```
responsePayload = {
  "name": "Saanvi",
  "location": "Seattle",
  "department": {
    "company": "Amazon",
    "team": "AWS"
  }
}
```

y los filtros de respuesta son similares a lo siguiente:

```
Configuration:
  ...
  ResponseFilters: '{"name": ".name", "company": ".department.company"}'
```

la acción generará las siguientes variables de salida:


| Clave | Valor | 
| --- | --- | 
|  name  |  Saanvi  | 
|  company  |  Amazon  | 

A continuación, puede hacer referencia a las variables `name` y `company` en acciones posteriores.

Si no especifica ninguna clave en `ResponseFilters`, la acción convierte cada clave de nivel superior de la respuesta de Lambda en una variable de salida. Para obtener más información, consulte [Variables de invocar en AWS Lambda](lam-invoke-action-variables.md).

Valore la posibilidad de utilizar filtros de respuesta para limitar las variables de salida generadas a las que realmente desee utilizar.

Interfaz de usuario correspondiente: pestaña Configuración/**Filtros de respuesta (opcional)**

## Outputs
<a name="lam.invoke.outputs"></a>

(*LambdaInvoke*/**Outputs**)

(Opcional)

Define los datos que necesita una acción durante la ejecución de un flujo de trabajo.

Interfaz de usuario correspondiente: pestaña **Salidas**

## Artifacts
<a name="lam.invoke.outputs.artifacts"></a>

(*LambdaInvoke*/Outputs/**Artifacts**)

(Opcional)

Especifique el nombre de los artefactos generados por la acción. Puede hacer referencia a estos artefactos como entrada en otras acciones.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: pestaña Salidas/Artefactos/**Nombre del artefacto de compilación**

## Name
<a name="lam.invoke.outputs.artifacts.name"></a>

(*LambdaInvoke*/Outputs/Artifacts/**Name**)

(Opcional)

Especifique el nombre del artefacto que contendrá la carga útil de respuesta de Lambda devuelta por la función de Lambda. El valor predeterminado es `lambda_artifacts`. Si no especifica un artefacto, la carga útil de la respuesta de Lambda se puede ver en los registros de la acción, que están disponibles en la pestaña Registros de **la** acción en la consola. CodeCatalyst Para obtener más información acerca de cómo visualizar los archivos de registro, consulte [Visualización del estado y los detalles de la ejecución de un flujo de trabajo](workflows-view-run.md).

Interfaz de usuario correspondiente: pestaña Salidas/Artefactos/**Nombre del artefacto de compilación**

## Files
<a name="lam.invoke.outputs.artifacts.files"></a>

(*LambdaInvoke*/Outputs/Artifacts/**Files**)

(Opcional)

Especifique los archivos que desee incluir en el artefacto. Debe especificar `lambda-response.json` para incluir el archivo de carga útil de respuesta de Lambda.

Interfaz de usuario correspondiente: pestaña Salidas/Artefactos/**Archivos producidos por compilación**

# Modificación de una definición de tarea de Amazon ECS
<a name="render-ecs-action"></a>

En esta sección se describe cómo actualizar el `image` campo en un archivo de [definición de tareas de Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions) mediante CodeCatalyst un flujo de trabajo. Para ello, debe añadir la acción **Render Amazon ECS task definition** a su flujo de trabajo. Esta acción actualiza el campo image del archivo de definición de tareas con un nombre de imagen de Docker que proporciona el flujo de trabajo en tiempo de ejecución.

**nota**  
También puede utilizar esta acción para actualizar el campo `environment` de la definición de tarea con variables de entorno.

**Topics**
+ [

## Cuándo usar esta acción
](#render-ecs-action-when-to-use)
+ [

## Funcionamiento de la acción Render Amazon ECS task definition
](#render-ecs-action-how-it-works)
+ [

## Imagen en tiempo de ejecución utilizada por la acción Render Amazon ECS task definition
](#render-ecs-action-runtime)
+ [

# Ejemplo: Modificación de una taskdef de Amazon ECS
](render-ecs-action-example-workflow.md)
+ [

# Cómo añadir la acción Render Amazon ECS task definition
](render-ecs-action-add.md)
+ [

# Visualización del archivo de definición de tareas actualizado
](render-ecs-action-view.md)
+ [

# Variables de Render Amazon ECS task definition
](render-ecs-action-variables.md)
+ [

# Acción Render Amazon ECS task definition en YAML
](render-ecs-action-ref.md)

## Cuándo usar esta acción
<a name="render-ecs-action-when-to-use"></a>

Utilice esta acción si tiene un flujo de trabajo que compile y etiquete una imagen de Docker con contenido dinámico, como un ID de confirmación o una marca de tiempo. 

No utilice esta acción si el archivo de definición de tareas contiene un valor de imagen que siempre sea el mismo. En este caso, puede introducir manualmente el nombre de la imagen en el archivo de definición de tareas.

## Funcionamiento de la acción Render Amazon ECS task definition
<a name="render-ecs-action-how-it-works"></a>

Debe utilizar la acción **Render Amazon ECS task definition** con las acciones **build** y **Deploy to Amazon ECS** de su flujo de trabajo. Juntas, estas acciones funcionan de la siguiente manera:

1. La acción **build** crea la imagen de Docker y la etiqueta con un nombre, un identificador de confirmación, una marca de tiempo u otro contenido dinámico. Por ejemplo, la acción de compilación podría tener el siguiente aspecto:

   ```
   MyECSWorkflow
     Actions:
       BuildAction:
         Identifier: aws/build@v1
         ...
         Configuration:
           Steps:
           # Build, tag, and push the Docker image...
             - Run: docker build -t MyDockerImage:${WorkflowSource.CommitId} .
             ...
   ```

   En el código anterior, la directiva `docker build -t` indica que se debe crear la imagen de Docker y etiquetarla con el ID de confirmación en el tiempo de ejecución de la acción. El nombre de la imagen generada podría tener este aspecto:

   `MyDockerImage:a37bd7e`

1. La acción **Render Amazon ECS task definition** añade el nombre de la imagen generada dinámicamente, `MyDockerImage:a37bd7e`, al archivo de definición de tareas, de la siguiente manera:

   ```
   {
       "executionRoleArn": "arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role",
       "containerDefinitions": [
           {
               "name": "codecatalyst-ecs-container",
               "image":  MyDockerImage:a37bd7e, 
               "essential": true,
               ...
               "portMappings": [
                   {
                       "hostPort": 80,
                       "protocol": "tcp",
                       "containerPort": 80
                   }
               ]
           }
       ],
   ...
   }
   ```

   Opcionalmente, también puede hacer que la acción **Render Amazon ECS task definition** agregue variables de entorno a la definición de la tarea, de la siguiente manera:

   ```
   {
     "executionRoleArn": "arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role",
     "containerDefinitions": [
       {
         "name": "codecatalyst-ecs-container",
         "image":  MyDockerImage:a37bd7e,
         ...
         "environment": [
           {
             name": "ECS_LOGLEVEL",
             value": "info"
           }
         ]
       }
     ],
   ...
   }
   ```

   Para obtener más información sobre las variables de entorno, consulte [Especificación de variables de entorno](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

1. La acción **Deploy to Amazon ECS** registra el archivo de definición de tareas actualizado en Amazon ECS. Al registrar el archivo de definición de tareas actualizado, se implementa la nueva imagen, `MyDockerImage:a37bd7e`, en Amazon ECS.

## Imagen en tiempo de ejecución utilizada por la acción Render Amazon ECS task definition
<a name="render-ecs-action-runtime"></a>

La acción **Render Amazon ECS task definition** se ejecuta en una [imagen de noviembre de 2022](build-images.md#build.previous-image). Para obtener más información, consulte [Imágenes activas](build-images.md#build-curated-images).

# Ejemplo: Modificación de una taskdef de Amazon ECS
<a name="render-ecs-action-example-workflow"></a>

A continuación figura un ejemplo de un flujo de trabajo completo que incluye la acción **Render Amazon ECS task definition**, junto con las acciones de compilación e implementación. El objetivo del flujo de trabajo es crear e implementar una imagen de Docker en su clúster de Amazon ECS. El flujo de trabajo consta de los siguientes componentes que se ejecutarán en orden:
+ Un **desencadenador**: este desencadenador inicia la ejecución automática del flujo de trabajo cuando se introduce un cambio en el repositorio de código fuente. Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md). 
+ Una acción de **compilación** (`BuildDocker`): al activarse, la acción crea la imagen de Docker mediante el Dockerfile, la etiqueta con un ID de confirmación y envía la imagen a Amazon ECR. Para obtener más información sobre la acción de compilación, consulte [Compilación con flujos de trabajo](build-workflow-actions.md).
+ Una acción **Render Amazon ECS task definition** (`RenderTaskDef`): al finalizar la acción de compilación, esta acción actualiza una `taskdef.json` existente ubicada en la raíz del repositorio de código fuente con un valor del campo `image` que incluye el ID de confirmación correcto. Guarda el archivo actualizado con un nombre de archivo nuevo (`task-definition-random-string.json`) y crea un artefacto de salida que contiene este archivo. La acción de renderizado también genera una variable llamada `task-definition` y la establece con el nombre del nuevo archivo de definición de tareas. El artefacto y la variable se utilizarán en la acción de implementación, que es la siguiente.
+ Una acción **Deploy to Amazon ECS** (`DeployToECS`): al completar la acción **Render Amazon ECS task definition**, la acción **Deploy to Amazon ECS** busca el artefacto de salida generado por la acción de renderizado (`TaskDefArtifact`), encuentra el archivo `task-definition-random-string.json` que contiene y lo registra en el servicio de Amazon ECS. A continuación, el servicio de Amazon ECS sigue las instrucciones del archivo `task-definition-random-string.json` para ejecutar las tareas de Amazon ECS (y los contenedores de imágenes de Docker asociados) dentro del clúster de Amazon ECS. 

```
Name: codecatalyst-ecs-workflow
SchemaVersion: 1.0

Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  BuildDocker:
    Identifier: aws/build@v1
    Environment:
      Name: codecatalyst-ecs-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-ecs-build-role
    Inputs:
      Variables:
        - Name: REPOSITORY_URI
          Value: 111122223333.dkr.ecr.us-east-2.amazonaws.com/codecatalyst-ecs-image-repo
        - Name: IMAGE_TAG
          Value: ${WorkflowSource.CommitId}
    Configuration:
      Steps:
        #pre_build:
        - Run: echo Logging in to Amazon ECR...
        - Run: aws --version
        - Run: aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-2.amazonaws.com
        #build:
        - Run: echo Build started on `date`
        - Run: echo Building the Docker image...
        - Run: docker build -t $REPOSITORY_URI:latest .
        - Run: docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
        #post_build:
        - Run: echo Build completed on `date`
        - Run: echo Pushing the Docker images...
        - Run: docker push $REPOSITORY_URI:latest
        - Run: docker push $REPOSITORY_URI:$IMAGE_TAG
        
  RenderTaskDef:
    DependsOn: 
      - BuildDocker
    Identifier: aws/ecs-render-task-definition@v1
    Inputs:
      Variables:
        - Name: REPOSITORY_URI
          Value: 111122223333.dkr.ecr.us-east-2.amazonaws.com/codecatalyst-ecs-image-repo
        - Name: IMAGE_TAG
          Value: ${WorkflowSource.CommitId}
    Configuration:      
      task-definition: taskdef.json
      container-definition-name: codecatalyst-ecs-container
      image: $REPOSITORY_URI:$IMAGE_TAG 
    # The output artifact contains the updated task definition file. 
    # The new file is prefixed with 'task-definition'.
    # The output variable is set to the name of the updated task definition file. 
    Outputs:
      Artifacts:
        - Name: TaskDefArtifact
          Files: 
            - "task-definition*"
      Variables:
        - task-definition
        
  DeployToECS:
    Identifier: aws/ecs-deploy@v1
    Environment:
      Name: codecatalyst-ecs-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-ecs-deploy-role
    #Input artifact contains the updated task definition file.
    Inputs:
      Sources: []
      Artifacts:
        - TaskDefArtifact
    Configuration:
      region: us-east-2
      cluster: codecatalyst-ecs-cluster
      service: codecatalyst-ecs-service
      task-definition: ${RenderTaskDef.task-definition}
```

# Cómo añadir la acción Render Amazon ECS task definition
<a name="render-ecs-action-add"></a>

 Siga estas instrucciones para añadir la acción **Render Amazon ECS task definition** a su flujo de trabajo. 

**Requisito previo**  
Antes de empezar, asegúrese de que dispone de un flujo de trabajo que incluya una acción de compilación de que genere de forma dinámica una imagen de Docker. Consulte el [ejemplo de flujo de trabajo](render-ecs-action-example-workflow.md) anterior para obtener más información.

------
#### [ Visual ]

**Cómo añadir la acción Render Amazon ECS task definition con el editor visual**

1. [Abra la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busque la acción **Render Amazon ECS task definition** y realice una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija **Render Amazon ECS task definition**. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Ver código fuente** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. En las pestañas **Entradas** y **Configuración**, complete los campos según sus necesidades. Para obtener una descripción de cada uno de los campos, consulte la [Acción Render Amazon ECS task definition en YAML](render-ecs-action-ref.md). Esta referencia proporciona información detallada sobre cada campo (y el valor de la propiedad de YAML correspondiente) tal como aparece en el editor visual y el de YAML.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Cómo añadir la acción Render Amazon ECS task definition con el editor de YAML**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la parte superior izquierda, seleccione **\$1 Acciones** para abrir el catálogo de acciones.

1. En la lista desplegable, selecciona **Amazon CodeCatalyst**.

1. Busque la acción **Render Amazon ECS task definition** y realice una de las siguientes acciones:
   + Elija el signo más (**\$1**) para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

     O
   + Elija **Render Amazon ECS task definition**. Aparecerá el cuadro de diálogo de detalles de la acción. En este cuadro de diálogo:
     + (Opcional) Seleccione **Ver código fuente** para [ver el código fuente de la acción](workflows-view-source.md#workflows-view-source.title).
     + Seleccione **Añadir al flujo de trabajo** para añadir la acción al diagrama de flujo de trabajo y abrir su panel de configuración.

1. Modifique las propiedades del código de YAML en función de sus necesidades. Encontrará una explicación de todas las propiedades disponibles en la [Acción Render Amazon ECS task definition en YAML](render-ecs-action-ref.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

**Siguientes pasos**

Tras añadir la acción de renderizado, añada la acción **Deploy to Amazon ECS** a su flujo de trabajo siguiendo las instrucciones que se indican en [Implementación en Amazon ECS con un flujo de trabajo](deploy-action-ecs.md). Al agregar la acción de implementación, haga lo siguiente:

1. En la pestaña **Entradas** de la acción de implementación, en **Artefactos - opcional**, seleccione el artefacto que se generó mediante la acción de renderizado. Contiene el archivo de definición de tarea actualizado.

   Para obtener más información acerca de los artefactos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

1. En la pestaña **Configuración** de la acción de despliegue, en el campo **Definición de la tarea**, especifique la siguiente variable de acción: `${action-name.task-definition}` dónde *action-name* está el nombre de la acción de renderización, por ejemplo`RenderTaskDef`. La acción de renderizado establece esta variable como el nuevo nombre del archivo de definición de tareas.

   Para obtener más información acerca de las variables, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

   Para obtener más información acerca de cómo configurar la acción de implementación, consulte el [flujo de trabajo de ejemplo](render-ecs-action-example-workflow.md) anterior.

# Visualización del archivo de definición de tareas actualizado
<a name="render-ecs-action-view"></a>

Puede ver el nombre y el contenido del archivo de definición de tareas actualizado.

**Visualización del nombre del archivo de definición de tareas actualizado después de que la acción **Render Amazon ECS task definition** lo haya procesado.**

1. Busque la ejecución que incluya una acción de renderización completada:

   1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

   1. Elija el proyecto.

   1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

   1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

   1. Elija una ejecución que incluya la acción de renderización completada.

1. En el diagrama del flujo de trabajo, elija la acción de renderización.

1. Seleccione **Salidas**.

1. Seleccione **Variables**.

1. Aparece el nombre del archivo de definición de tareas. Será similar a este: `task-definition--259-0a2r7gxlTF5X-.json`.

**Visualización del contenido del archivo de definición de tareas actualizado**

1. Busque la ejecución que incluya una acción de renderización completada:

   1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

   1. Elija el proyecto.

   1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

   1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

   1. Elija una ejecución que incluya la acción de renderización completada.

1. En la ejecución del flujo de trabajo, en la parte superior, junto a **Visual** y **YAML**, seleccione **Salidas del flujo de trabajo**.

1. En la sección **Artefactos**, seleccione **Descargar** junto al artefacto que contiene el archivo de definición de tareas actualizado. Este artefacto tendrá en la columna **Producido por** el valor del nombre de su acción de renderización.

1. Abra el archivo.zip para ver el archivo .json de definición de tareas.

# Variables de Render Amazon ECS task definition
<a name="render-ecs-action-variables"></a>

La acción **Render Amazon ECS task definition** produce y establece las siguientes variables en tiempo de ejecución. Se conocen como *variables predefinidas*.

Para obtener información sobre cómo hacer referencia a estas variables en un flujo de trabajo, consulte [Uso de variables predefinidas](workflows-using-predefined-variables.md).


| Clave | Valor | 
| --- | --- | 
|  task-definition  |  Nombre dado al archivo de definición de tareas que se actualizó mediante la acción **Render Amazon ECS task definition**. El nombre sigue este formato: `task-definition-random-string.json`. Ejemplo: `task-definition--259-0a2r7gxlTF5Xr.json`  | 

# Acción Render Amazon ECS task definition en YAML
<a name="render-ecs-action-ref"></a>

A continuación figura la definición en YAML de la acción **Render Amazon ECS task definition**. Para obtener información sobre cómo utilizar esta acción, consulte [Modificación de una definición de tarea de Amazon ECS](render-ecs-action.md).

Esta definición de acción existe como una sección dentro de un archivo de definición de flujo de trabajo más amplio. Para obtener más información acerca de este archivo, consulte [Definición de flujo de trabajo en YAML](workflow-reference.md).

**nota**  
La mayoría de las propiedades de YAML que se muestran a continuación tienen elementos de interfaz de usuario correspondientes en el editor visual. Para buscar un elemento de la interfaz de usuario, use **Ctrl\$1F**. El elemento aparecerá en la lista con su propiedad de YAML asociada.

```
# The workflow definition starts here.
# See Propiedades de nivel superior for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  ECSRenderTaskDefinition\$1nn: 
    Identifier: aws/ecs-render-task-definition@v1
    DependsOn:
      - build-action
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - task-definition-artifact
      Variables:
        - Name: variable-name-1
          Value: variable-value-1
        - Name: variable-name-2
          Value: variable-value-2
    Configuration 
      task-definition: task-definition-path
      container-definition-name: container-definition-name
      image: docker-image-name
      environment-variables:
        - variable-name-1=variable-value-1
        - variable-name-2=variable-value-2
    Outputs:
      Artifacts:
        - Name: TaskDefArtifact
          Files: "task-definition*"
      Variables:
        - task-definition
```

## ECSRenderTaskDefinition
<a name="render.ecs.name"></a>

(Obligatorio) 

Especifique el nombre de la acción. Todos los nombres de las acciones deben ser únicos dentro del flujo de trabajo. Los nombres de las acciones están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de las acciones.

Predeterminado: `ECSRenderTaskDefinition_nn`.

Interfaz de usuario correspondiente: pestaña Configuración/**Nombre de la acción**

## Identifier
<a name="render.ecs.identifier"></a>

(*ECSRenderTaskDefinition*/**Identifier**)

(Obligatorio) 

Identifica la acción. No cambie esta propiedad a menos que desee cambiar la versión. Para obtener más información, consulte [Especificación de la versión de la acción que se va a utilizar](workflows-action-versions.md).

Predeterminado: `aws/ecs-render-task-definition@v1`.

**Interfaz de usuario correspondiente: diagrama ECSRenderTaskDefinition de flujo de trabajo/ \$1nn/ aws/ @v1 label ecs-render-task-definition**

## DependsOn
<a name="render.ecs.dependson"></a>

(*ECSRenderTaskDefinition*/**DependsOn**)

(Opcional)

Especifique la acción, el grupo de acciones o la puerta que debe ejecutarse correctamente para que esta acción se ejecute.

Para obtener más información sobre la funcionalidad “depende de”, consulte [Secuenciación de acciones](workflows-depends-on.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Depende de (opcional)**

## Compute
<a name="render.ecs.computename"></a>

(*ECSRenderTaskDefinition*/**Compute**)

(Opcional)

El motor de computación utilizado para ejecutar las acciones del flujo de trabajo. Puede especificar el motor de computación en el nivel del flujo de trabajo o en el nivel de acción, pero no en ambos. Cuando se especifica en el nivel de flujo de trabajo, la configuración del motor de computación se aplica a todas las acciones definidas en el flujo de trabajo. En el nivel de flujo de trabajo, también puede ejecutar varias acciones en la misma instancia. Para obtener más información, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md).

Interfaz de usuario correspondiente: *ninguna*

## Type
<a name="render.ecs.computetype"></a>

(*ECSRenderTaskDefinition*/Compute/**Type**)

(Obligatorio si se incluye [Compute](#render.ecs.computename))

El tipo de motor de computación. Puede utilizar uno de los siguientes valores:
+ **EC2**(editor visual) o (editor YAML) `EC2`

  Optimizado para ofrecer flexibilidad durante las ejecuciones de acciones.
+ **Lambda** (editor visual) o `Lambda` (editor de YAML)

  Velocidades de inicio de acciones optimizadas.

Para obtener más información sobre los tipos de computación, consulte [Tipos de computación](workflows-working-compute.md#compute.types).

Interfaz de usuario correspondiente: pestaña Configuración/**Tipo de computación**

## Fleet
<a name="render.ecs.computefleet"></a>

(*ECSRenderTaskDefinition*/Compute/**Fleet**)

(Opcional)

Especifique la máquina o la flota que ejecutará el flujo de trabajo o las acciones del flujo de trabajo. Con las flotas bajo demanda, cuando se inicia una acción, el flujo de trabajo aprovisiona los recursos que necesita y las máquinas se destruyen cuando finaliza la acción. Ejemplos de flotas bajo demanda: `Linux.x86-64.Large`, `Linux.x86-64.XLarge`. Para obtener más información sobre las flotas bajo demanda, consulte [Propiedades de las flotas bajo demanda](workflows-working-compute.md#compute.on-demand).

Con las flotas aprovisionadas, configura un conjunto de máquinas dedicadas para ejecutar las acciones del flujo de trabajo. Estas máquinas permanecen inactivas, listas para procesar acciones de forma inmediata. Para obtener más información sobre las flotas aprovisionadas, consulte [Propiedades de flotas aprovisionadas](workflows-working-compute.md#compute.provisioned-fleets).

Si `Fleet` se omite, el valor predeterminado es `Linux.x86-64.Large`.

Interfaz de usuario correspondiente: pestaña Configuración/**Flota de computación**

## Timeout
<a name="render.ecs.timeout"></a>

(*ECSRenderTaskDefinition*/**Timeout**)

(Opcional)

Especifique la cantidad de tiempo en minutos (editor YAML) o en horas y minutos (editor visual) que la acción puede ejecutarse antes de que CodeCatalyst finalice la acción. El mínimo es 5 minutos y el máximo se describe en [Cuotas para flujos de trabajo en CodeCatalyst](workflows-quotas.md). El tiempo de espera predeterminado es el mismo que el tiempo de espera máximo.

Interfaz de usuario correspondiente: pestaña Configuración/**Tiempo de espera (opcional)**

## Inputs
<a name="render.ecs.inputs"></a>

(*ECSRenderTaskDefinition*/**Inputs**)

(Opcional)

La sección `Inputs` define los datos que necesita la acción `ECSRenderTaskDefinition` durante la ejecución de un flujo de trabajo.

**nota**  
Solo se permite una entrada (ya sea un código fuente o un artefacto) para cada acción **Render Amazon ECS task definition**. Las variables no se contabilizan en este total.

Interfaz de usuario correspondiente: pestaña **Entradas**

## Sources
<a name="render.ecs.inputs.sources"></a>

(*ECSRenderTaskDefinition*/Inputs/**Sources**)

(Obligatorio si el archivo de definición de la tarea está almacenado en un repositorio de código fuente)

Si el archivo de definición de la tarea está almacenado en un repositorio de código fuente, especifique la etiqueta de dicho repositorio. Actualmente, la única etiqueta admitida es `WorkflowSource`.

Si el archivo de definición de la tarea no está incluido en un repositorio de código fuente, debe residir en un artefacto generado por otra acción.

Para obtener más información sobre orígenes, consulte [Conexión de repositorios de código fuente a flujos de trabajo](workflows-sources.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Orígenes (opcional)**

## Artifacts - input
<a name="render.ecs.inputs.artifacts"></a>

(*ECSRenderTaskDefinition*/Inputs/**Artifacts**)

(Obligatorio si el archivo de definición de la tarea está almacenado en un [artefacto de salida](workflows-working-artifacts-output.md) de una acción anterior)

Si el archivo de definición de la tarea que desea implementar está incluido en un artefacto generado por una acción anterior, especifique ese artefacto aquí. Si el archivo de definición de la tarea no está incluido en un artefacto, debe residir en el repositorio de código fuente.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Artefactos (opcional)**

## Variables - input
<a name="render.ecs.inputs.variables"></a>

(*ECSRenderTaskDefinition*/Inputs/**Variables**)

(Obligatorio)

Especifique una secuencia de name/value pares que defina las variables de entrada que desea que estén disponibles para la acción. Los nombres de variables están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de variables.

Para obtener más información sobre las variables, incluidos ejemplos, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

Interfaz de usuario correspondiente: pestaña Entradas/**Variables (opcional)**

## Configuration
<a name="render.ecs.configuration"></a>

(*ECSRenderTaskDefinition*/**Configuration**)

(Obligatorio) 

Una sección en la que puede definir las propiedades de configuración de la acción.

Interfaz de usuario correspondiente: pestaña **Configuración**

## task-definition
<a name="render.ecs.task.definition"></a>

(*ECSRenderTaskDefinition*/Configuration/**task-definition**)

(Obligatorio) 

Especifique la ruta a un archivo de definición de la tarea existente. Si el archivo reside en el repositorio de código fuente, la ruta es relativa a la carpeta raíz del repositorio de código fuente. Si el archivo reside en un artefacto de una acción del flujo de trabajo anterior, la ruta es relativa a la carpeta raíz del artefacto. Para obtener más información sobre los archivos de definición de tareas, consulte [Task definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

Interfaz de usuario correspondiente: pestaña Configuración/**Definición de tarea**

## container-definition-name
<a name="render.ecs.container.name"></a>

(*ECSRenderTaskDefinition*/Configuration/**container-definition-name**)

(Obligatorio) 

Especifique el nombre del contenedor en el que se ejecutará la imagen de Docker. Puede encontrar este nombre en las `containerDefinitions`, en el campo `name` del archivo de definición de tareas. Para obtener más información, consulte [Nombre](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definition_name) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

Interfaz de usuario correspondiente: pestaña Configuración/**Nombre de contenedor**

## image
<a name="render.ecs.image"></a>

(*ECSRenderTaskDefinition*/Configuration/**image**)

(Obligatorio) 

Especifique el nombre de la imagen de Docker que quiera que se agregue al archivo de definición de tareas con la acción **Render Amazon ECS task definition**. La acción añade este nombre a las `containerDefinitions`, al campo `image`, en el archivo de definición de tareas. Si ya existe un valor en el campo `image`, la acción lo sobrescribe. Puede incluir variables en el nombre de la imagen.

Ejemplos:

Si lo especificas`MyDockerImage:${WorkflowSource.CommitId}`, la acción se agrega `MyDockerImage:commit-id` al archivo de definición de tareas, donde *commit-id* se encuentra un ID de confirmación generado en tiempo de ejecución por el flujo de trabajo.

Si lo especificas`my-ecr-repo/image-repo:$(date +%m-%d-%y-%H-%m-%s)`, la acción añade *my-ecr-repo* /image-repo: *date \$1%m-%d-%y-%H-%m-%s* al archivo de definición de tareas, donde *my-ecr-repo* es el URI de un Amazon Elastic Container Registry (ECR) y *date \$1%m-%d-%y-%H-%m-%s* es una marca de tiempo en el formato `month-day-year-hour-minute-second` generado en tiempo de ejecución por el flujo de trabajo.

Para obtener más información sobre el campo `image`, consulte [Imagen](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definition_image) en la *Guía para desarrolladores de Amazon Elastic Container Service*. Para obtener más información acerca de las variables, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

Interfaz de usuario correspondiente: pestaña Configuración/**Nombre de imagen**

## environment-variables
<a name="render.ecs.environment.variables"></a>

(*ECSRenderTaskDefinition*/Configuration/**environment-variables**)

(Obligatorio) 

Especifique las variables de entorno que quiera que se agreguen al archivo de definición de tareas con la acción **Render Amazon ECS task definition**. La acción añade las variables a las `containerDefinitions`, al campo `environment`, en el archivo de definición de tareas. Si las variables ya existen en el archivo, la acción sobrescribe los valores de las variables existentes y añade las variables nuevas. Para obtener más información sobre las variables de entorno de Amazon ECS, consulte [Especificación de variables de entorno](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

Interfaz de usuario correspondiente: pestaña Configuración/**Variables de entorno - opcional**

## Outputs
<a name="render.ecs.outputs"></a>

(*ECSRenderTaskDefinition*/**Outputs**)

(Obligatorio) 

Define los datos que necesita una acción durante la ejecución de un flujo de trabajo.

Interfaz de usuario correspondiente: pestaña **Salidas**

## Artifacts
<a name="render.ecs.outputs.artifacts"></a>

(*ECSRenderTaskDefinition*/Outputs/**Artifacts**)

(Obligatorio) 

Especifique el nombre de los artefactos generados por la acción. Puede hacer referencia a estos artefactos como entrada en otras acciones.

Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

Interfaz de usuario correspondiente: pestaña Salidas/**Artefactos**

## Name
<a name="render.ecs.outputs.artifacts.name"></a>

(*ECSRenderTaskDefinition*/Outputs/Artifacts/**Name**)

(Obligatorio) 

Especifique el nombre del artefacto que contendrá el archivo de definición de tareas actualizado. El valor predeterminado es `MyTaskDefinitionArtifact`. A continuación, debe especificar este artefacto como entrada en la acción **Deploy to Amazon ECS**. Para saber cómo añadir este artefacto como entrada a la acción **Deploy to Amazon ECS**, consulte [Ejemplo: Modificación de una taskdef de Amazon ECS](render-ecs-action-example-workflow.md).

Interfaz de usuario correspondiente: pestaña Salidas/Artefactos/**Nombre**

## Files
<a name="render.ecs.outputs.artifacts.files"></a>

(*ECSRenderTaskDefinition*/Outputs/Artifacts/**Files**)

(Obligatorio) 

Especifique los archivos que desee incluir en el artefacto. Debe especificar `task-definition-*` para que se incluya el archivo de definición de tareas actualizado, que comienza con `task-definition-`.

Interfaz de usuario correspondiente: pestaña Salidas/Artefactos/**Archivos**

## Variables
<a name="render.ecs.outputs.variables"></a>

(*ECSRenderTaskDefinition*/Outputs/**Variables**)

(Obligatorio) 

Especifique el nombre de una variable que se establecerá mediante la acción de renderizado. La acción de renderizado establecerá el valor de esta variable en el nombre del archivo de definición de tareas actualizado (por ejemplo, `task-definition-random-string.json`). A continuación, debe especificar esta variable en la propiedad **Definición de tareas** (editor visual) o `task-definition` (editor yaml) de la acción **Implementar en Amazon ECS**. Para saber cómo agregar esta variable a la acción **Deploy to Amazon ECS**, consulte [Ejemplo: Modificación de una taskdef de Amazon ECS](render-ecs-action-example-workflow.md).

Valor predeterminado: `task-definition`

Interfaz de usuario correspondiente: pestaña Salidas/Variables/campo **Nombre**

# Uso de variables en flujos de trabajo
<a name="workflows-working-with-variables"></a>

 Una *variable* es un par clave-valor que contiene información a la que puedes hacer referencia en tu flujo de trabajo de Amazon CodeCatalyst . La parte del valor de la variable se reemplaza por un valor real cuando se ejecuta el flujo de trabajo.

Hay dos tipos de variables que puede usar en un flujo de trabajo:
+ **Variables definidas por el usuario**: son pares clave-valor que usted puede definir.
+ **Variables predefinidas**: son pares clave-valor que un flujo de trabajo emite automáticamente. No es necesario que los defina.

Para obtener más información acerca de los flujos de trabajo, consulte [Creación, pruebas e implementaciones con flujos de trabajoCreación, pruebas e implementaciones con flujos de trabajo](workflow.md).

**nota**  
CodeCatalyst también admite [parámetros GitHub de salida](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-output-parameter), que se comportan como variables y se puede hacer referencia a ellos en otras acciones. Para obtener más información, consulte [Exportación de los parámetros de salida de GitHub](integrations-github-action-export.md) y [Referencia a parámetros GitHub de salida](integrations-github-action-referencing.md).

**Topics**
+ [

# Uso de variables definidas por el usuario
](workflows-using-variables.md)
+ [

# Uso de variables predefinidas
](workflows-using-predefined-variables.md)

# Uso de variables definidas por el usuario
<a name="workflows-using-variables"></a>

Las *variables definidas por el usuario* son pares clave-valor que usted puede definir. Hay dos tipos:
+ **Variables de texto sin formato**, o simplemente **variables**: se trata de pares clave-valor que se definen en texto sin formato en el archivo de definición del flujo de trabajo.
+ **Secretos**: son pares clave-valor que se definen en una página de **secretos** independiente de la consola de Amazon CodeCatalyst . La *clave* (nombre) es una etiqueta pública y el *valor* contiene la información que quiera mantener privada. Solo debe especificar la clave en el archivo de definición del flujo de trabajo. Utilice secretos en lugar de contraseñas y otra información confidencial en el archivo de definición del flujo de trabajo.

**nota**  
Por motivos de brevedad, en esta guía se utiliza el término *variable* para referirse a una *variable de texto sin formato*.

Para obtener más información acerca de las variables, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

**Topics**
+ [

# Ejemplos de variables
](workflows-working-with-variables-ex.md)
+ [

# Definición de una variable
](workflows-working-with-variables-define-input.md)
+ [

# Definición de un secreto
](workflows-working-with-variables-define-secret.md)
+ [

# Exportación de una variable para que otras acciones puedan utilizarla
](workflows-working-with-variables-export-input.md)
+ [

# Referencia a una variable en la acción que la define
](workflows-working-with-variables-reference-input.md)
+ [

# Referencia a la salida de una variable generada por otra acción
](workflows-working-with-variables-reference-action.md)
+ [

# Referencia a un secreto
](workflows-working-with-variables-reference-secret.md)

# Ejemplos de variables
<a name="workflows-working-with-variables-ex"></a>

En los siguientes ejemplos se muestra cómo definir variables y hacer referencia a ellas en el archivo de definición del flujo de trabajo.

Para obtener más información acerca de las variables, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

**Topics**
+ [

## Ejemplo: Definición de una variable mediante la propiedad Inputs
](#workflows-working-with-variables-ex-define-inputs)
+ [

## Ejemplo: Definición de una variable mediante la propiedad Steps
](#workflows-working-with-variables-ex-define-steps)
+ [

## Ejemplo: Exportación de una variable mediante la propiedad Outputs
](#workflows-working-with-variables-ex-export-outputs)
+ [

## Ejemplo: Referencia a una variable definida en la misma acción
](#workflows-working-with-variables-ex-refer-current)
+ [

## Ejemplo: Referencia a una variable definida en otra acción
](#workflows-working-with-variables-ex-refer-other)
+ [

## Ejemplo: Referencia a un secreto
](#workflows-working-with-variables-ex-refer-secret)

## Ejemplo: Definición de una variable mediante la propiedad Inputs
<a name="workflows-working-with-variables-ex-define-inputs"></a>

El siguiente ejemplo muestra cómo definir dos variables, `VAR1` y `VAR2`, en una sección `Inputs`.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Inputs:
      Variables:
      - Name: VAR1
        Value: "My variable 1"
      - Name: VAR2
        Value: "My variable 2"
```

## Ejemplo: Definición de una variable mediante la propiedad Steps
<a name="workflows-working-with-variables-ex-define-steps"></a>

El siguiente ejemplo muestra cómo definir una variable `DATE` en la sección `Steps` de forma explícita.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Configuration:    
      Steps:
        - Run: DATE=$(date +%m-%d-%y)
```

## Ejemplo: Exportación de una variable mediante la propiedad Outputs
<a name="workflows-working-with-variables-ex-export-outputs"></a>

El siguiente ejemplo muestra cómo definir dos variables, `REPOSITORY-URI` y `TIMESTAMP`, y exportarlas utilizando la sección `Outputs`.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Inputs:
      Variables:
        - Name: REPOSITORY-URI
          Value: 111122223333.dkr.ecr.us-east-2.amazonaws.com/codecatalyst-ecs-image-repo
    Configuration:
      Steps:
        - Run: TIMESTAMP=$(date +%m-%d-%y-%H-%m-%s) 
    Outputs:
      Variables:
        - REPOSITORY-URI
        - TIMESTAMP
```

## Ejemplo: Referencia a una variable definida en la misma acción
<a name="workflows-working-with-variables-ex-refer-current"></a>

El siguiente ejemplo muestra cómo especificar una variable `VAR1` en `MyBuildAction` y después hacer referencia a ella en la misma acción utilizando `$VAR1`.

```
Actions:
  MyBuildAction:
    Identifier: aws/build@v1
    Inputs:
      Variables:
        - Name: VAR1
          Value: my-value
    Configuration:
      Steps:
        - Run: $VAR1
```

## Ejemplo: Referencia a una variable definida en otra acción
<a name="workflows-working-with-variables-ex-refer-other"></a>

El siguiente ejemplo muestra cómo especificar una variable `TIMESTAMP` en `BuildActionA`, exportarla con la propiedad `Outputs` y después hacer referencia a ella en `BuildActionB` con `${BuildActionA.TIMESTAMP}`.

```
Actions:
  BuildActionA:
    Identifier: aws/build@v1
    Configuration:    
      Steps:
        - Run: TIMESTAMP=$(date +%m-%d-%y-%H-%m-%s) 
    Outputs:
      Variables:
        - TIMESTAMP
  BuildActionB:
    Identifier: aws/build@v1
    Configuration:
      Steps:
        - Run: docker build -t my-ecr-repo/image-repo:latest .      
        - Run: docker tag my-ecr-repo/image-repo:${BuildActionA.TIMESTAMP}
        
        # Specifying just '$TIMESTAMP' here will not work 
        # because TIMESTAMP is not a variable 
        # in the BuildActionB action.
```

## Ejemplo: Referencia a un secreto
<a name="workflows-working-with-variables-ex-refer-secret"></a>

En el siguiente ejemplo se muestra cómo hacer referencia a un secreto `my-password`. La `my-password` es la clave del secreto. La clave de este secreto y el valor de la contraseña correspondiente deben especificarse en la página **Secretos** de la CodeCatalyst consola antes de utilizarlos en el archivo de definición del flujo de trabajo. Para obtener más información, consulte [Enmascaramiento de datos mediante secretos](workflows-secrets.md).

```
Actions:
  BuildActionA:
    Identifier: aws/build@v1
    Configuration:    
      Steps:
        - Run: curl -u LiJuan:${Secrets.my-password} https://example.com
```

# Definición de una variable
<a name="workflows-working-with-variables-define-input"></a>

Puede definir las variables de dos maneras:
+ En la sección `Inputs` de una acción de flujo de trabajo: consulte [Definición de una variable en la sección Entradas](#workflows-to-define-variable-input)
+ En la sección `Steps` de una acción de flujo de trabajo: consulte [Definición de una variable en la sección Steps](#workflows-to-define-variable-steps)
**nota**  
El `Steps` método solo funciona con las acciones de CodeCatalyst compilación, prueba y **GitHub Acciones**, ya que son las únicas acciones que incluyen una `Steps` sección.

Para ver ejemplos, consulte [Ejemplos de variables](workflows-working-with-variables-ex.md).

Para obtener más información acerca de las variables, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

------
#### [ Visual ]

**Definición de una variable en la sección Entradas (editor visual)**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, elija la acción en la que quiera especificar la variable.

1. Seleccione **Entradas**.

1. En **Variables (opcional)**, seleccione **Agregar variable** y haga lo siguiente:

   Especifique una secuencia de name/value pares que defina las variables de entrada que desea poner a disposición de la acción. Los nombres de variables están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de variables.

   Para obtener más información sobre las variables, incluidos ejemplos, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Definición de una variable en la sección Entradas (editor de YAML)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En una acción de flujo de trabajo, agregue código similar al siguiente:

   ```
   action-name:
     Inputs:
       Variables:
         - Name: variable-name
           Value: variable-value
   ```

   Para obtener más ejemplos, consulte [Ejemplos de variables](workflows-working-with-variables-ex.md). Para obtener más información, consulte la [Definición de flujo de trabajo en YAML](workflow-reference.md) para su acción.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

------
#### [ Visual ]

**Definición de una variable en la sección “Pasos” (editor visual)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, elija la acción en la que quiera especificar la variable.

1. Elija **Configuración**.

1. En **los comandos de Shell** o en **GitHublas acciones (YAML)**, las que estén disponibles, defina una variable en la acción`Steps`, de forma explícita o implícita.
   + Para definir la variable de forma explícita, inclúyala en un comando bash directamente en la sección `Steps`.
   + Para definir una variable de forma implícita, especifíquela en un archivo al que se haga referencia en la sección `Steps` de la acción.

     Para ver ejemplos, consulte [Ejemplos de variables](workflows-working-with-variables-ex.md). Para obtener más información, consulte la [Definición de flujo de trabajo en YAML](workflow-reference.md) de la acción.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Definición de una variable en la sección “Pasos” (editor de YAML)**

1. [Abre la CodeCatalyst consola en https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En una acción de flujo de trabajo, defina una variable en la sección `Steps` de la acción, de forma explícita o implícita.
   + Para definir la variable de forma explícita, inclúyala en un comando bash directamente en la sección `Steps`.
   + Para definir una variable de forma implícita, especifíquela en un archivo al que se haga referencia en la sección `Steps` de la acción.

     Para ver ejemplos, consulte [Ejemplos de variables](workflows-working-with-variables-ex.md). Para obtener más información, consulte la [Definición de flujo de trabajo en YAML](workflow-reference.md) de la acción.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Definición de un secreto
<a name="workflows-working-with-variables-define-secret"></a>

Defina un secreto en la página **Secretos** de la CodeCatalyst consola. Para obtener más información, consulte [Enmascaramiento de datos mediante secretos](workflows-secrets.md).

Por ejemplo, puede definir un secreto que tenga este aspecto:
+ Nombre (clave): **my-password**
+ Valor: **^\$1H3\$1\$1b9**

Una vez definido el secreto, puede especificar la clave del secreto (**my-password**) en el archivo de definición del flujo de trabajo. Para ver un ejemplo práctico, consulte [Ejemplo: Referencia a un secreto](workflows-working-with-variables-ex.md#workflows-working-with-variables-ex-refer-secret).

# Exportación de una variable para que otras acciones puedan utilizarla
<a name="workflows-working-with-variables-export-input"></a>

Siga estas instrucciones para exportar una variable de una acción para poder hacer referencia a ella en otras acciones.

Antes de exportar una variable, tenga en cuenta lo siguiente:
+ Si solo tiene que hacer referencia a la variable dentro de la acción en la que está definida, no necesita exportarla.
+ No todas las acciones son compatibles con la exportación de variables. Para determinar si su acción es compatible con esta característica, siga las instrucciones del editor visual que aparecen a continuación y compruebe si la acción incluye un botón de **Variables** en la pestaña **Salidas**. En caso afirmativo, la exportación de variables es compatible. 
+ Para exportar una variable de una GitHub acción, consulte[Exportación de los parámetros de salida de GitHub](integrations-github-action-export.md).

Para obtener más información acerca de las variables, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

**Requisito previo**  
Asegúrese de haber definido la variable que quiera exportar. Para obtener más información, consulte [Definición de una variable](workflows-working-with-variables-define-input.md).

------
#### [ Visual ]

**Exportación de una variable (editor visual)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **Visual**.

1. En el diagrama del flujo, elija la acción desde la que quiera exportar la variable.

1. Seleccione **Salidas**.

1. En **Variables (opcional)**, seleccione **Agregar variable** y haga lo siguiente:

   Especifique el nombre de la variable que desee que exporte la acción. Esta variable ya debe estar definida en la sección `Inputs` o `Steps` de la misma acción.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

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

**Exportación de una variable (editor de YAML)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la acción desde la que quiera exportar la variable, añada un código similar al siguiente:

   ```
   action-name:
     Outputs:
       Variables:
         - Name: variable-name
   ```

   Para obtener más ejemplos, consulte [Ejemplos de variables](workflows-working-with-variables-ex.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Referencia a una variable en la acción que la define
<a name="workflows-working-with-variables-reference-input"></a>

Siga estas instrucciones para hacer referencia a una variable en la acción que la define.

**nota**  
Para hacer referencia a una variable generada por una GitHub acción, consulte[Referencia a parámetros GitHub de salida](integrations-github-action-referencing.md).

Para obtener más información acerca de las variables, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

**Requisito previo**  
Asegúrese de haber definido la variable a la que quiera hacer referencia. Para obtener más información, consulte [Definición de una variable](workflows-working-with-variables-define-input.md).

------
#### [ Visual ]

*No disponible. Seleccione YAML para ver las instrucciones de YAML.*

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

**Referencia a una variable en la acción que la define**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la CodeCatalyst acción que define la variable a la que quieres hacer referencia, añade la variable con la siguiente sintaxis de bash:

   ```
   $variable-name
   ```

   Por ejemplo:

   ```
   MyAction:
       Configuration:
         Steps:
           - Run: $variable-name
   ```

   Para obtener más ejemplos, consulte [Ejemplos de variables](workflows-working-with-variables-ex.md). Para obtener más información, consulte la información de referencia de su acción en la [Definición de flujo de trabajo en YAML](workflow-reference.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Referencia a la salida de una variable generada por otra acción
<a name="workflows-working-with-variables-reference-action"></a>

Utilice las siguientes instrucciones para hacer referencia a salidas de variables generadas por otras acciones.

**nota**  
 Para hacer referencia a una salida variable de una GitHub acción, consulte[Referencia a parámetros GitHub de salida](integrations-github-action-referencing.md).

Para obtener más información acerca de las variables, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

**Requisito previo**  
Asegúrese de haber exportado la variable a la que quiera hacer referencia. Para obtener más información, consulte [Exportación de una variable para que otras acciones puedan utilizarla](workflows-working-with-variables-export-input.md).

------
#### [ Visual ]

*No disponible. Seleccione YAML para ver las instrucciones de YAML.*

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

**Referencia a la salida de una variable generada por otra acción (editor de YAML)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la CodeCatalyst acción, añada una referencia a la variable con la siguiente sintaxis:

   ```
   ${action-group-name.action-name.variable-name}
   ```

   Reemplace:
   + *action-group-name*con el nombre del grupo de acciones que contiene la acción que genera la variable.
**nota**  
Puede omitir *action-group-name* si no hay ningún grupo de acciones o si la variable es producida por una acción del mismo grupo de acciones.
   + *action-name*con el nombre de la acción que genera la variable.
   + *variable-name*con el nombre de la variable.

   Por ejemplo:

   ```
   MySecondAction:
       Configuration:
         Steps:
           - Run: ${MyFirstAction.TIMESTAMP}
   ```

   Para obtener más ejemplos, consulte [Ejemplos de variables](workflows-working-with-variables-ex.md). Para obtener más información, consulte la [Definición de flujo de trabajo en YAML](workflow-reference.md) para su acción.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Referencia a un secreto
<a name="workflows-working-with-variables-reference-secret"></a>

Para obtener instrucciones sobre cómo hacer referencia a un secreto en el archivo de definición del flujo de trabajo, consulte [Uso de un secreto](workflows-secrets.using.md).

Para ver un ejemplo, consulte [Ejemplo: Referencia a un secreto](workflows-working-with-variables-ex.md#workflows-working-with-variables-ex-refer-secret).

# Uso de variables predefinidas
<a name="workflows-using-predefined-variables"></a>

Las *variables predefinidas* son pares clave-valor que un flujo de trabajo emite automáticamente y que están disponibles para su uso en las acciones del flujo de trabajo. 

Para obtener más información acerca de las variables, consulte [Uso de variables en flujos de trabajo](workflows-working-with-variables.md).

**Topics**
+ [

# Ejemplos de referencia a variables predefinidas
](workflows-predefined-examples.md)
+ [

# Referencia a una variable predefinida
](workflows-working-with-variables-reference-output-vars.md)
+ [

# Determinación de qué variables predefinidas emite un flujo de trabajo
](workflows-working-with-variables-determine-output-vars.md)
+ [

# Lista de variables predefinidas
](workflow-ref-action-variables.md)

# Ejemplos de referencia a variables predefinidas
<a name="workflows-predefined-examples"></a>

En los siguientes ejemplos se muestra cómo hacer referencia a variables predefinidas en el archivo de definición del flujo de trabajo.

Para obtener más información acerca de las variables, consulte [Uso de variables predefinidas](workflows-using-predefined-variables.md).

**Topics**
+ [

## Ejemplo: hacer referencia a la variable predefinida CommitId "»
](#workflows-working-with-variables-ex-refer-action)
+ [

## Ejemplo: hacer referencia a la variable predefinida BranchName «»
](#workflows-working-with-variables-ex-branch)

## Ejemplo: hacer referencia a la variable predefinida CommitId "»
<a name="workflows-working-with-variables-ex-refer-action"></a>

El siguiente ejemplo muestra cómo hacer referencia a la variable predefinida `CommitId` en la acción `MyBuildAction`. La `CommitId` variable se genera automáticamente mediante CodeCatalyst. Para obtener más información, consulte [Lista de variables predefinidas](workflow-ref-action-variables.md).

Aunque en el ejemplo se muestra la variable que se utiliza en la acción de compilación, se puede utilizar `CommitId` en cualquier acción.

```
MyBuildAction:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Steps:
      #Build Docker image and tag it with a commit ID
        - Run: docker build -t image-repo/my-docker-image:latest .
        - Run: docker tag image-repo/my-docker-image:${WorkflowSource.CommitId}
```

## Ejemplo: hacer referencia a la variable predefinida BranchName «»
<a name="workflows-working-with-variables-ex-branch"></a>

El siguiente ejemplo muestra cómo hacer referencia a la variable predefinida `BranchName` en la acción `CDKDeploy`. La `BranchName` variable se genera automáticamente mediante CodeCatalyst. Para obtener más información, consulte [Lista de variables predefinidas](workflow-ref-action-variables.md).

Aunque en el ejemplo se muestra la variable que se utiliza en la acción **AWS CDK deploy**, se puede utilizar `BranchName` en cualquier acción.

```
CDKDeploy:
    Identifier: aws/cdk-deploy@v2
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      StackName: app-stack-${WorkflowSource.BranchName}
```

# Referencia a una variable predefinida
<a name="workflows-working-with-variables-reference-output-vars"></a>

Puedes hacer referencia a variables predefinidas en cualquier acción dentro de un CodeCatalyst flujo de trabajo de Amazon.

Utilice las siguientes instrucciones para hacer referencia a una variable predefinida en un flujo de trabajo.

Para obtener más información acerca de las variables, consulte [Uso de variables predefinidas](workflows-using-predefined-variables.md).

**Requisito previo**  
Determine el nombre de la variable predefinida a la que quiera hacer referencia, por ejemplo `CommitId`. Para obtener más información, consulte [Determinación de qué variables predefinidas emite un flujo de trabajo](workflows-working-with-variables-determine-output-vars.md).

------
#### [ Visual ]

*No disponible. Seleccione YAML para ver las instrucciones de YAML.*

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

**Referencia a una variable predefinida (editor de YAML)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En una CodeCatalyst acción, añada la referencia de variable predefinida mediante la siguiente sintaxis:

   ```
   ${action-group-name.action-name-or-WorkflowSource.variable-name}
   ```

   Reemplace:
   + *action-group-name*con el nombre del grupo de acciones.
**nota**  
Puede omitir *action-group-name* si no hay ningún grupo de acciones o si la variable es producida por una acción del mismo grupo de acciones.
   + *action-name-or-WorkflowSource*con:

     El nombre de la acción que genere la variable.

     o

     `WorkflowSource`, si la variable es la variable `BranchName` o `CommitId`.
   + *variable-name*con el nombre de la variable.

   Por ejemplo:

   ```
   MySecondAction:
       Configuration:
         Steps:
           - Run: echo ${MyFirstECSAction.cluster}
   ```

   Otro ejemplo.

   ```
   MySecondAction:
       Configuration:
         Steps:
           - Run: echo ${WorkflowSource.CommitId}
   ```

   Para obtener más ejemplos, consulte [Ejemplos de referencia a variables predefinidas](workflows-predefined-examples.md). Para obtener más información, consulte la [Definición de flujo de trabajo en YAML](workflow-reference.md) para su acción.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Determinación de qué variables predefinidas emite un flujo de trabajo
<a name="workflows-working-with-variables-determine-output-vars"></a>

Utilice el siguiente procedimiento para determinar qué variables predefinidas emite un flujo de trabajo cuando se ejecuta. A continuación, puede hacer referencia a estas variables dentro del mismo flujo de trabajo. 

Para obtener más información acerca de las variables, consulte [Uso de variables predefinidas](workflows-using-predefined-variables.md).

**Determinación de las variables predefinidas que emite un flujo de trabajo**
+ Realice una de las siguientes acciones:
  + **Ejecute el flujo de trabajo una vez**. Una vez finalizada la ejecución, las variables emitidas por el flujo de trabajo se muestran en la pestaña **Variables** de la página de detalles de la ejecución. Para obtener más información, consulte [Visualización del estado y los detalles de la ejecución de un flujo de trabajo](workflows-view-run.md).
  + **Consulte la [Lista de variables predefinidas](workflow-ref-action-variables.md)**. Esta referencia muestra el nombre de la variable (clave) y el valor de cada variable predefinida.

**nota**  
El tamaño total máximo de las variables de un flujo de trabajo aparece en [Cuotas para flujos de trabajo en CodeCatalyst](workflows-quotas.md). Si el tamaño total supera el máximo, es posible que la acción que se produce una vez alcanzado el máximo genere un error.

# Lista de variables predefinidas
<a name="workflow-ref-action-variables"></a>

Consulte las siguientes secciones para ver las variables predefinidas generadas automáticamente por las acciones de CodeCatalyst como parte de la ejecución de un flujo de trabajo.

Para obtener más información acerca de las variables, consulte [Uso de variables predefinidas](workflows-using-predefined-variables.md).

**nota**  
Esta lista solo incluye las variables predefinidas emitidas por el origen de CodeCatalyst y las acciones de [CodeCatalyst](workflows-actions.md#workflows-actions-types). Si utiliza otros tipos de acciones, como las GitHub Actions o las acciones de CodeCatalyst Labs, consulte [Determinación de qué variables predefinidas emite un flujo de trabajo](workflows-working-with-variables-determine-output-vars.md).

**Enumeración**

**nota**  
No todas las acciones de CodeCatalyst generan variables predefinidas. Si la acción no está en la lista, no genera variables.
+ [variables BranchName '' y CommitId ''](workflows-sources-variables.md)
+ [Variables de «implementar CloudFormation pila»](deploy-action-cfn-variables.md)
+ [Variables de “Implementar en Amazon ECS”](deploy-action-ecs-variables.md)
+ [Variables de 'Implementar en clúster de Kubernetes'](deploy-action-eks-variables.md)
+ [Variables de 'Implementación de AWS CDK '](cdk-dep-action-variables.md)
+ [Variables de 'Arranque de AWS CDK '](cdk-boot-action-variables.md)
+ [Variables de invocar en AWS Lambda](lam-invoke-action-variables.md)
+ [Variables de Render Amazon ECS task definition](render-ecs-action-variables.md)

# Enmascaramiento de datos mediante secretos
<a name="workflows-secrets"></a>

En ocasiones, es posible que necesite utilizar datos confidenciales, como credenciales de autenticación, en sus flujos de trabajo. Debe evitarse el almacenamiento de estos valores en texto sin formato en cualquier parte del repositorio, ya que cualquier persona que tenga acceso al repositorio que contiene el secreto podría verlos. Del mismo modo, estos valores no deberían usarse directamente en ninguna definición de flujo de trabajo, ya que estarán visibles como archivos en el repositorio. Con CodeCatalyst él, puede proteger estos valores añadiendo un secreto a su proyecto y, a continuación, haciendo referencia al secreto en su archivo de definición de flujo de trabajo. Tenga en cuenta que se puede tener un máximo de cinco secretos por acción.

**nota**  
Los secretos solo se pueden usar para reemplazar las contraseñas y la información confidencial del archivo de definición del flujo de trabajo.

**Topics**
+ [

# Creación de un secreto
](workflows-secrets.creating.md)
+ [

# Edición de un secreto
](workflows-secrets.editing.md)
+ [

# Uso de un secreto
](workflows-secrets.using.md)
+ [

# Eliminación de un secreto
](workflows-secrets.deleting.md)

# Creación de un secreto
<a name="workflows-secrets.creating"></a>

Utilice el siguiente procedimiento para crear un secreto. El secreto contiene la información confidencial que quiere ocultar a la vista.

**nota**  
Los secretos son visibles para las acciones y no se ocultan cuando se escriben en un archivo.

**Creación de un secreto**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Secretos**.

1. Elija **Crear secreto**.

1. Introduzca la información siguiente:  
**Nombre**  
Escriba un nombre para su secreto.  
**Valor**  
Introduzca el valor para el secreto. Esta es la información confidencial que quiera ocultar de la vista. De forma predeterminada, el valor no se muestra. Para mostrar el valor, seleccione **Mostrar valor**.  
**Descripción**  
(Opcional) Escriba una descripción para el secreto.

1. Seleccione **Crear**.

# Edición de un secreto
<a name="workflows-secrets.editing"></a>

Utilice el siguiente procedimiento para editar un secreto.

**Edición de un secreto**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Secretos**.

1. En la lista de secretos, seleccione el secreto que quiera editar.

1. Elija **Edit (Edición de)**.

1. Edite las siguientes propiedades:  
**Valor**  
Introduzca el valor para el secreto. Este es el valor que quiera ocultar de la vista. De forma predeterminada, el valor no se muestra.  
**Descripción**  
(Opcional) Escriba una descripción para el secreto.

1. Seleccione **Save**.

# Uso de un secreto
<a name="workflows-secrets.using"></a>

Para usar un secreto en una acción de flujo de trabajo, debe obtener el identificador de referencia del secreto y usarlo en la acción del flujo de trabajo.

**Topics**
+ [

## Obtención del identificador de un secreto
](#workflows-using-secrets.get-identifier)
+ [

## Referencia a un secreto en un flujo de trabajo
](#workflows-using-secrets.using-identifier)

## Obtención del identificador de un secreto
<a name="workflows-using-secrets.get-identifier"></a>

Utilice el siguiente procedimiento para obtener el identificador de referencia del secreto. Añadirá este identificador a su flujo de trabajo.

**Obtención del identificador de referencia del secreto**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Secretos**.

1. En la lista de secretos, busque el secreto que quiera eliminar.

1. En la columna **ID de referencia**, copie el identificador del secreto. Esta es la sintaxis del **ID de referencia**:

   ```
   ${Secrets.<name>}
   ```

## Referencia a un secreto en un flujo de trabajo
<a name="workflows-using-secrets.using-identifier"></a>

Utilice el siguiente procedimiento para hacer referencia a un secreto en un flujo de trabajo.

**Referencia a un secreto**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. Modifique el YAML para usar el identificador del secreto. Por ejemplo, para utilizar un nombre de usuario y una contraseña que se almacenan como secretos con el comando `curl`, usaría un comando `Run` similar al siguiente:

   ```
   - Run: curl -u <username-secret-identifier>:<password-secret-identifier> https://example.com
   ```

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

# Eliminación de un secreto
<a name="workflows-secrets.deleting"></a>

Utilice el siguiente procedimiento para eliminar un secreto y el identificador de referencia del secreto.

**nota**  
Antes de eliminar un secreto, se recomienda eliminar el identificador de referencia del secreto de todas las acciones del flujo de trabajo. Si elimina el secreto sin eliminar el identificador de referencia, la acción fallará la próxima vez que se ejecute. 

**Eliminación del identificador de referencia de un secreto de un flujo de trabajo**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. Busque la siguiente cadena en el flujo de trabajo:

   ```
   ${Secrets.
   ```

   Esto busca todos los identificadores de referencia de todos los secretos.

1. Elimine el identificador de referencia del secreto elegido o sustitúyalo por un valor de texto no cifrado.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

**Eliminación de un secreto**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Secretos**.

1. En la lista de secretos, elija el secreto que quiera eliminar.

1. Elija **Eliminar**.

1. Escriba **delete** para confirmar la eliminación.

1. Elija **Eliminar**.

# Visualización del estado de un flujo de trabajo
<a name="workflows-view-status"></a>

Es posible que desees ver el estado de un flujo de trabajo para ver si hay algún problema de configuración del flujo de trabajo que debas solucionar o para solucionar problemas de ejecución que no se inician. CodeCatalystevalúa el estado del flujo de trabajo cada vez que crea o actualiza el archivo de [definición del flujo de trabajo subyacente del flujo](workflows-concepts.md#workflows-concepts-workflows-def) de trabajo. 

**nota**  
También puede ver el estado de *ejecución* del flujo de trabajo, que es diferente del estado del flujo de trabajo. Para obtener más información, consulte [Visualización del estado y los detalles de la ejecución de un flujo de trabajo](workflows-view-run.md).

Para ver una lista de posibles estados del flujo de trabajo, consulte [Estados del flujo de trabajo en CodeCatalyst](workflows-workflow-status.md).

**Visualización del estado de un flujo de trabajo**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

   El estado se muestra con el flujo de trabajo en la lista.

1. (Opcional) Elija el nombre del flujo de trabajo y busque el campo **Definición del flujo de trabajo**. Muestra el estado de flujo de trabajo.

# Cuotas para flujos de trabajo en CodeCatalyst
<a name="workflows-quotas"></a>

En la siguiente tabla se describen las cuotas y los límites de los flujos de trabajo en Amazon CodeCatalyst.

Para obtener más información sobre las cuotas en Amazon CodeCatalyst, consulta[Cuotas de CodeCatalyst](quotas.md).


|  |  | 
| --- |--- |
| Número máximo de flujos de trabajo por espacio |  800  | 
| Tamaño máximo del archivo de definición de los flujos de trabajo |  256 KB  | 
| Número máximo de archivos de flujo de trabajo procesados en un solo evento de origen |  50  | 
| Número máximo de archivos procesados en un solo evento de origen |  4.000  | 
| Número máximo de flotas activas por espacio |  10  | 
| Número máximo de instancias de computación activas por flota |  20  | 
| Número máximo de artefactos de entrada por acción |  10  | 
| Número máximo de artefactos de salida por acción |  10  | 
| Tamaño total máximo de las variables de salida de una sola acción |  120 KB  | 
| Longitud máxima del valor de una variable de salida  |  500 caracteres o más, según la acción que emita el valor.   Los valores se pueden truncar si superan el límite de la acción.   | 
| Número máximo de días en los que conservar los artefactos generados durante la ejecución de un flujo de trabajo |  30  | 
| Número máximo de informes por acción |  50  | 
| Número máximo de casos de prueba por informe de prueba |  20 000  | 
| Número máximo de archivos por informe de cobertura de código |  20 000  | 
| Número máximo de resultados de análisis de composición de software por informe |  20 000  | 
| Número máximo de archivos por informe de análisis estático |  20 000  | 
| Número máximo de ejecuciones de flujos de trabajo simultáneas por espacio |  100  | 
| Número máximo de acciones por flujo de trabajo |  50  | 
| Número máximo de acciones que se ejecutan simultáneamente por flujo de trabajo |  50  | 
| Número máximo de acciones que se ejecutan simultáneamente por espacio |  200  | 
| Cantidad máxima de tiempo que puede ejecutarse una acción |  Para las acciones de compilación y prueba, el tiempo de espera es de 8 horas. Para todas las demás acciones, el tiempo de espera es de 1 hora.  | 
| Número máximo de entornos asociados a una Cuenta de AWS por espacio |  5 000  | 
| Número máximo de secretos por acción |  5  | 
| Número máximo de secretos por espacio |  500.000  | 

# Estados de ejecución de un flujo de trabajo
<a name="workflows-view-run-status"></a>

Una ejecución de flujo de trabajo puede tener uno de los siguientes estados:
+ **Correcto**: la ejecución del flujo de trabajo se ha procesado correctamente.
+ **Error**: se produjo un error en la ejecución de una o más acciones del flujo de trabajo.
+ **En curso**: la ejecución del flujo de trabajo se está procesando actualmente.
+ **Detenido**: una persona ha detenido la ejecución del flujo de trabajo mientras estaba en curso.
+ **Deteniendo**: la ejecución del flujo de trabajo se está deteniendo en este momento.
+ **Cancelado**: la ejecución del flujo de trabajo se canceló CodeCatalyst porque el flujo de trabajo asociado se eliminó o actualizó mientras la ejecución estaba en curso.
+ **Reemplazado**: solo se da si ha configurado el [modo de ejecución reemplazado](workflows-configure-runs.md#workflows-configure-runs-superseded). La ejecución del flujo de trabajo se canceló CodeCatalyst porque una ejecución posterior la sustituyó.

# Estados del flujo de trabajo en CodeCatalyst
<a name="workflows-workflow-status"></a>

Un flujo de trabajo puede tener uno de los siguientes estados:
+ **Válido**: el flujo de trabajo se puede ejecutar y se puede activar mediante [desencadenadores](workflows-add-trigger.md#workflows-add-trigger.title).

  Para que un flujo de trabajo se marque como válido, deben ser ciertas las dos condiciones siguientes:
  + El archivo de definición del flujo de trabajo debe ser válido.
  + El flujo de trabajo no puede tener desencadenadores, ni desencadenadores de inserción, ni un desencadenador de inserción que se ejecute utilizando los archivos de la ramificación actual. Para obtener más información, consulte [Directrices de uso para activadores y ramificaciones](workflows-add-trigger-considerations.md).
+ **No válido**: el archivo de definición del flujo de trabajo no es válido. El flujo de trabajo no se puede ejecutar de forma manual ni automática mediante desencadenadores. Los flujos de trabajo que no son válidos aparecen con un mensaje de **definición de flujo de trabajo con *n* errores** (o similar) en la CodeCatalyst consola.

  Para que un flujo de trabajo se marque como no válido, debe ser cierta la siguiente condición:
  + El archivo de definición del flujo de trabajo debe estar mal configurado.

    Para corregir un archivo de definición de flujo de trabajo mal configurado, consulte [¿Cómo puedo corregir los errores de «La definición del flujo de trabajo tiene *n* errores»?](troubleshooting-workflows.md#troubleshooting-workflows-asterisks).
+ **Inactivo**: la definición del flujo de trabajo es válida, pero no se puede ejecutar de forma manual ni automática mediante desencadenadores.

  Para que un flujo de trabajo se marque como inactivo, deben ser ciertas las dos condiciones siguientes:
  + El archivo de definición del flujo de trabajo debe ser válido.
  + El archivo de definición del flujo de trabajo debe incluir un desencadenador automático que especifique una ramificación diferente de aquella en la que se encuentre actualmente el archivo de definición del flujo de trabajo. Para obtener más información, consulte [Directrices de uso para activadores y ramificaciones](workflows-add-trigger-considerations.md).

    Para cambiar un flujo de trabajo de **Inactivo** a **Activo**, consulte [¿Cómo corrijo los mensajes que indican que el flujo de trabajo está inactivo?](troubleshooting-workflows.md#troubleshooting-workflows-inactive).
**nota**  
Si hay muchos flujos de trabajo en estado **Inactivo**, puede filtrarlos para que no estén visibles. Para filtrar los flujos de trabajo inactivos, seleccione el campo **Filtrar flujos de trabajo** en la parte superior de la página **Flujos de trabajo**, seleccione **Estado** y seleccione **Estado \$1= No es igual a** y elija **INACTIVO**.

**nota**  
Si el flujo de trabajo especifica un recurso que eliminas más adelante (por ejemplo, un repositorio de paquetes), CodeCatalyst no detectará este cambio y seguirá marcando el flujo de trabajo como válido. Estos tipos de problemas se detectarán cuando se ejecute el flujo de trabajo.

# Definición de flujo de trabajo en YAML
<a name="workflow-reference"></a>

Esta es la documentación de referencia para el archivo de definición de flujo de trabajo.

Un *archivo de definición de flujo de trabajo* es un archivo YAML que describe su flujo de trabajo. De forma predeterminada, el archivo se almacena en una carpeta `~/.codecatalyst/workflows/` en el directorio raíz del [repositorio de código fuente](source-repositories.md). El archivo puede tener la extensión .yml o .yaml, y la extensión debe estar en minúsculas.

Para crear y editar el archivo de definición del flujo de trabajo, puedes usar un editor como vim, o puedes usar el editor visual o el editor CodeCatalyst YAML de la consola. Para obtener más información, consulte [Uso de los CodeCatalyst editores visuales y YAML de la consola](workflow.md#workflow.editors).

**nota**  
La mayoría de las propiedades de YAML que se muestran a continuación tienen elementos de interfaz de usuario correspondientes en el editor visual. Para buscar un elemento de la interfaz de usuario, use **Ctrl\$1F**. El elemento aparecerá en la lista con su propiedad de YAML asociada.

**Topics**
+ [

## Ejemplo de un archivo de definición de flujo de trabajo
](#workflow.anatomy)
+ [

## Pautas y convenciones de sintaxis
](#workflow.terms.syntax.conv)
+ [

## Propiedades de nivel superior
](#workflow.top.level)

## Ejemplo de un archivo de definición de flujo de trabajo
<a name="workflow.anatomy"></a>

A continuación, se muestra un ejemplo de archivo de definición de flujo de trabajo simple. Incluye algunas propiedades de nivel superior, una sección `Triggers` y una sección `Actions` con dos acciones: `Build` y `Test`. Para obtener más información, consulte [Acerca del archivo de definición del flujo de trabajo](workflow.md#workflow.example).

```
Name: MyWorkflow
SchemaVersion: 1.0
RunMode: QUEUED
Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  Build:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:     
      Steps:
        - Run: docker build -t MyApp:latest .
  Test:
    Identifier: aws/managed-test@v1
    DependsOn: 
      - Build
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Steps:
        - Run: npm install
        - Run: npm run test
```

## Pautas y convenciones de sintaxis
<a name="workflow.terms.syntax.conv"></a>

En esta sección se describen las reglas de sintaxis del archivo de definición del flujo de trabajo, así como las convenciones de nomenclatura que se utilizan en esta documentación de referencia.

### Directrices de sintaxis de YAML
<a name="workflow.syntax.conv"></a>

El archivo de definición de flujo de trabajo está escrito en YAML y sigue la [especificación YAML 1.1](https://yaml.org/spec/), por lo que todo lo que esté permitido según esa especificación también lo estará en el YAML del flujo de trabajo. Si es principiante en el uso de YAML, aquí tiene algunas pautas rápidas para asegurarse de estar generando un código de YAML válido.
+ **Distingue entre mayúsculas y minúsculas**: el archivo de definición de flujo de trabajo distingue entre mayúsculas y minúsculas, así que asegúrese de utilizar las expresiones según constan en esta documentación.
+ **Caracteres especiales**: le recomendamos que utilice comillas simples o dobles en torno a los valores de las propiedades que incluyan alguno de estos caracteres especiales: `{`, `}` , `[` , `]` , &, `*` , `#` , `?` , `|` , `-` , < , >, `=` , `!` , `%` , `@` , `:` , ``` y `,`. 

  Si no incluye las comillas, es posible que los caracteres especiales enumerados se interpreten de forma inesperada.
+ **Nombres de propiedades**: los *nombres* de las propiedades (a diferencia de los * valores* de las propiedades) están limitados a caracteres alfanuméricos (a-z, A-Z, 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas ni comillas dobles para habilitar los caracteres especiales y los espacios en los nombres de las propiedades.

  No permitido:

  `'My#Build@action'`

  `My#Build@action`

  `My Build Action`

  Permitido:

  `My-Build-Action_1`
+ **Códigos de escape**: si el valor de su propiedad incluye códigos de escape (por ejemplo, `\n` o `\t`), siga estas pautas:
  + Use comillas simples para devolver el código de escape en forma de cadena. Por ejemplo, `'my string \n my string'` devuelve la cadena `my string \n my string`.
  + Use comillas dobles para analizar el código de escape. Por ejemplo, `"my string \n my new line"` devuelve:

    ```
    my string
    my new line
    ```
+ **Comentarios**: especifique `#` delante de los comentarios. 

  Ejemplo:

  ```
  Name: MyWorkflow
  # This is a comment.
  SchemaVersion: 1.0
  ```
+ **Triple guión (`---`)**: no lo utilices `---` en tu código YAML. CodeCatalyst ignora todo lo que sigue a. `---`

### Convenciones de nomenclatura
<a name="workflow.terms"></a>

En esta guía, utilizamos los términos *propiedad* y *sección* para referirnos a los elementos principales de un archivo de definición de flujo de trabajo.
+ Una *propiedad* es cualquier elemento que incluya dos puntos (`:`). Por ejemplo, en el siguiente fragmento de código, todos estos elementos son propiedades: `Name`, `SchemaVersion`, `RunMode`, `Triggers`, `Type` y `Branches`.
+ Una *sección* es cualquier propiedad que tenga subpropiedades. En el siguiente fragmento de código, hay una sección `Triggers`.
**nota**  
En esta guía, las secciones a veces se denominan propiedades y viceversa, según el contexto.

  ```
  Name: MyWorkflow
  SchemaVersion: 1.0
  RunMode: QUEUED
  Triggers:
    - Type: PUSH
      Branches:
        - main
  ```

## Propiedades de nivel superior
<a name="workflow.top.level"></a>

Esta es la documentación de referencia para las propiedades de nivel superior en el archivo de definición de flujo de trabajo.

```
# Name
Name: workflow-name
        
# Schema version
SchemaVersion: 1.0
        
# Run mode
RunMode: QUEUED|SUPERSEDED|PARALLEL

# Compute
Compute:  
...
            
# Triggers
Triggers:
...

# Actions
Actions:
...
```

### Name
<a name="workflow.name"></a>

(Obligatorio) 

Nombre del flujo de trabajo. El nombre del flujo de trabajo se muestra en la lista de flujos de trabajo y se menciona en las notificaciones y los registros. Puede que el nombre del flujo de trabajo y el nombre del archivo de definición de flujo de trabajo coincidan, o también puede asignarles nombres diferentes. Los nombres de los flujos de trabajo no tienen por qué ser únicos. Los nombres de los flujos de trabajo están limitados a caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) y guiones bajos (\$1). No se permiten espacios. No puede utilizar comillas para permitir caracteres especiales ni espacios en los nombres de los flujos de trabajo.

**Interfaz de usuario correspondiente: editor/Workflow propiedades visuales/nombre del flujo de trabajo**

### SchemaVersion
<a name="workflow.schemaversion"></a>

(Obligatorio) 

La versión esquemática de la definición del flujo de trabajo. El único valor válido actualmente es `1.0`.

Interfaz de usuario correspondiente: *ninguna*

### RunMode
<a name="workflow.runmode"></a>

(Opcional)

Cómo CodeCatalyst gestiona las ejecuciones múltiples. Puede utilizar uno de los siguientes valores:
+ `QUEUED`: las ejecuciones múltiples se ponen en cola y se ejecutan una tras otra. Se pueden tener hasta 50 ejecuciones en una cola.
+ `SUPERSEDED`: las ejecuciones múltiples se ponen en cola y se ejecutan una tras otra. Una cola solo puede tener una ejecución, por lo que si dos ejecuciones terminan juntas en la misma cola, la última se superpone (reemplaza) a la anterior y esta se cancela.
+ `PARALLEL`: se producen varias ejecuciones simultáneamente.

Si esta propiedad se omite, el valor predeterminado es `QUEUED`.

Para obtener más información, consulte [Configuración del comportamiento de puesta en cola de las ejecuciones](workflows-configure-runs.md).

**Interfaz de usuario correspondiente: editor/Workflow propiedades visuales/Avanzado/Modo de ejecución**

### Compute
<a name="compute-reference"></a>

(Opcional)

El motor de computación utilizado para ejecutar las acciones del flujo de trabajo. Puede especificar el motor de computación en el nivel del flujo de trabajo o en el nivel de acción, pero no en ambos. Cuando se especifica en el nivel de flujo de trabajo, la configuración del motor de computación se aplica a todas las acciones definidas en el flujo de trabajo. En el nivel de flujo de trabajo, también puede ejecutar varias acciones en la misma instancia. Para obtener más información, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md).

Para obtener más información acerca de la computación, consulte [Configuración de imágenes de computación y tiempo de ejecución](workflows-working-compute.md).

Interfaz de usuario correspondiente: *ninguna*

```
Name: MyWorkflow
SchemaVersion: 1.0
...
Compute:  
  Type: EC2 | Lambda
  Fleet: fleet-name
  SharedInstance: true | false
```

#### Type
<a name="workflow.compute.type"></a>

(Compute/**Type**)

(Obligatorio si `Compute` está configurado)

El tipo de motor de computación. Puede utilizar uno de los siguientes valores:
+ **EC2** (editor visual) o `EC2` (editor de YAML)

  Optimizado para ofrecer flexibilidad durante las ejecuciones de acciones.
+ **Lambda** (editor visual) o `Lambda` (editor de YAML)

  Velocidades de inicio de acciones optimizadas.

Para obtener más información sobre los tipos de computación, consulte [Tipos de computación](workflows-working-compute.md#compute.types).

**Interfaz de usuario correspondiente: editor/Workflow propiedades visuales/avanzada/tipo de cálculo**

#### Fleet
<a name="workflow.compute.fleet"></a>

(Compute/**Fleet**)

(Opcional)

Especifique la máquina o la flota que ejecutará el flujo de trabajo o las acciones del flujo de trabajo. Con las flotas bajo demanda, cuando se inicia una acción, el flujo de trabajo aprovisiona los recursos que necesita y las máquinas se destruyen cuando finaliza la acción. Ejemplos de flotas bajo demanda: `Linux.x86-64.Large`, `Linux.x86-64.XLarge`. Para obtener más información sobre las flotas bajo demanda, consulte [Propiedades de las flotas bajo demanda](workflows-working-compute.md#compute.on-demand).

Con las flotas aprovisionadas, configura un conjunto de máquinas dedicadas para ejecutar las acciones del flujo de trabajo. Estas máquinas permanecen inactivas, listas para procesar acciones de forma inmediata. Para obtener más información sobre las flotas aprovisionadas, consulte [Propiedades de flotas aprovisionadas](workflows-working-compute.md#compute.provisioned-fleets).

Si `Fleet` se omite, el valor predeterminado es `Linux.x86-64.Large`.

Para obtener más información acerca de las flotas de computación, consulte [Flotas de computación](workflows-working-compute.md#compute.fleets).

**Interfaz de usuario correspondiente: propiedades visuales/Avanzada/Flota de cómputo editor/Workflow **

#### SharedInstance
<a name="workflow.compute.sharedinstance"></a>

(Compute/**SharedInstance**)

(Opcional)

Especifique la capacidad de uso compartido de la computación para sus acciones. Con el uso compartido de la computación, las acciones de un flujo de trabajo se ejecutan en la misma instancia (imagen del entorno del tiempo de ejecución). Puede utilizar uno de los siguientes valores:
+ `TRUE` significa que la imagen del entorno del tiempo de ejecución se comparte entre las acciones del flujo de trabajo.
+ `FALSE` significa que se inicia una imagen del entorno del tiempo de ejecución independiente y se utiliza para cada acción de un flujo de trabajo, por lo que no se pueden compartir recursos como artefactos y variables sin una configuración adicional.

Para obtener más información acerca del uso compartido de la computación, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md).

Interfaz de usuario correspondiente: *ninguna*

### Triggers
<a name="triggers-reference"></a>

(Opcional)

Secuencia de uno o más desencadenadores de este flujo de trabajo. Si no se especifica ningún desencadenador, debe iniciar el flujo de trabajo manualmente.

Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).

**Interfaz de usuario correspondiente: editor/workflow diagrama visual/activadores**

```
Name: MyWorkflow
SchemaVersion: 1.0
...
Triggers:
  - Type: PUSH
    Branches:
      - branch-name
    FilesChanged:
      - folder1/file
      - folder2/
 
  - Type: PULLREQUEST
    Events:
      - OPEN
      - CLOSED
      - REVISION
    Branches:
      - branch-name
    FilesChanged:
      - file1.txt
      
  - Type: SCHEDULE
    # Run the workflow at 10:15 am (UTC+0) every Saturday
    Expression: "15 10 ? * 7 *"
    Branches:
      - branch-name
```

#### Type
<a name="workflow.triggers.type"></a>

(Triggers/**Type**)

(Obligatorio si `Triggers` está configurado)

Especifique el tipo de desencadenador. Puede utilizar uno de los siguientes valores:
+ **Insertar** (editor visual) o `PUSH` (editor de YAML)

  Un desencadenador de inserción inicia la ejecución de un flujo de trabajo cuando se envía un cambio al repositorio de código fuente. La ejecución del flujo de trabajo utilizará los archivos de la ramificación *a* la que realiza la inserción (es decir, la ramificación de destino).
+ **Solicitud de extracción** (editor visual) o `PULLREQUEST` (editor de YAML)

  Un desencadenador de este tipo inicia la ejecución de un flujo de trabajo cuando se abre, actualiza o cierra una solicitud de extracción en el repositorio de código fuente. La ejecución del flujo de trabajo utilizará los archivos de la ramificación *desde* la que realiza la extracción (es decir, la ramificación de origen).
+ **Programación** (editor visual) o `SCHEDULE` (editor de YAML)

  Un desencadenador de tipo programación inicia las ejecuciones del flujo de trabajo según una programación definida por una expresión cron que especifique. Se iniciará una ejecución de flujo de trabajo independiente para cada ramificación del repositorio de código fuente utilizando los archivos de la ramificación. (Para limitar las ramificaciones en las que se activa el desencadenador, use el campo **Ramificaciones** (editor visual) o la propiedad `Branches` (editor de YAML)).

  Cuando configure un desencadenador de programación, siga estas directrices:
  + Utilice solo un desencadenador de programación por flujo de trabajo.
  + Si ha definido varios flujos de trabajo en su CodeCatalyst espacio, le recomendamos que no programe más de 10 de ellos para que se inicien simultáneamente.
  + Asegúrese de configurar la expresión cron del desencadenador con el tiempo adecuado entre ejecuciones. Para obtener más información, consulte [Expression](#workflow.triggers.expression).

Para ver ejemplos, consulte [Ejemplos: Desencadenadores en flujos de trabajo](workflows-add-trigger-examples.md).

**Interfaz de usuario correspondiente: editor/workflow diagrama visual/activadores/tipo de activador**

#### Events
<a name="workflow.triggers.events"></a>

(Triggers/**Events**)

(Obligatorio si el `Type` de desencadenador está configurado como `PULLREQUEST`)

Especifica el tipo de eventos de solicitud de extracción que iniciarán la ejecución de un flujo de trabajo. Los siguientes valores son los válidos:
+ **Se crea una solicitud de extracción** (editor visual) o `OPEN` (editor de YAML)

  La ejecución del flujo de trabajo se inicia cuando se crea una solicitud de extracción.
+ **La solicitud de extracción está cerrada** (editor visual) o `CLOSED` (editor de YAML)

  La ejecución del flujo de trabajo se inicia cuando se cierra una solicitud de extracción. El comportamiento del evento `CLOSED` es complejo y se entiende mejor con un ejemplo. Para obtener más información, consulte [Ejemplo: Desencadenador con una extracción, ramificaciones y un evento CLOSED](workflows-add-trigger-examples.md#workflows-add-trigger-examples-push-pull-close).
+ **Se realiza una nueva revisión para la solicitud de extracción** (editor visual) o `REVISION` (editor de YAML)

  La ejecución del flujo de trabajo se inicia cuando se crea una revisión de una solicitud de extracción. La primera revisión se crea cuando se crea la solicitud de extracción. Después se crea una nueva revisión cada vez que alguien envía una nueva confirmación a la ramificación de origen especificada en la solicitud de extracción. Si incluye el evento `REVISION` en el desencadenador de la solicitud de extracción, puede omitir el evento `OPEN`, ya que `REVISION` es un superconjunto de `OPEN`.

Puede especificar varios eventos en el mismo desencadenador de la solicitud de extracción.

Para ver ejemplos, consulte [Ejemplos: Desencadenadores en flujos de trabajo](workflows-add-trigger-examples.md).

**Interfaz de usuario correspondiente: diagrama editor/workflow visual/activadores/eventos para la solicitud de extracción**

#### Branches
<a name="workflow.triggers.branches"></a>

(Triggers/**Branches**)

(Opcional)

Especifica las ramificaciones del repositorio de código fuente que supervisa el desencadenador para saber cuándo iniciar la ejecución de un flujo de trabajo. Puede usar patrones de expresiones regulares para definir los nombres de las ramificaciones. Por ejemplo, use `main.*` para hacer coincidir todas las ramificaciones que comiencen por `main`.

Las ramificaciones que se deben especificar son diferentes en función del tipo de desencadenador:
+ En el caso de un desencadenador de inserción, especifique las ramificaciones *en* las que va a realizar la inserción, es decir, las ramificaciones de *destino*. Se iniciará una ejecución de flujo de trabajo por cada ramificación coincidente, utilizando los archivos de la ramificación coincidente.

  Ejemplos: `main.*`, `mainline`
+ En el caso de un desencadenador de solicitud de extracción, especifique las ramificaciones *en* las que va a realizar la inserción, es decir, las ramificaciones de *destino*. Se iniciará una ejecución de flujo de trabajo por cada ramificación coincidente, utilizando el archivo de definición del flujo de trabajo y los archivos de origen de la ramificación de **origen** (*no* de la ramificación coincidente).

  Ejemplos: `main.*`, `mainline`, `v1\-.*` (busca coincidencias con las ramificaciones que comiencen por `v1-`)
+ Para un desencadenador de programación, especifique las ramificaciones que contengan los archivos que quiera que utilice la ejecución programada. Se iniciará una ejecución de flujo de trabajo por cada ramificación coincidente, utilizando el archivo de definición del flujo de trabajo y los archivos de origen en la ramificación coincidente.

  Ejemplos: `main.*`, `version\-1\.0`

**nota**  
Si *no* especifica ninguna ramificación, el activador supervisa todas las ramificaciones del repositorio de código fuente e iniciará una ejecución de flujo de trabajo con el archivo de definición del flujo de trabajo y los archivos de código fuente en:  
La ramificación *en* la que realiza la inserción (para desencadenadores de inserción). Para obtener más información, consulte [Ejemplo: Desencadenador de inserción de código sencillo](workflows-add-trigger-examples.md#workflows-add-trigger-examples-push-simple).
La ramificación *desde* la que realiza la extracción (para desencadenadores de solicitudes de extracción). Para obtener más información, consulte [Ejemplo: Desencadenador de solicitud de extracción sencillo](workflows-add-trigger-examples.md#workflows-add-trigger-examples-pull-simple).
Todas las ramificaciones (para desencadenadores de programación). Se iniciará una ejecución de flujo de trabajo por cada ramificación del repositorio de código fuente. Para obtener más información, consulte [Ejemplo: Desencadenador de programación sencillo](workflows-add-trigger-examples.md#workflows-add-trigger-examples-schedule-simple).

Para obtener más información acerca de las ramificaciones y los desencadenadores, consulte [Directrices de uso para activadores y ramificaciones](workflows-add-trigger-considerations.md).

Para obtener más ejemplos, consulte [Ejemplos: Desencadenadores en flujos de trabajo](workflows-add-trigger-examples.md).

**Interfaz de usuario correspondiente: visual/Branches editor/workflow diagram/Triggers**

#### FilesChanged
<a name="workflow.triggers.files-changed"></a>

(Triggers/**FilesChanged**)

(Opcional si el desencadenador `Type` está configurado como `PUSH` o `PULLREQUEST`. No se admite si el desencadenador `Type` está configurado como `SCHEDULE`).

Especifica los archivos o carpetas del repositorio de código fuente que supervisa el desencadenador para saber cuándo iniciar la ejecución de un flujo de trabajo. Puede utilizar expresiones regulares para hacer coincidir los nombres o las rutas de los archivos.

Para ver ejemplos, consulte [Ejemplos: Desencadenadores en flujos de trabajo](workflows-add-trigger-examples.md).

**Interfaz de usuario correspondiente: editor/workflow diagrama visual/activadores/archivos modificados**

#### Expression
<a name="workflow.triggers.expression"></a>

(Triggers/**Expression**)

(Obligatorio si el `Type` de desencadenador está configurado como `SCHEDULE`)

Especifique la expresión cron que describe cuándo desea que se ejecuten sus flujos de trabajo programados.

Las expresiones cron CodeCatalyst utilizan la siguiente sintaxis de seis campos, en la que cada campo está separado por un espacio:

*minutes* *hours* *days-of-month* *month* *days-of-week* *year*

**Ejemplos de expresiones cron**


| Minutos | Horas | Días del mes | Mes | Días de la semana | Año | Significado | 
| --- | --- | --- | --- | --- | --- | --- | 
|  0  |  0  |  ?  |  \$1  |  MON-FRI  |  \$1  |  Ejecuta un flujo de trabajo a medianoche (UTC\$10) cada día de lunes a viernes.  | 
|  0  |  2  |  \$1  |  \$1  |  ?  |  \$1  |  Ejecuta un flujo de trabajo a las 2:00 h (UTC\$10) todos los días.  | 
|  15  |  22  |  \$1  |  \$1  |  ?  |  \$1  |  Ejecuta un flujo de trabajo a las 22:15 h (UTC\$10) todos los días.  | 
|  0/30  |  22-2  |  ?  |  \$1  |  SAT-SUN  |  \$1  |  Ejecuta un flujo de trabajo cada 30 minutos de sábado a domingo, entre las 22:00 h del día de inicio y las 2:00 h del día siguiente (UTC\$10).  | 
|  45  |  13  |  L  |  \$1  |  ?  |  2023-2027  |  Ejecuta un flujo de trabajo a las 13:45 (UTC\$10) del último día del mes entre los años 2023 y 2027, ambos inclusive.  | 

Al especificar las expresiones cron CodeCatalyst, asegúrese de seguir estas pautas:
+ Especifique una sola expresión cron por desencadenador `SCHEDULE`.
+ Escriba la expresión cron entre comillas dobles (`"`) en el editor de YAML.
+ Especifique la hora en tiempo universal coordinado (UTC). El resto de zonas horarias no son compatibles.
+ Configure al menos 30 minutos entre ejecuciones. Una cadencia más rápida no es compatible.
+ Especifique el *days-of-week* campo *days-of-month* o, pero no ambos. Si especifica un valor o un asterisco (`*`) en uno de los campos, debe utilizar un signo de interrogación (`?`) en el otro. El asterisco significa todos y el signo de interrogación significa cualquiera.

 Para obtener más ejemplos de expresiones cron e información sobre caracteres comodín`?`, como, y `*``L`, consulte la [referencia sobre expresiones cron en](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html) la Guía del usuario de *Amazon EventBridge *. Las expresiones cron CodeCatalyst funcionan exactamente de EventBridge la misma manera.

Para ver ejemplos de desencadenadores de programación, consulte [Ejemplos: Desencadenadores en flujos de trabajo](workflows-add-trigger-examples.md).

**Interfaz de usuario correspondiente: editor/workflow diagram/Triggers visual/horario**

### Acciones
<a name="actions-reference"></a>

Secuencia de una o más acciones para este flujo de trabajo. CodeCatalyst admite varios tipos de acciones, como las de creación y prueba, que ofrecen distintos tipos de funciones. Cada tipo de acción tiene:
+ Una propiedad `Identifier` que indica el ID único y codificado de la acción. Por ejemplo, `aws/build@v1` identifica la acción de creación.
+ Una sección `Configuration` que contiene propiedades específicas de la acción.

Para obtener más información sobre cada tipo de acción, consulte [Tipos de acción](workflows-actions.md#workflows-actions-types). El tema [Tipos de acción](workflows-actions.md#workflows-actions-types) tiene enlaces a la documentación de cada acción.

A continuación consta la referencia de YAML para las acciones y los grupos de acciones del archivo de definición del flujo de trabajo.

```
Name: MyWorkflow
SchemaVersion: 1.0
...
Actions:
  action-or-gate-name:
    Identifier: identifier
    Configuration:
    ...
  #Action groups
  action-group-name:
    Actions:
      ...
```

#### action-or-gate-name
<a name="workflow.actions.name"></a>

(Actions/*action-or-gate-name*)

(Obligatorio) 

*action-name*Sustitúyalo por el nombre que desee asignar a la acción. Los nombres de las acciones deben ser únicos en el flujo de trabajo y solo deben contener caracteres alfanuméricos, guiones y guiones bajos. Para obtener más información acerca de las reglas de sintaxis, consulte [Directrices de sintaxis de YAML](#workflow.syntax.conv).

Para obtener más información sobre las prácticas de nomenclatura de las acciones, incluidas las restricciones, consulte la [action-or-gate-name](#workflow.actions.name). 

**Interfaz de usuario correspondiente: editor visual/ pestaña de *action-name* configuración/ Nombre de la acción o **Nombre de la acción para mostrar****

#### action-group-name
<a name="workflow.action-groups"></a>

(Actions/*action-group-name*)

(Opcional)

Un *grupo de acciones* contiene una o más acciones. Agrupar las acciones en grupos de acciones le ayuda a mantener el flujo de trabajo organizado y también le permite configurar las dependencias entre los distintos grupos.

*action-group-name*Sustitúyalo por el nombre que desee asignar al grupo de acciones. Los nombres de los grupos de acciones deben ser únicos en el flujo de trabajo y solo deben contener caracteres alfanuméricos, guiones y guiones bajos. Para obtener más información acerca de las reglas de sintaxis, consulte [Directrices de sintaxis de YAML](#workflow.syntax.conv).

Para obtener más información sobre los grupos de acciones, consulte [Agrupación de acciones en grupos de acciones](workflows-group-actions.md).

Interfaz de usuario correspondiente: *ninguna*