

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.

# 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**