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 trigger AWS CodeCommit per una AWS Lambda funzione esistente
Il modo più semplice per creare un trigger che richiami una funzione Lambda consiste nel creare quel trigger nella console Lambda. Questa integrazione integrata garantisce che CodeCommit disponga delle autorizzazioni necessarie per eseguire la funzione. Per aggiungere un trigger per una funzione Lambda esistente, vai alla console Lambda e scegli la funzione. Nella scheda Triggers (Trigger) per la funzione, seguire la procedura in Add trigger (Aggiungi trigger). Questi passaggi sono simili a quelli in Creazione della funzione Lambda.
Puoi anche creare un trigger per una funzione Lambda in un CodeCommit repository. A tale scopo è necessario scegliere una funzione Lambda esistente da richiamare. Richiede inoltre la configurazione manuale delle autorizzazioni necessarie per CodeCommit eseguire la funzione.
Argomenti
Configura manualmente le autorizzazioni per consentire l'esecuzione CodeCommit di una funzione Lambda
Se si crea un trigger CodeCommit che richiama una funzione Lambda, è necessario configurare manualmente le autorizzazioni che consentono di CodeCommit eseguire la funzione Lambda. Per evitare questa configurazione manuale, considera invece la possibilità di creare il trigger per la funzione nella console Lambda.
Per consentire CodeCommit l'esecuzione di una funzione Lambda
-
Apri un editor di testo semplice e crea un JSON file che specifichi il nome della funzione Lambda, i dettagli del CodeCommit repository e le azioni che desideri consentire in Lambda, in modo simile al seguente:
{ "FunctionName": "
MyCodeCommitFunction
", "StatementId": "1", "Action": "lambda:InvokeFunction", "Principal": "codecommit.amazonaws.com", "SourceArn": "arn:aws:codecommit:us-east-1:111122223333
:MyDemoRepo
", "SourceAccount": "111122223333
" } -
Salva il file come JSON file con un nome facile da ricordare (ad esempio, .json).
AllowAccessfromMyDemoRepo
-
Utilizzando il JSON file appena creato, dal terminale (Linux, macOS o Unix) o dalla riga di comando (Windows), esegui il aws lambda add-permissions comando per aggiungere un'autorizzazione alla politica delle risorse associata alla tua funzione Lambda:
aws lambda add-permission --cli-input-json file://
AllowAccessfromMyDemoRepo
.jsonQuesto comando restituisce JSON l'informativa sulla politica appena aggiunta, simile alla seguente:
{ "Statement": "{\"Condition\":{\"StringEquals\":{\"AWS:SourceAccount\":\"
111122223333
\"},\"ArnLike\":{\"AWS:SourceArn\":\"arn:aws:codecommit:us-east-1:111122223333
:MyDemoRepo
\"}},\"Action\":[\"lambda:InvokeFunction\"],\"Resource\":\"arn:aws:lambda:us-east-1:111122223333
:function:MyCodeCommitFunction
\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"codecommit.amazonaws.com\"},\"Sid\":\"1\"}" }Per ulteriori informazioni sulle politiche delle risorse per le funzioni Lambda, vedere AddPermissione The Pull/Push Event Models nella Guida per l'utente.AWS Lambda
Accedi a AWS Management Console e apri la console all'IAMindirizzo. https://console.aws.amazon.com/iam/
-
Nel riquadro di navigazione della Dashboard, scegli Ruoli e nell'elenco dei ruoli seleziona
lambda_basic_execution
. -
Nella pagina di riepilogo del ruolo, scegliere la scheda Permissions (Autorizzazioni) e, in Inline Policies (Policy inline), scegliere Create Role Policy (Crea policy ruolo).
-
Nella pagina Set Permissions (Imposta autorizzazioni), scegliere Policy Generator (Generatore di policy), quindi Select (Seleziona).
-
Nella pagina Edit Permissions (Modifica autorizzazioni), procedere nel modo seguente:
-
In Effect (Effetto), scegliere Allow (Consenti).
-
In AWS Servizio, scegli AWS CodeCommit.
-
In Azioni, seleziona GetRepository.
-
In Amazon Resource Name (ARN), inserisci ARN per il repository (ad esempio,
arn:aws:codecommit:us-east-1:
).111122223333
:MyDemoRepo
Selezionare Add Statement (Aggiungi istruzione), quindi Next Step (Fase successiva).
-
-
Nella pagina Review Policy (Revisiona policy), scegliere Apply Policy (Applica policy).
La dichiarazione relativa alla policy dovrebbe essere simile all'esempio seguente:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt11111111", "Effect": "Allow", "Action": [ "codecommit:GetRepository" ], "Resource": [ "arn:aws:codecommit:us-east-1:
111122223333
:MyDemoRepo
" ] } ] }
Creare un trigger per la funzione Lambda in un CodeCommit repository (console)
Dopo aver creato la funzione Lambda, è possibile creare un trigger CodeCommit che esegue la funzione in risposta agli eventi del repository specificati.
Nota
Prima di poter testare o eseguire correttamente il trigger per l'esempio, è necessario configurare le politiche che consentono di CodeCommit richiamare la funzione e la funzione Lambda per ottenere informazioni sul repository. Per ulteriori informazioni, consulta Per consentire CodeCommit l'esecuzione di una funzione Lambda.
Per creare un trigger per una funzione Lambda
Apri la CodeCommit console su https://console.aws.amazon.com/codesuite/codecommit/home
. -
In Repository, selezionare il repository in cui si desidera creare i trigger per gli eventi del repository.
-
Nel riquadro di navigazione per il repository, scegliere Settings (Impostazioni), quindi Triggers (Trigger).
-
Selezionare Create trigger (Crea trigger).
-
In Create trigger (Crea trigger), eseguire quanto segue:
-
In Nome trigger, inserisci un nome per il trigger (ad esempio,).
MyLambdaFunctionTrigger
-
In Eventi, scegli gli eventi del repository che attivano la funzione Lambda.
Se si sceglie All repository events (Tutti gli eventi del repository), non è possibile scegliere altri eventi. Se ad esempio si desidera scegliere un sottoinsieme di eventi, deselezionare All repository events (Tutti gli eventi del repository) e scegliere gli eventi desiderati nell'elenco. Se ad esempio si desidera eseguire il trigger solo quando un utente crea un tag o un ramo nel repository CodeCommit , rimuovere All repository events (Tutti gli eventi del repository), quindi scegliere Create branch or tag (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 Choose the service to use (Scegli il servizio da utilizzare), scegliere AWS Lambda.
-
Nella funzione Lambda, scegli il nome della funzione dall'elenco o inserisci il nome della ARN funzione.
-
(Facoltativo) In Dati personalizzati, inserisci le informazioni che desideri includere nella funzione Lambda (ad esempio, il nome del IRC canale usato dagli sviluppatori per discutere dello sviluppo nel repository). Questo campo è una stringa e non può essere utilizzato per passare parametri dinamici.
-
-
(Facoltativo) Scegliere Test trigger (Esegui test trigger). Questa opzione tenta di invocare la funzione con i dati di esempio relativi al repository, incluso l'ID commit più recente. Se non esiste una cronologia dei commit, vengono generati valori di esempio costituiti da zero. Questo ti aiuta a confermare di aver configurato correttamente l'accesso tra CodeCommit e la funzione Lambda.
-
Scegliere Create trigger (Crea trigger) per completare la creazione del trigger.
-
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 dalla funzione Lambda nella scheda Monitoraggio per quella funzione nella console Lambda.
Crea un trigger per una funzione Lambda per un CodeCommit repository ()AWS CLI
Puoi anche usare la riga di comando per creare un trigger per una funzione Lambda in risposta agli eventi del CodeCommit repository, ad esempio quando qualcuno invia un commit al tuo repository.
Per creare un trigger per una funzione Lambda
-
Apri un editor di testo semplice e crea un JSON file che specifichi:
-
Il nome della funzione Lambda.
-
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, se desideri creare un trigger per un repository denominato
MyDemoRepo
che pubblica tutti gli eventi del repository in una funzione Lambda denominataMyCodeCommitFunction
per due rami e:main
preprod
{ "repositoryName": "
MyDemoRepo
", "triggers": [ { "name": "MyLambdaFunctionTrigger
", "destinationArn": "arn:aws:lambda:us-east-1:111122223333
:function:MyCodeCommitFunction
", "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 un repository, includi blocchi aggiuntivi 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 singolo 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 nel secondo blocco di trigger, pertanto il trigger viene applicato a tutti i rami:
{ "repositoryName": "
MyDemoRepo
", "triggers": [ { "name": "MyLambdaFunctionTrigger
", "destinationArn": "arn:aws:lambda:us-east-1:111122223333
:function:MyCodeCommitFunction
", "customData": "", "branches": [ "main
", "preprod
" ], "events": [ "all" ] }, { "name": "MyOtherLambdaFunctionTrigger
", "destinationArn": "arn:aws:lambda:us-east-1:111122223333
:function:MyOtherCodeCommitFunction
", "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. -
-
(Facoltativo) Da un terminale o dal prompt dei comandi, eseguire il comando test-repository-triggers. Ad esempio, quanto segue viene utilizzato per verificare che il JSON file denominato
trigger.json
sia valido e che CodeCommit possa attivare la funzione Lambda. Questo test utilizza i dati di esempio per attivare la funzione se non sono disponibili dati reali.aws codecommit test-repository-triggers --cli-input-json file://
trigger.json
Se il comando viene eseguito correttamente, restituisce informazioni simili alle seguenti:
{ "successfulExecutions": [ "
MyLambdaFunctionTrigger
" ], "failedExecutions": [] } -
Da un terminale o dal prompt dei comandi, eseguire il comando put-repository-triggers 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
" } -
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:lambda:us-east-1
:111122223333
:MyCodeCommitFunction
", "branches": [ "main
", "preprod
" ], "name": "MyLambdaFunctionTrigger
", "customData": "Project ID 12345" } ] } -
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 dalla funzione Lambda nella scheda Monitoraggio per quella funzione nella console Lambda.