

A Amazon não CodeCatalyst está mais aberta a novos clientes. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Como migrar do CodeCatalyst](migration.md).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Solicitar aprovações em execuções de fluxo de trabalho
<a name="workflows-approval"></a>

É possível configurar a execução de um fluxo de trabalho para solicitar uma aprovação antes de continuar. Para fazer isso, adicione um [portão](workflows-gates.md) de **aprovação** ao fluxo de trabalho. Um *portão de aprovação* impede que um fluxo de trabalho continue até que um usuário ou conjunto de usuários envie uma ou mais aprovações no CodeCatalyst console. Depois que todas as aprovações são concedidas, o portão é “desbloqueado” e a execução do fluxo de trabalho pode ser retomada.

Use um portão de **aprovação** no fluxo de trabalho para fornecer às equipes de desenvolvimento, de operações e de liderança a chance de revisar suas alterações antes que elas sejam implantadas em um público mais amplo.

Para ter mais informações sobre execuções de fluxos de trabalho, consulte [Executar um fluxo de trabalho](workflows-working-runs.md).

**Topics**
+ [Como faço para desbloquear um portão de aprovação?](#workflows-approval-conditions)
+ [Quando usar o portão de “Aprovação”](#workflows-approval-when)
+ [Quem pode fornecer uma aprovação?](#workflows-approval-who)
+ [Como faço para notificar os usuários de que uma aprovação é necessária?](#workflows-approval-notify-methods)
+ [Posso usar um portão de “aprovação” para impedir o início da execução de um fluxo de trabalho?](#workflows-approval-prevent)
+ [Como as aprovações de fluxo de trabalho funcionam com os modos de execução em fila, substituída e paralela?](#workflows-approval-run-mode)
+ [Exemplo: um portão de “aprovação”](workflows-approval-example.md)
+ [Adição de um portão de “aprovação”](workflows-approval-add.md)
+ [Configuração de notificações de aprovação](workflows-approval-notify.md)
+ [Aprovação ou rejeição da execução de um fluxo de trabalho](workflows-approval-approve.md)
+ [Portão de “Aprovação” YAML](approval-ref.md)

## Como faço para desbloquear um portão de aprovação?
<a name="workflows-approval-conditions"></a>

Para desbloquear um portão de **aprovação**, *todas* as seguintes condições devem ser atendidas:
+ **Condição 1**: o número necessário de aprovações deve ser enviado. O número necessário de aprovações é configurável e cada usuário pode enviar uma única aprovação.
+ **Condição 2**: todas as aprovações devem ser enviadas antes que o portão expire. O portão expira 14 dias após ser ativado. Esse período não é configurável.
+ **Condição 3**: ninguém deve rejeitar a execução do fluxo de trabalho. Uma única rejeição fará com que a execução do fluxo de trabalho falhe.
+ **Condição 4**: (aplicada apenas se você estiver usando o modo de execução substituído.) A execução não deve ser substituída por uma execução posterior. Para obter mais informações, consulte [Como as aprovações de fluxo de trabalho funcionam com os modos de execução em fila, substituída e paralela?](#workflows-approval-run-mode).

Se alguma das condições não for atendida, CodeCatalyst interrompe o fluxo de trabalho e defina o status de execução como **Falha** (no caso das **Condições 1** a **3**) ou **Substituído** (no caso da **Condição 4**).

## Quando usar o portão de “Aprovação”
<a name="workflows-approval-when"></a>

Normalmente, você usaria um portão de **aprovação** em um fluxo de trabalho que implante aplicações e outros recursos em um servidor de produção ou em qualquer ambiente em que os padrões de qualidade devam ser validados. Ao colocar o portão antes da implantação para produção, você oferece aos revisores a chance de validar sua nova revisão de software antes que ela se torne disponível ao público. 

## Quem pode fornecer uma aprovação?
<a name="workflows-approval-who"></a>

Qualquer usuário que seja membro do seu projeto e que tenha o perfil **colaborador** ou **administrador do projeto** pode fornecer uma aprovação. Os usuários com o perfil **administrador do espaço** que pertencem ao espaço do projeto também podem fornecer uma aprovação.

**nota**  
Usuários com o perfil **revisor** não podem fornecer aprovações.

## Como faço para notificar os usuários de que uma aprovação é necessária?
<a name="workflows-approval-notify-methods"></a>

Para notificar os usuários de que uma aprovação é necessária, você deve:
+  CodeCatalyst Envie-lhes uma notificação do Slack. Para obter mais informações, consulte [Configuração de notificações de aprovação](workflows-approval-notify.md).
+ Acesse a página no CodeCatalyst console em que estão os botões **Aprovar** e **Rejeitar** e cole o URL dessa página em um aplicativo de e-mail ou mensagem endereçado aos aprovadores. Para ter mais informações sobre como acessar essa página, consulte [Aprovação ou rejeição da execução de um fluxo de trabalho](workflows-approval-approve.md).

## Posso usar um portão de “aprovação” para impedir o início da execução de um fluxo de trabalho?
<a name="workflows-approval-prevent"></a>

Sim, com qualificações. Para obter mais informações, consulte [Posso usar um portão para impedir o início da execução de um fluxo de trabalho?](workflows-gates.md#workflows-gates-prevent).

## Como as aprovações de fluxo de trabalho funcionam com os modos de execução em fila, substituída e paralela?
<a name="workflows-approval-run-mode"></a>

Ao usar o modo de execução em fila, substituída ou paralela, o portão de **aprovação** funciona de forma semelhante às [ações](workflows-actions.md). Sugerimos a leitura das seções [Sobre o modo de execução em fila](workflows-configure-runs.md#workflows-configure-runs-queued), [Sobre o modo de execução substituída](workflows-configure-runs.md#workflows-configure-runs-superseded) e [Sobre o modo de execução paralela](workflows-configure-runs.md#workflows-configure-runs-parallel) para conhecer esses modos de execução. Depois de ter uma compreensão básica deles, retorne a esta seção para descobrir como esses modos de execução funcionam quando o portão de **aprovação** está presente.

Quando o portão de **aprovação** está presente, as execuções são processadas da seguinte forma:
+ Se você estiver usando o [modo de execução em fila](workflows-configure-runs.md#workflows-configure-runs-queued), as execuções ficarão na fila atrás da execução que está aguardando aprovação no portão. Quando esse portão é desbloqueado (ou seja, todas as aprovações foram concedidas), a próxima execução na fila avança até o portão e aguarda as aprovações. Esse processo continua com as execuções em fila sendo processadas pelo portão. one-by-one [Figure 1](#figure-1-workflow-queued-run-mode-ma)ilustra esse processo.
+ Se você estiver usando o [modo de execução substituída](workflows-configure-runs.md#workflows-configure-runs-superseded), o comportamento será o mesmo que o modo de execução em fila, exceto que, em vez de as execuções se acumularem na fila do portão, as execuções mais recentes substituirão as anteriores. Não há filas, e qualquer execução que esteja aguardando aprovação no portão será cancelada e substituída por uma mais recente. [Figure 2](#figure-2-workflow-superseded-run-mode-ma) ilustra esse processo.
+ Se você estiver usando o [modo de execução paralela](workflows-configure-runs.md#workflows-configure-runs-parallel), as execuções começarão em paralelo e não formarão filas. Cada execução é processada pelo portão imediatamente, pois não há nenhuma execução à sua frente. [Figure 3](#figure-3-workflow-parallel-run-mode-ma) ilustra esse processo.

**Figura 1**: “Modo de execução em fila” e um portão de **aprovação**

![\[Como um portão de “aprovação” funciona com o “modo de execução em fila”\]](http://docs.aws.amazon.com/pt_br/codecatalyst/latest/userguide/images/flows/runmode-queued-ma.png)


**Figura 2**: “Modo de execução substituída” e um portão de **aprovação**

![\[Como um portão de “aprovação” funciona com o “modo de execução substituída”\]](http://docs.aws.amazon.com/pt_br/codecatalyst/latest/userguide/images/flows/runmode-superseded-ma.png)


**Figura 3**: “Modo de execução paralela” e um portão de **aprovação**

![\[Como um portão de “aprovação” funciona com o “modo de execução paralela”\]](http://docs.aws.amazon.com/pt_br/codecatalyst/latest/userguide/images/flows/runmode-parallel-ma.png)


# Exemplo: um portão de “aprovação”
<a name="workflows-approval-example"></a>

O exemplo a seguir mostra como adicionar um portão de **aprovação** chamado `Approval_01` entre duas ações chamadas `Staging` e `Production`. A ação `Staging` é executada primeiro, o portão `Approval_01` depois e a ação `Production` por último. A ação `Production` só será executada se o portão `Approval_01` estiver desbloqueado. A propriedade `DependsOn` garante que as fases `Staging`, `Approval_01` e `Production` sejam executadas em ordem sequencial.

Para ter mais informações sobre o portão de **aprovação**, consulte [Solicitar aprovações em execuções de fluxo de trabalho](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:
    ...
```

# Adição de um portão de “aprovação”
<a name="workflows-approval-add"></a>

Para configurar seu fluxo de trabalho para exigir uma aprovação, adicione o portão de **aprovação** ao fluxo de trabalho. Use as instruções a seguir para adicionar um portão de **aprovação** ao seu fluxo de trabalho.

Para ter mais informações sobre esse portão, consulte [Solicitar aprovações em execuções de fluxo de trabalho](workflows-approval.md).

------
#### [ Visual ]<a name="workflows-add-trigger-add-console"></a>

**Como adicionar um portão de “aprovação” a um fluxo de trabalho (editor visual)**

1. Abra o CodeCatalyst console em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Selecione o projeto.

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**.

1. Selecione o nome do fluxo de trabalho. É possível filtrar pelo nome do repositório ou da ramificação de origem em que o fluxo de trabalho está definido, ou filtrar pelo nome ou o status do fluxo de trabalho.

1. Escolha **Editar**.

1. No canto superior esquerdo, selecione **Portões**.

1. No catálogo **Portões**, em **Aprovação**, selecione o sinal de adição (**\$1**).

1. Selecione **Entradas** e, no campo **Depende de**, faça o seguinte.

   Especifique uma ação, um grupo de ação ou um portão que deve ser executado para que esse portão seja executado. Por padrão, quando você adiciona um portão a um fluxo de trabalho, o portão é configurado para depender da última ação no fluxo de trabalho. Se você remover essa propriedade, o portão não dependerá de nada e será executado primeiro, antes de outras ações.
**nota**  
Um portão deve ser configurado para ser executado antes ou depois de uma ação, um grupo de ação ou um portão. Ele não pode ser configurado para ser executado em paralelo com outras ações, grupos de ação e portões.

   Para ter mais informações sobre a funcionalidade **Depende de**, consulte [Sequenciar portões e ações](workflows-gates-depends-on.md).

1. Escolha a guia **Configuração**.

1. No campo **Nome do portão**, faça o seguinte.

   Especifique o nome que você deseja dar ao portão. Todos os nomes de portão devem ser exclusivos no fluxo de trabalho. Os nomes de portão são limitados a caracteres alfanuméricos (a-z, A-Z, 0-9), hifens (-) e sublinhados (\$1). Não são permitidos espaços. Não é possível usar aspas para habilitar caracteres especiais e espaços nos nomes de portão.

1. (Opcional) No campo **Número de aprovações**, faça o seguinte.

   Especifique o número mínimo de aprovações necessárias para desbloquear o portão de **aprovação**. O mínimo é `1`. O máximo é `2`. Se for omitido, o padrão será `1`.
**nota**  
Se você quiser omitir a propriedade `ApprovalsRequired`, remova a seção `Configuration` do portão do arquivo de definição do fluxo de trabalho.

1. (Opcional) Selecione **Validar** para validar o código YAML do fluxo de trabalho antes de confirmar.

1. Selecione **Confirmar**, insira uma mensagem de confirmação e escolha **Confirmar** novamente.

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

**Para adicionar um portão de “aprovação” a um fluxo de trabalho (editor YAML)**

1. Abra o CodeCatalyst console em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Selecione o projeto.

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**.

1. Selecione o nome do fluxo de trabalho. É possível filtrar pelo nome do repositório ou da ramificação de origem em que o fluxo de trabalho está definido, ou filtrar pelo nome ou o status do fluxo de trabalho.

1. Escolha **Editar**.

1. Selecione **YAML**.

1. Adicione uma seção de `Approval` e propriedades subjacentes usando o exemplo a seguir como guia. Para obter mais informações, consulte o [Portão de “Aprovação” YAML](approval-ref.md) no [Definição do YAML do fluxo de trabalho](workflow-reference.md).

   ```
   Actions:
     MyApproval_01:
       Identifier: aws/approval@v1
       DependsOn:
         - PreviousAction
       Configuration:
         ApprovalsRequired: 2
   ```

   Para obter outro exemplo, consulte [Exemplo: um portão de “aprovação”](workflows-approval-example.md).

1. (Opcional) Selecione **Validar** para validar o código YAML do fluxo de trabalho antes de confirmar.

1. Selecione **Confirmar**, insira uma mensagem de confirmação e escolha **Confirmar** novamente.

------

# Configuração de notificações de aprovação
<a name="workflows-approval-notify"></a>

Você pode fazer com que o CodeCatalyst envie uma notificação para um canal do Slack informando aos usuários que a execução de um fluxo de trabalho exige aprovação. Os usuários veem a notificação e clicam no link dentro dela. O link os leva a uma página de aprovações do CodeCatalyst, onde eles podem aprovar ou rejeitar o fluxo de trabalho.

Você também pode configurar notificações para informar aos usuários que um fluxo de trabalho foi aprovado, rejeitado ou que a solicitação de aprovação expirou.

Use as instruções a seguir para configurar notificações do Slack.

**Antes de começar**  
Certifique-se de ter adicionado um portão de **aprovação** ao seu fluxo de trabalho. Para obter mais informações, consulte [Adição de um portão de “aprovação”](workflows-approval-add.md).

**Para enviar notificações de aprovação do fluxo de trabalho para um canal do Slack**

1. Configure o CodeCatalyst com o Slack. Para obter mais informações, consulte [Conceitos básicos das notificações do Slack](getting-started-notifications.md).

1. No projeto CodeCatalyst que contém o fluxo de trabalho que requer aprovação, ative as notificações, se elas ainda não estiverem ativadas. Como ativar notificações:

   1. Navegue até seu projeto e, no painel de navegação, selecione **Configurações do projeto**.

   1. Na parte superior, selecione **Notificações**.

   1. Em **Eventos de notificação**, selecione **Editar notificações**.

   1. Ative a **Aprovação do fluxo de trabalho pendente** e selecione um canal do Slack para o qual o CodeCatalyst enviará a notificação. 

   1. (Opcional) Ative notificações adicionais para alertar as pessoas sobre aprovações aprovadas, rejeitadas e expiradas. Você pode ativar a **Execução do fluxo de trabalho aprovada**, **Execução fluxo de trabalho rejeitada**, **Aprovação do fluxo de trabalho substituída** e **Tempo limite da aprovação do fluxo de trabalho**. Ao lado de cada notificação, selecione o canal do Slack para o qual o CodeCatalyst enviará a notificação.

   1. Escolha **Salvar**.

# Aprovação ou rejeição da execução de um fluxo de trabalho
<a name="workflows-approval-approve"></a>

As execuções de fluxo de trabalho que incluam o portão de **aprovação** precisarão ser aprovadas ou rejeitadas. Os usuários podem fornecer sua aprovação ou rejeição em:
+ o CodeCatalyst console
+ link fornecido por um membro da equipe
+ notificação automática do Slack

Depois que um usuário fornece sua aprovação ou rejeição, essa decisão não pode ser desfeita.

**nota**  
Somente alguns usuários podem aprovar ou rejeitar a execução de um fluxo de trabalho. Para obter mais informações, consulte [Quem pode fornecer uma aprovação?](workflows-approval.md#workflows-approval-who).

**Antes de começar**  
Certifique-se de ter adicionado um portão de **aprovação** ao seu fluxo de trabalho. Para obter mais informações, consulte [Adição de um portão de “aprovação”](workflows-approval-add.md).

**Para aprovar ou rejeitar um fluxo de trabalho, execute a partir do console CodeCatalyst**

1. Abra o CodeCatalyst console em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Selecione o projeto.

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**.

1. Selecione o nome do fluxo de trabalho. É possível filtrar pelo nome do repositório ou da ramificação de origem em que o fluxo de trabalho está definido, ou filtrar pelo nome ou o status do fluxo de trabalho.

1. No diagrama do fluxo de trabalho, selecione a caixa que representa o portão de **aprovação**.

   Um painel lateral é exibido.
**nota**  
Neste ponto, você poderá enviar o URL desta página para outros aprovadores, se desejar.

1. Em **Revisar decisão**, selecione **Aprovar** ou **Rejeitar**.

1. (Opcional) Em **Comentário – opcional**, insira um comentário indicando por que você aprovou ou rejeitou a execução do fluxo de trabalho.

1. Selecione **Enviar**.

**Para aprovar ou rejeitar a execução de um fluxo de trabalho a partir de um link fornecido por um membro da equipe**

1. Selecione o link enviado a você pelo membro da sua equipe. (Você pode fazer com que seu membro da equipe leia o procedimento anterior para obter o link.)

1. Faça login em CodeCatalyst, se solicitado.

   Você será redirecionado para a página de aprovação de execução de fluxo de trabalho.

1. Em **Revisar decisão**, selecione **Aprovar** ou **Rejeitar**.

1. (Opcional) Em **Comentário – opcional**, insira um comentário indicando por que você aprovou ou rejeitou a execução do fluxo de trabalho.

1. Selecione **Enviar**.

**Para aprovar ou rejeitar a execução de um fluxo de trabalho a partir de uma notificação automática do Slack**

1. Certifique-se de que as notificações do Slack estejam configuradas. Consulte [Configuração de notificações de aprovação](workflows-approval-notify.md).

1. No Slack, no canal para o qual a notificação de aprovação foi enviada, selecione o link na notificação de aprovação.

1. Faça login em CodeCatalyst, se solicitado.

   Você será redirecionado para a página de execução de fluxo de trabalho.

1. No diagrama do fluxo de trabalho, selecione o portão de aprovação.

1. Em **Revisar decisão**, selecione **Aprovar** ou **Rejeitar**.

1. (Opcional) Em **Comentário – opcional**, insira um comentário indicando por que você aprovou ou rejeitou a execução do fluxo de trabalho.

1. Selecione **Enviar**.

# Portão de “Aprovação” YAML
<a name="approval-ref"></a>

Confira a seguir a definição YAML do portão de **Aprovação**. Para saber como usar esse portão, consulte [Solicitar aprovações em execuções de fluxo de trabalho](workflows-approval.md).

Essa definição de ação existe como uma seção dentro de um arquivo de definição de fluxo de trabalho mais amplo. Para obter mais informações sobre esse arquivo, consulte [Definição do YAML do fluxo de trabalho](workflow-reference.md).

**nota**  
A maioria das propriedades YAML a seguir tem elementos de interface de usuário correspondentes no editor visual. Para pesquisar um elemento de interface, use **Ctrl\$1F**. O elemento será listado com a propriedade YAML associada.

```
# The workflow definition starts here.
# See Propriedades de nível 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>

(Obrigatório)

Especifique o nome que você deseja dar ao portão. Todos os nomes de portão devem ser exclusivos no fluxo de trabalho. Os nomes de portão são limitados a caracteres alfanuméricos (a-z, A-Z, 0-9), hifens (-) e sublinhados (\$1). Não são permitidos espaços. Não é possível usar aspas para habilitar caracteres especiais e espaços nos nomes de portão.

Padrão: `Approval_nn`.

Interface de usuário correspondente: guia Configuração/**Nome do portão**

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

(*Approval*/**Identifier**)

(Obrigatório)

Identifica o portão. O portão de **Aprovação** comporta a versão `1.0.0`. Não altere essa propriedade, a menos que você queira encurtar a versão. Para obter mais informações, consulte [Especificação da versão da ação a ser usada](workflows-action-versions.md).

Padrão: `aws/approval@v1`.

Interface de usuário correspondente: rótulo do diagrama de fluxo de trabalho/Approval\$1nn/**aws/approval@v1**

## DependsOn
<a name="approval.dependson"></a>

(*Approval*/**DependsOn**)

(Optional)

Especifique uma ação, um grupo de ação ou um portão que deve ser executado para que esse portão seja executado. Por padrão, quando você adiciona um portão a um fluxo de trabalho, o portão é configurado para depender da última ação no fluxo de trabalho. Se você remover essa propriedade, o portão não dependerá de nada e será executado primeiro, antes de outras ações.

**nota**  
Um portão deve ser configurado para ser executado antes ou depois de uma ação, um grupo de ação ou um portão. Ele não pode ser configurado para ser executado em paralelo com outras ações, grupos de ação e portões.

Para ter mais informações sobre a funcionalidade **Depende de**, consulte [Sequenciar portões e ações](workflows-gates-depends-on.md).

Interface de usuário correspondente: guia Entradas/**Depende de**

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

(*Approval*/**Configuration**)

(Optional)

Uma seção na qual você pode definir as propriedades de configuração do portão.

Interface de usuário correspondente: guia **Configuração**

## ApprovalsRequired
<a name="approval.approvals.required"></a>

(*Approval*/Configuration/**ApprovalsRequired**)

(Optional)

Especifique o número mínimo de aprovações necessárias para desbloquear o portão de **Aprovação**. O mínimo é `1`. O máximo é `2`. Se for omitido, o padrão será `1`.

**nota**  
Se você quiser omitir a propriedade `ApprovalsRequired`, remova a seção `Configuration` do portão do arquivo de definição do fluxo de trabalho.

Interface de usuário correspondente: guia Configuração/**Número de aprovações**