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

AWS CodeCommit non è più disponibile per i nuovi clienti. I clienti esistenti di AWS CodeCommit possono continuare a utilizzare il servizio normalmente. Scopri di più»

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 SNS argomento Amazon

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

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

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

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

  1. Apri la CodeCommit console su 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 Trigger name, inserisci un nome per il trigger (ad esempio, MyFirstTrigger).

    • In Eventi, scegli gli eventi del repository che attivano l'SNSargomento Amazon 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 il nome ARN per l'argomento.

      Nota

      Gli argomenti di Amazon SNS FIFO (first in, first out) non sono supportati per i CodeCommit trigger. Devi scegliere un SNS argomento Amazon il cui tipo sia impostato su Standard.

    • In Dati personalizzati, fornisci tutte le informazioni facoltative che desideri includere nella notifica inviata dall'SNSargomento Amazon (ad esempio, il nome del IRC canale 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 sia configurato correttamente tra CodeCommit e l'SNSargomento Amazon. Utilizza l'SNSargomento Amazon 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 SNS argomento Amazon per un CodeCommit repository ()AWS CLI

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

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

    • Il nome dell'SNSargomento Amazon.

      Nota

      Gli argomenti di Amazon SNS FIFO (first in, first out) non sono supportati per i CodeCommit trigger. Devi scegliere un SNS argomento Amazon il cui tipo sia impostato su Standard.

    • 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 MyDemoRepo che pubblica tutti gli eventi del repository su un argomento Amazon denominato SNS MySNSTopic per due filiali, main e preprod:

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

    Deve essere presente un blocco di attivazione JSON per ogni trigger di un repository. Per creare più di un trigger per il repository, includi più di un blocco di trigger in. 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 unico file. JSON Ad esempio, se desideri creare due trigger per un repository, puoi creare un JSON file con due blocchi 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, puoi includere una stringa customData (ad esempio, il nome di un IRC canale utilizzato dagli sviluppatori quando discutono dello sviluppo in questo repository). Questo campo è una stringa e non può essere utilizzato per passare parametri dinamici. Questa stringa viene aggiunta come attributo al valore CodeCommit JSON restituito in risposta al trigger.

  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 AmazonSNS. Ad esempio, quanto segue viene utilizzato per verificare che JSON nel file trigger denominato trigger.json è valido e CodeCommit può pubblicare sull'SNSargomento Amazon:

    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 put-repository-triggers comando per creare il trigger in CodeCommit. Ad esempio, per utilizzare un JSON file 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'SNSargomento Amazon. Ad esempio, se hai configurato l'SNSargomento Amazon per l'invio di 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", } ] }