Esempio: creare un AWS CodeCommit trigger per un argomento di Amazon SNS - AWS CodeCommit

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempio: creare un AWS CodeCommit trigger per un argomento di Amazon SNS

Puoi creare un trigger per un CodeCommit repository in modo che gli eventi in quel repository attivino le notifiche da un argomento di Amazon Simple Notification Service (Amazon SNS). Potresti voler creare un trigger per un argomento di Amazon SNS per consentire agli utenti di iscriversi alle notifiche sugli eventi del repository, come l'eliminazione delle filiali. Puoi anche sfruttare l'integrazione degli argomenti di Amazon SNS con altri servizi, come Amazon Simple Queue Service (Amazon SQS) e. AWS Lambda

Nota
  • Devi indirizzare il trigger su un argomento esistente di Amazon SNS che è l'azione intrapresa in risposta agli eventi del repository. Per ulteriori informazioni sulla creazione e la sottoscrizione agli argomenti di Amazon SNS, consulta la pagina Guida introduttiva ad Amazon Simple Notification Service.

  • Gli argomenti FIFO (first in, first out) di Amazon SNS non sono supportati per i trigger. CodeCommit

Crea un trigger per un argomento Amazon SNS per un CodeCommit repository (console)

  1. Apri la CodeCommit console all'indirizzo https://console.aws.amazon.com/codesuite/codecommit/home.

  2. In Repository, selezionare il repository in cui si desidera creare i trigger per gli eventi del repository.

  3. Nel riquadro di navigazione per il repository, scegliere Settings (Impostazioni), quindi Triggers (Trigger).

  4. Selezionare Create trigger (Crea trigger) e procedere come descritto di seguito:

    • In Nome trigger, inserisci un nome per il trigger (ad esempio, MyFirstTrigger).

    • In Eventi, scegli gli eventi del repository che attivano l'argomento Amazon SNS per l'invio di notifiche.

      Se si sceglie All repository events (Tutti gli eventi del repository), non è possibile scegliere altri eventi. Per scegliere un sottoinsieme di eventi, deselezionare All repository events (Tutti gli eventi del repository), quindi scegliere uno o più eventi nell'elenco. Ad esempio, se desideri che il trigger venga eseguito solo quando un utente crea un ramo o un tag nel CodeCommit repository, rimuovi Tutti gli eventi del repository, quindi scegli Crea ramo o tag.

    • Se si desidera che il trigger sia valido per tutti i rami del repository in Branches (Rami), lasciare la selezione vuota, poiché questa opzione di default applica il trigger automaticamente a tutti i rami. Se si desidera che questo trigger sia valido solo per rami specifici, scegliere fino a 10 nomi di rami dall'elenco dei rami del repository.

    • In Scegli il servizio da usare, scegli Amazon SNS.

    • In Amazon SNS, scegli il nome di un argomento dall'elenco o inserisci l'ARN per l'argomento.

      Nota

      Gli argomenti FIFO (first in, first out) di Amazon SNS non sono supportati per i trigger. CodeCommit Devi scegliere un argomento di Amazon SNS il cui tipo sia impostato su Standard. Se desideri utilizzare un argomento FIFO di Amazon SNS, devi configurare una regola di Amazon Eventbridge per CodeCommit gli eventi con l'argomento FIFO SNS configurato come destinazione.

    • In Dati personalizzati, fornisci tutte le informazioni facoltative che desideri includere nella notifica inviata dall'argomento Amazon SNS (ad esempio, il nome di un canale IRC utilizzato dagli sviluppatori quando discutono dello sviluppo in questo repository). Questo campo è una stringa e non può essere utilizzato per passare parametri dinamici.

  5. (Facoltativo) Scegliere Test trigger (Esegui test trigger). Questo passaggio ti aiuta a confermare che l'accesso è stato configurato correttamente tra CodeCommit e l'argomento Amazon SNS. Utilizza l'argomento Amazon SNS per inviare una notifica di test utilizzando i dati del tuo repository, se disponibili. Se non sono disponibili dati reali, la notifica di prova contiene dati di esempio.

  6. Scegliere Create trigger (Crea trigger) per completare la creazione del trigger.

Crea un trigger per un argomento Amazon SNS per un CodeCommit repository ()AWS CLI

Puoi anche utilizzare la riga di comando per creare un trigger per un argomento di Amazon SNS in risposta a eventi del CodeCommit repository, ad esempio quando qualcuno invia un commit al tuo repository.

Per creare un trigger per un argomento di Amazon SNS
  1. Aprire un editor di testo semplice e creare un file JSON che specifichi:

    • Il nome dell'argomento Amazon SNS.

      Nota

      Gli argomenti FIFO (first in, first out) di Amazon SNS non sono supportati per i trigger. CodeCommit Devi scegliere un argomento di Amazon SNS il cui tipo sia impostato su Standard. Se desideri utilizzare un argomento FIFO di Amazon SNS, devi configurare una regola di Amazon Eventbridge per CodeCommit gli eventi con l'argomento FIFO SNS configurato come destinazione.

    • Il repository e i rami che si desidera monitorare con questo trigger. Se non si specifica alcun ramo, il trigger viene applicato a tutti i rami nel repository.

    • Gli eventi che attivano il trigger.

    Salvare il file.

    Ad esempio, per creare un trigger per un repository denominato MyDemoRepoche pubblica tutti gli eventi del repository su un argomento di Amazon SNS denominato mySNSTOPIC per due rami, main e preprod:

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

    È necessario specificare un blocco di trigger nel file JSON per ogni trigger di un repository. Per creare più trigger per il repository, includere più blocchi di trigger nel file JSON. Tenere presente che tutti i trigger creati in questo file si riferiscono al repository specificato. Non è possibile creare trigger per più repository in un singolo file JSON. Se, ad esempio, si desidera definire due trigger per un repository, è possibile creare un file JSON con due blocchi di trigger. Nell'esempio che segue non sono specificati rami per il secondo trigger, pertanto il trigger viene applicato a tutti i rami:

    { "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" ] } ] }

    È possibile creare trigger per eventi specifici, ad esempio quando viene eseguito il push di un commit in un repository. I tipi di eventi includono:

    • all per tutti gli eventi nel repository e nei rami specificati.

    • updateReference quando il push dei commit viene eseguito nel repository e nei rami specificati.

    • createReference quando viene creato un nuovo ramo o tag nel repository specificato.

    • deleteReference quando viene eliminato un nuovo ramo o tag nel repository specificato.

    Nota

    È possibile utilizzare più tipi di evento in un trigger. Se, tuttavia, si inserisce all non è possibile specificare altri eventi.

    Per visualizzare l'elenco completo dei tipi di evento validi, dal terminale o dal prompt dei comandi, immettere aws codecommit put-repository-triggers help.

    Inoltre, è possibile includere una stringa in customData, ad esempio il nome di un canale IRC utilizzato dagli sviluppatori quando discutono di sviluppo in questo repository. Questo campo è una stringa e non può essere utilizzato per passare parametri dinamici. Questa stringa viene aggiunta come attributo al codice JSON restituito in risposta al trigger. CodeCommit

  2. (Facoltativo) Da un terminale o dal prompt dei comandi, eseguire il comando test-repository-triggers. Questo test utilizza dati di esempio dal repository (o genera dati di esempio se non sono disponibili dati) per inviare una notifica agli abbonati dell'argomento Amazon SNS. Ad esempio, quanto segue viene utilizzato per verificare che il codice JSON nel file trigger denominato trigger.json sia valido e che CodeCommit possa essere pubblicato sull'argomento Amazon SNS:

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

    Se il comando viene eseguito correttamente, restituisce informazioni simili alle seguenti:

    { "successfulExecutions": [ "MyFirstTrigger" ], "failedExecutions": [] }
  3. In un terminale o nel prompt dei comandi, esegui il comando per creare il trigger input-repository-triggers. CodeCommit Per utilizzare, ad esempio, un file JSON denominato trigger.json per creare il trigger:

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

    Questo comando restituisce un ID di configurazione simile al seguente:

    { "configurationId": "0123456-I-AM-AN-EXAMPLE" }
  4. Per visualizzare la configurazione del trigger, eseguire il comando get-repository-triggers specificando il nome del repository:

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

    Questo comando restituisce la struttura di tutti i trigger configurati per il repository, producendo un output simile al seguente:

    { "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. Per verificare la funzionalità del trigger, creare ed effettuare il push di un commit nel repository in cui è stato configurato il trigger. Dovresti vedere una risposta dall'argomento Amazon SNS. Ad esempio, se hai configurato l'argomento Amazon SNS per inviare un'e-mail, dovresti vedere un'e-mail di Amazon SNS nell'account e-mail sottoscritto all'argomento.

    Di seguito è riportato un esempio di output di un'e-mail inviata da Amazon SNS in risposta a un push a un CodeCommit repository:

    { "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", } ] }