

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á.

# Crie um gatilho para um CodeDeploy evento
<a name="monitoring-sns-event-notifications-create-trigger"></a>

É possível criar um gatilho que publica um tópico do Amazon Simple Notification Service (Amazon SNS) para um evento de implantação ou instância do AWS CodeDeploy . Dessa forma, quando esse evento ocorrer, todos os assinantes do tópico associado receberão notificações através do endpoint especificado no tópico, como uma mensagem SMS ou uma mensagem de e-mail. O Amazon SNS oferece vários métodos para assinar tópicos.

Antes de criar um gatilho, é necessário configurar o tópico do Amazon SNS para o gatilho apontar. Para obter informações, consulte [Criar um tópico](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html). Ao criar um tópico, é recomendável dar a ele um nome que identifique sua finalidade, em formatos como `Topic-group-us-west-3-deploy-fail` ou `Topic-group-project-2-instance-stop`. 

Você também deve conceder permissões ao Amazon SNS para uma função de CodeDeploy serviço antes que as notificações possam ser enviadas para seu gatilho. Para mais informações, consulte [Conceda permissões do Amazon SNS para uma função de serviço CodeDeploy](monitoring-sns-event-notifications-permisssions.md).

Depois de criar o tópico, você poderá adicionar assinantes. Para obter informações sobre como criar, gerenciar e assinar tópicos, consulte [O que é o Amazon Simple Notification Service](https://docs.aws.amazon.com/sns/latest/dg/welcome.html).



## Crie um gatilho para enviar notificações de CodeDeploy eventos (console)
<a name="monitoring-sns-event-notifications-create-trigger-console"></a>

Você pode usar o CodeDeploy console para criar acionadores para um CodeDeploy evento. No final do processo de configuração, uma mensagem de notificação de teste é enviada para garantir que as permissões e os detalhes do gatilho estejam configurados corretamente.

**Para criar um gatilho para um CodeDeploy evento**

1. No Console de gerenciamento da AWS, abra o AWS CodeDeploy console.

1. Faça login no Console de gerenciamento da AWS e abra o CodeDeploy console em [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**nota**  
Faça login com o mesmo usuário que você configurou em [Começando com CodeDeploy](getting-started-codedeploy.md).

1. No painel de navegação, expanda a opção **Implantar** e escolha **Aplicativos**.

1. Na página **Applications (Aplicativos)**, escolha o nome do aplicativo associado ao grupo de implantação no qual você deseja adicionar um gatilho.

1. Na página **Application details (Detalhes do aplicativo)**, escolha o grupo de implantação no qual você deseja adicionar um gatilho.

1.  Escolha **Editar**. 

1.  Expanda **Avançado - opcional**. 

1.  Na área **Triggers (Gatilhos)**, selecione **Create trigger (Criar gatilho)**. 

1. No painel **Create deployment trigger (Criar gatilho de implantação)**, faça o seguinte:

   1. Em **Trigger name (Nome de acionador)**, insira um nome para o acionador que facilite a identificação de sua finalidade. Recomendamos formatos como `Trigger-group-us-west-3-deploy-fail` ou `Trigger-group-eu-central-instance-stop`.

   1. Em **Eventos**, escolha um ou mais tipos de eventos que acionarão o envio de notificações do tópico do Amazon SNS. 

   1. Em **Tópicos do Amazon SNS**, escolha o nome do tópico que você criou para enviar notificações para esse gatilho.

   1.  Escolha **Criar gatilho**. CodeDeploy envia uma notificação de teste para confirmar que você configurou corretamente o acesso entre CodeDeploy e o tópico do Amazon SNS. Dependendo do tipo de endpoint selecionado para o tópico, e se você tiver assinado o tópico, será enviada uma confirmação em uma mensagem SMS ou de e-mail. 

1.  Escolha **Salvar alterações**. 

## Crie um gatilho para enviar notificações de CodeDeploy eventos (CLI)
<a name="monitoring-sns-event-notifications-create-trigger-cli"></a>

Você pode usar a CLI para incluir gatilhos ao criar um grupo de implantação ou pode adicionar gatilhos a um grupo de implantação existente.

### Para criar um gatilho para enviar notificações referentes um novo grupo de implantação
<a name="monitoring-sns-event-notifications-create-trigger-cli-new"></a>

Crie um arquivo JSON para configurar o grupo de implantação e, em seguida, execute o [create-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html)comando usando a `--cli-input-json` opção. 

A maneira mais simples de criar o arquivo JSON é usar a opção `--generate-cli-skeleton` para obter uma cópia do formato JSON e, em seguida, fornecer os valores necessários em um editor de texto simples.

1. Execute o seguinte comando e depois copie os resultados em um editor de texto simples.

   ```
   aws deploy create-deployment-group --generate-cli-skeleton
   ```

1. Adicione o nome de um CodeDeploy aplicativo existente à saída:

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentGroupName": "",
       "deploymentConfigName": "",
       "ec2TagFilters": [
           {
               "Key": "",
               "Value": "",
               "Type": ""
           }
       ],
       "onPremisesInstanceTagFilters": [
           {
               "Key": "",
               "Value": "",
               "Type": ""
           }
       ],
       "autoScalingGroups": [
           ""
       ],
       "serviceRoleArn": "",
       "triggerConfigurations": [
           {
               "triggerName": "",
               "triggerTargetArn": "",
               "triggerEvents": [
                   ""
               ]
           }
       ]
   }
   ```

1. Forneça valores para os parâmetros que você deseja configurar.

   Ao usar o [create-deployment-group](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentGroup.html)comando, você deve fornecer, no mínimo, valores para os seguintes parâmetros:
   + `applicationName`: o nome de um aplicativo já criado na sua conta. 
   + `deploymentGroupName`: um nome para o grupo de implantação que você está criando.
   + `serviceRoleArn`: o ARN de uma função de serviço existente configurada CodeDeploy em sua conta. Para mais informações, consulte [Etapa 2: criar uma função de serviço para CodeDeploy](getting-started-create-service-role.md).

   Na seção `triggerConfigurations`, forneça valores para os seguintes parâmetros: 
   + `triggerName`: o nome que você deseja dar ao gatilho, para poder identificá-lo facilmente. Recomendamos formatos como `Trigger-group-us-west-3-deploy-fail` ou `Trigger-group-eu-central-instance-stop`.
   + `triggerTargetArn`: o ARN do tópico do Amazon SNS que você criou para associar ao seu gatilho, neste formato: `arn:aws:sns:us-east-2:444455556666:NewTestTopic`.
   + `triggerEvents`: o tipo de eventos para os quais você deseja disparar notificações. É possível especificar um ou mais tipos de eventos, separando vários dos seus nomes com vírgulas (por exemplo, `"triggerEvents":["DeploymentSuccess","DeploymentFailure","InstanceFailure"]`). Quando mais de um tipo de evento é adicionado, as notificações para todos esses tipos são enviadas ao tópico que você especificou, em vez de a um tópico diferente para cada um. É possível escolher entre os seguintes tipos de eventos:
     + DeploymentStart
     + DeploymentSuccess
     + DeploymentFailure
     + DeploymentStop
     + DeploymentRollback
     + DeploymentReady (Aplica-se somente às instâncias de substituição em uma blue/green implantação)
     + InstanceStart
     + InstanceSuccess
     + InstanceFailure
     + InstanceReady (Aplica-se somente às instâncias de substituição em uma blue/green implantação)

   O exemplo de configuração a seguir cria um grupo de implantação chamado `dep-group-ghi-789-2` para um aplicativo chamado `TestApp-us-east-2` e um gatilho que solicitará o envio de notificações sempre que uma implantação for iniciada, for bem-sucedida ou falhar:

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentConfigName": "CodeDeployDefault.OneAtATime",
       "deploymentGroupName": "dep-group-ghi-789-2",
       "ec2TagFilters": [
           {
               "Key": "Name",
               "Value": "Project-ABC",
               "Type": "KEY_AND_VALUE"
           }
       ],
       "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",
       "triggerConfigurations": [
           {
               "triggerName": "Trigger-group-us-east-2",
               "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments",
               "triggerEvents": [
                   "DeploymentStart",
                   "DeploymentSuccess",
                   "DeploymentFailure"
               ]
           }
       ]
   }
   ```

1. Salve suas atualizações como um arquivo JSON e, em seguida, chame esse arquivo usando a opção `--cli-input-json` ao executar o comando **create-deployment-group**:
**Importante**  
Não se esqueça de incluir `file://` antes do nome de arquivo. Ele é obrigatório nesse comando.

   ```
   aws deploy create-deployment-group --cli-input-json file://filename.json
   ```

   No final do processo de criação, você receberá uma mensagem de notificação de teste indicando que tanto as permissões quanto os detalhes do gatilho estão configurados corretamente.

### Para criar um gatilho para enviar notificações referentes um grupo de implantação existente
<a name="monitoring-sns-event-notifications-create-trigger-cli-existing"></a>

Para usar o AWS CLI para adicionar gatilhos para CodeDeploy eventos a um grupo de implantação existente, crie um arquivo JSON para atualizar o grupo de implantação e, em seguida, execute o [update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html)comando usando a opção. `--cli-input-json` 

A maneira mais simples de criar o arquivo JSON é executar o comando **get-deployment-group** para obter uma cópia da configuração do grupo de implantação, no formato JSON, e depois atualizar os valores dos parâmetros em um editor de texto simples.

1.  Execute o seguinte comando e depois copie os resultados em um editor de texto simples.

   ```
   aws deploy get-deployment-group --application-name application --deployment-group-name deployment-group
   ```

1. Exclua o seguinte da saída:
   + No início da saída, exclua `{ "deploymentGroupInfo":`.
   + No final da saída, exclua `}`. 
   + Exclua a linha que contém `deploymentGroupId`.
   + Exclua a linha que contém `deploymentGroupName`.

   O conteúdo do seu arquivo de texto agora deve ser semelhante ao seguinte:

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentConfigName": "CodeDeployDefault.OneAtATime",
       "autoScalingGroups": [],
       "ec2TagFilters": [
           {
               "Type": "KEY_AND_VALUE",
               "Value": "Project-ABC",
               "Key": "Name"
           }
       ],
       "triggerConfigurations": [],
       "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",
       "onPremisesInstanceTagFilters": []
   }
   ```

1. Na seção `triggerConfigurations`, adicione dados para os parâmetros `triggerEvents`, `triggerTargetArn` e `triggerName`. Para obter informações sobre os parâmetros de configuração do acionador, consulte [TriggerConfig](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_TriggerConfig.html).

   O conteúdo do seu arquivo de texto agora deve ser semelhante ao seguinte. Esse código solicitará que as notificações sejam enviadas sempre que uma implantação for iniciada, for bem-sucedida ou falhar. 

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentConfigName": "CodeDeployDefault.OneAtATime",
       "autoScalingGroups": [],
       "ec2TagFilters": [
           {
               "Type": "KEY_AND_VALUE",
               "Value": "Project-ABC",
               "Key": "Name"
           }
       ],
       "triggerConfigurations": [
           {
               "triggerEvents": [
                   "DeploymentStart",
                   "DeploymentSuccess",
                   "DeploymentFailure"
               ],
               "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments",
               "triggerName": "Trigger-group-us-east-2"
           }
       ],
       "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",
       "onPremisesInstanceTagFilters": []
   }
   ```

1. Salve suas atualizações como um arquivo JSON e execute o [update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html)comando usando a `--cli-input-json` opção. Certifique-se de incluir a `--current-deployment-group-name` opção e substituir o nome do seu arquivo JSON por*filename*: 
**Importante**  
Não se esqueça de incluir `file://` antes do nome de arquivo. Ele é obrigatório nesse comando.

   ```
   aws deploy update-deployment-group --current-deployment-group-name deployment-group-name --cli-input-json file://filename.json
   ```

   No final do processo de criação, você receberá uma mensagem de notificação de teste indicando que tanto as permissões quanto os detalhes do gatilho estão configurados corretamente.