Crie um gatilho para um CodeDeploy evento - AWS CodeDeploy

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

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

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.

Crie um gatilho para enviar notificações de CodeDeploy eventos (console)

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 AWS Management Console, abra o AWS CodeDeploy console.

  2. Faça login no AWS Management Console e abra o CodeDeploy console em https://console.aws.amazon.com/codedeploy.

    nota

    Faça login com o mesmo usuário que você configurou em Começando com CodeDeploy.

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

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

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

  6. Selecione a opção Editar.

  7. Expanda Avançado - opcional.

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

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

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

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

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

  10. Escolha Salvar alterações.

Crie um gatilho para enviar notificações de CodeDeploy eventos (CLI)

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

Crie um arquivo JSON para configurar o grupo de implantação e execute o create-deployment-groupcomando 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
  2. 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": [ "" ] } ] }
  3. Forneça valores para os parâmetros que você deseja configurar.

    Ao usar o create-deployment-groupcomando, 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.

    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 a instâncias de substituição em uma implantação azul/verde)

      • InstanceStart

      • InstanceSuccess

      • InstanceFailure

      • InstanceReady (Aplica-se somente a instâncias de substituição em uma implantação azul/verde)

    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" ] } ] }
  4. 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

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-groupcomando 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
  2. 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": [] }
  3. 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.

    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": [] }
  4. Salve suas atualizações como um arquivo JSON e execute o update-deployment-groupcomando usando a --cli-input-json opção. Certifique-se de incluir a opção --current-deployment-group-name e substitua o nome do seu arquivo JSON para nome do arquivo:

    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.