Exemplo: criar um AWS CodeCommit gatilho para um SNS tópico da Amazon - AWS CodeCommit

AWS CodeCommit não está mais disponível para novos clientes. Os clientes atuais do AWS CodeCommit podem continuar usando o serviço normalmente. Saiba mais

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

Exemplo: criar um AWS CodeCommit gatilho para um SNS tópico da Amazon

Você pode criar um gatilho para um CodeCommit repositório para que os eventos nesse repositório acionem notificações de um tópico do Amazon Simple Notification Service SNS (Amazon). Talvez você queira criar um gatilho para um SNS tópico da Amazon para permitir que os usuários se inscrevam para receber notificações sobre eventos do repositório, como a exclusão de ramificações. Você também pode aproveitar a integração dos SNS tópicos da Amazon com outros serviços, como o Amazon Simple Queue Service (AmazonSQS) e. AWS Lambda

nota
  • Você deve apontar o gatilho para um SNS tópico existente da Amazon que seja a ação tomada em resposta aos eventos do repositório. Para obter mais informações sobre como criar e assinar SNS tópicos da Amazon, consulte Introdução ao Amazon Simple Notification Service.

  • Os tópicos da Amazon SNS FIFO (primeiro a entrar, primeiro a sair) não são compatíveis com CodeCommit gatilhos.

Crie um gatilho para um SNS tópico da Amazon para um CodeCommit repositório (console)

  1. Abra o CodeCommit console em https://console.aws.amazon.com/codesuite/codecommit/home.

  2. Em Repositories (Repositórios), escolha o repositório onde deseja criar gatilhos de eventos de repositório.

  3. No painel de navegação do repositórios, selecione Settings (Configurações) e gatilhos (Gatilhos).

  4. Selecione Create gatilho (Criar gatilho) e proceda da seguinte maneira:

    • Em Nome do acionador, insira um nome para o acionador (por exemplo, MyFirstTrigger).

    • Em Eventos, escolha os eventos do repositório que acionam o SNS tópico da Amazon para enviar notificações.

      Se você selecionar All repository events, não poderá escolher nenhum outro evento. Para selecionar um subconjunto de eventos, remova All repository events e selecione um ou mais eventos na lista. Por exemplo, se você quiser que o gatilho seja executado somente quando um usuário criar uma ramificação ou tag no CodeCommit repositório, remova Todos os eventos do repositório e escolha Criar ramificação ou tag.

    • Se você deseja que o gatilho seja aplicado a todas as ramificações do repositório, em Branches (Ramificações), deixe a seleção em branco, pois essa opção padrão aplica o gatilho a todas as ramificações automaticamente. Se você quiser que esse gatilho seja aplicado somente a ramificações específicas, escolha até 10 nomes de ramificação na lista de ramificações do repositório.

    • Em Escolha o serviço a ser usado, escolha Amazon SNS.

    • Na Amazon SNS, escolha um nome de tópico na lista ou insira o ARN para o tópico.

      nota

      Os tópicos da Amazon SNS FIFO (primeiro a entrar, primeiro a sair) não são compatíveis com CodeCommit gatilhos. Você deve escolher um SNS tópico da Amazon que tenha seu tipo definido como Padrão.

    • Em Dados personalizados, forneça qualquer informação opcional que você queira incluir na notificação enviada pelo SNS tópico da Amazon (por exemplo, um nome de IRC canal que os desenvolvedores usam ao discutir o desenvolvimento neste repositório). Este campo é uma string. Ele não pode ser usado para passar nenhum parâmetro dinâmico.

  5. (Opcional) Selecione Test gatilho (Testar gatilho). Essa etapa ajuda você a confirmar se configurou corretamente o acesso entre CodeCommit e o SNS tópico da Amazon. Ele usa o SNS tópico da Amazon para enviar uma notificação de teste usando dados do seu repositório, se disponíveis. Se nenhum dado real estiver disponível, a notificação de teste conterá dados de exemplo.

  6. Selecione Create gatilho (Criar gatilho) para concluir a criação do gatilho.

Crie um gatilho para um SNS tópico da Amazon para um CodeCommit repositório ()AWS CLI

Você também pode usar a linha de comando para criar um gatilho para um SNS tópico da Amazon em resposta a eventos CodeCommit do repositório, como quando alguém envia um commit para o seu repositório.

Para criar um gatilho para um SNS tópico da Amazon
  1. Abra um editor de texto sem formatação e crie um JSON arquivo que especifique:

    • O nome do SNS tópico da Amazon.

      nota

      Os tópicos da Amazon SNS FIFO (primeiro a entrar, primeiro a sair) não são compatíveis com CodeCommit gatilhos. Você deve escolher um SNS tópico da Amazon que tenha seu tipo definido como Padrão.

    • O repositório e as ramificações que deseja monitorar com o gatilho. (Se você não especificar nenhuma ramificação, o gatilho se aplicará a todas as ramificações no repositório.)

    • Os eventos que ativam o gatilho.

    Salve o arquivo.

    Por exemplo, para criar um gatilho para um repositório chamado MyDemoRepo que publica todos os eventos do repositório em um tópico da Amazon chamado SNS MySNSTopic para duas filiais, main e preprod:

    { "repositoryName": "MyDemoRepo", "triggers": [ { "name": "MyFirstTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "customData": "", "branches": [ "main", "preprod" ], "events": [ "all" ] } ] }

    Deve haver um bloco de gatilho no JSON para cada gatilho de um repositório. Para criar mais de um gatilho para o repositório, inclua mais de um bloco de gatilho noJSON. Lembre-se de que todos os gatilhos criados no arquivo são para o repositório especificado. Você não pode criar acionadores para vários repositórios em um único arquivo. JSON Por exemplo, se você quiser criar dois gatilhos para um repositório, você pode criar um JSON arquivo com dois blocos acionadores. No exemplo a seguir, não há ramificação especificada para o segundo gatilho, então ele se aplica a todas as ramificações:

    { "repositoryName": "MyDemoRepo", "triggers": [ { "name": "MyFirstTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "customData": "", "branches": [ "main", "preprod" ], "events": [ "all" ] }, { "name": "MySecondTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic2", "customData": "", "branches": [], "events": [ "updateReference", "deleteReference" ] } ] }

    É possível criar gatilhos para eventos que você especifica, como quando uma confirmação é enviada por push para um repositório. Os tipos de eventos incluem:

    • all para todos os eventos no repositório e nas ramificações especificados.

    • updateReference para quando confirmações são enviadas por push para o repositório e a ramificações especificados.

    • createReference para quando uma nova ramificação ou tag é criada no repositório especificado.

    • deleteReference para quando uma nova ramificação ou tag é excluída no repositório especificado.

    nota

    É possível usar mais de um tipo de evento em um gatilho. Contudo, se você especificar all, não poderá especificar outros eventos.

    Para ver a lista completa dos tipos de eventos válidos em um terminal ou prompt de comando, insira aws codecommit put-repository-triggers help.

    Além disso, você pode incluir uma string customData (por exemplo, um nome de IRC canal que os desenvolvedores usam ao discutir o desenvolvimento neste repositório). Este campo é uma string. Ele não pode ser usado para passar nenhum parâmetro dinâmico. Essa string é anexada como um atributo ao CodeCommit JSON retornado em resposta ao gatilho.

  2. (Opcional) No terminal ou no aviso de comando, execute o comando test-repository-triggers. Esse teste usa dados de amostra do repositório (ou gera dados de amostra se nenhum dado estiver disponível) para enviar uma notificação aos assinantes do SNS tópico da Amazon. Por exemplo, o seguinte é usado para testar se o JSON no arquivo acionador chamado trigger.json é válido e CodeCommit pode ser publicado no SNS tópico da Amazon:

    aws codecommit test-repository-triggers --cli-input-json file://trigger.json

    Se houver êxito, o comando retornará informações semelhantes às seguintes:

    { "successfulExecutions": [ "MyFirstTrigger" ], "failedExecutions": [] }
  3. Em um terminal ou prompt de comando, execute o put-repository-triggers comando para criar o gatilho em CodeCommit. Por exemplo, para usar um JSON arquivo chamado trigger.json para criar o gatilho:

    aws codecommit put-repository-triggers --cli-input-json file://trigger.json

    Esse comando retorna um ID de configuração semelhante ao seguinte:

    { "configurationId": "0123456-I-AM-AN-EXAMPLE" }
  4. Para visualizar a configuração do gatilho, execute o comando get-repository-triggers, especificando o nome do repositório:

    aws codecommit get-repository-triggers --repository-name MyDemoRepo

    Esse comando retorna a estrutura de todos os gatilhos configurados para o repositório semelhante à seguinte::

    { "configurationId": "0123456-I-AM-AN-EXAMPLE", "triggers": [ { "events": [ "all" ], "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "branches": [ "main", "preprod" ], "name": "MyFirstTrigger", "customData": "Project ID 12345" } ] }
  5. Para testar a funcionalidade do próprio gatilho, crie e envie uma confirmação por push para o repositório onde você o configurou. Você deve ver uma resposta do SNS tópico da Amazon. Por exemplo, se você configurou o SNS tópico da Amazon para enviar um e-mail, deverá ver um e-mail da Amazon SNS na conta de e-mail inscrita no tópico.

    Veja a seguir um exemplo de saída de um e-mail enviado pela Amazon SNS em resposta a um envio para um CodeCommit repositório:

    { "Records":[ { "awsRegion":"us-east-2", "codecommit":{ "references" : [ { "commit":"317f8570EXAMPLE", "created":true, "ref":"refs/heads/NewBranch" }, { "commit":"4c925148EXAMPLE", "ref":"refs/heads/preprod", } ] }, "eventId":"11111-EXAMPLE-ID", "eventName":"ReferenceChange", "eventPartNumber":1, "eventSource":"aws:codecommit", "eventSourceARN":"arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo", "eventTime":"2016-02-09T00:08:11.743+0000", "eventTotalParts":1, "eventTriggerConfigId":"0123456-I-AM-AN-EXAMPLE", "eventTriggerName":"MyFirstTrigger", "eventVersion":"1.0", "customData":"Project ID 12345", "userIdentityARN":"arn:aws:iam::111122223333:user/JaneDoe-CodeCommit", } ] }