AWS CodeCommit ist für Neukunden nicht mehr verfügbar. Bestandskunden von AWS CodeCommit können den Service weiterhin wie gewohnt nutzen. Erfahren Sie mehr“
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Beispiel: Erstellen Sie einen Trigger AWS CodeCommit für eine bestehende AWS Lambda Funktion
Der einfachste Weg, einen Trigger zu erstellen, der eine Lambda-Funktion aufruft, besteht darin, diesen Trigger in der Lambda-Konsole zu erstellen. Diese integrierte Integration stellt sicher, dass Sie CodeCommit über die zum Ausführen der Funktion erforderlichen Berechtigungen verfügen. Um einen Trigger für eine bestehende Lambda-Funktion hinzuzufügen, rufen Sie die Lambda-Konsole auf und wählen Sie die Funktion aus. Führen Sie auf der Registerkarte Triggers (Auslöser) zu der Funktion die Schritte unter Add trigger (Auslöser hinzufügen) aus. Diese Schritte gleichen denen unter So erstellen Sie die Lambda-Funktion:.
Sie können auch einen Trigger für eine Lambda-Funktion in einem CodeCommit Repository erstellen. Dazu müssen Sie eine vorhandene Lambda-Funktion zum Aufrufen auswählen. Außerdem müssen Sie die für CodeCommit die Ausführung der Funktion erforderlichen Berechtigungen manuell konfigurieren.
Themen
Manuelles Konfigurieren von Berechtigungen, um die Ausführung einer Lambda-Funktion CodeCommit zu ermöglichen
Wenn Sie einen Trigger erstellen CodeCommit , der eine Lambda-Funktion aufruft, müssen Sie die Berechtigungen, mit denen CodeCommit die Lambda-Funktion ausgeführt werden kann, manuell konfigurieren. Um diese manuelle Konfiguration zu vermeiden, sollten Sie den Trigger für die Funktion stattdessen in der Lambda-Konsole erstellen.
Um die Ausführung einer Lambda-Funktion CodeCommit zu ermöglichen
-
Öffnen Sie einen Klartext-Editor und erstellen Sie eine JSON Datei, die den Namen der Lambda-Funktion, die Details des CodeCommit Repositorys und die Aktionen angibt, die Sie in Lambda zulassen möchten, ähnlich der folgenden:
{ "FunctionName": "
MyCodeCommitFunction
", "StatementId": "1", "Action": "lambda:InvokeFunction", "Principal": "codecommit.amazonaws.com", "SourceArn": "arn:aws:codecommit:us-east-1:111122223333
:MyDemoRepo
", "SourceAccount": "111122223333
" } -
Speichern Sie die Datei als JSON Datei mit einem Namen, den Sie sich leicht merken können (z. B.. json).
AllowAccessfromMyDemoRepo
-
Führen Sie mithilfe der gerade erstellten JSON Datei im Terminal (Linux, macOS oder Unix) oder in der Befehlszeile (Windows) den aws lambda add-permissions Befehl aus, um der mit Ihrer Lambda-Funktion verknüpften Ressourcenrichtlinie eine Berechtigung hinzuzufügen:
aws lambda add-permission --cli-input-json file://
AllowAccessfromMyDemoRepo
.jsonDieser Befehl gibt die JSON Richtlinienanweisung zurück, die Sie gerade hinzugefügt haben, ähnlich der folgenden:
{ "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\"}" }Weitere Informationen zu Ressourcenrichtlinien für Lambda-Funktionen finden Sie unter AddPermissionund The Pull/Push Event Models im AWS Lambda Benutzerhandbuch.
Melden Sie sich bei der an AWS Management Console und öffnen Sie die IAM Konsole unter. https://console.aws.amazon.com/iam/
-
Wählen Sie im Navigationsbereich des Dashboards Rollen und dann in der Rollenliste die Option aus
lambda_basic_execution
. -
Wählen Sie auf der Zusammenfassungsseite für die Rolle die Registerkarte Permissions (Berechtigungen) aus und wählen Sie unter Inline Policies (Eingebundene Richtlinien) die Option Create Role Policy (Rollenrichtlinie erstellen) aus.
-
Wählen Sie auf der Seite Set Permissions (Berechtigungen festlegen) die Option Policy Generator (Richtliniengenerator) und dann Select (Auswählen) aus.
-
Führen Sie auf der Seite Edit Permissions die folgenden Schritte aus:
-
Wählen Sie unter Effect die Option Allow aus.
-
Wählen Sie AWS unter Service die Option AWS CodeCommit.
-
Wählen Sie unter Aktionen die Option aus GetRepository.
-
Geben Sie im Feld Amazon-Ressourcenname (ARN) den ARN für das Repository ein (z. B.
arn:aws:codecommit:us-east-1:
).111122223333
:MyDemoRepo
Wählen Sie Add Statement und anschließend Next Step aus.
-
-
Wählen Sie auf der Seite Review Policy (Richtlinie überprüfen) die Option Apply Policy (Richtlinie anwenden) aus.
Die Richtlinienanweisung sollte dann dem folgenden Beispiel ähneln:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt11111111", "Effect": "Allow", "Action": [ "codecommit:GetRepository" ], "Resource": [ "arn:aws:codecommit:us-east-1:
111122223333
:MyDemoRepo
" ] } ] }
Erstellen Sie einen Trigger für die Lambda-Funktion in einem CodeCommit Repository (Konsole)
Nachdem Sie die Lambda-Funktion erstellt haben, können Sie einen Trigger erstellen, der CodeCommit die Funktion als Reaktion auf die von Ihnen angegebenen Repository-Ereignisse ausführt.
Anmerkung
Bevor Sie den Trigger für das Beispiel erfolgreich testen oder ausführen können, müssen Sie die Richtlinien konfigurieren, die es ermöglichen CodeCommit , die Funktion und die Lambda-Funktion aufzurufen, um Informationen über das Repository abzurufen. Weitere Informationen finden Sie unter Um die Ausführung einer Lambda-Funktion CodeCommit zu ermöglichen.
Um einen Trigger für eine Lambda-Funktion zu erstellen
Öffnen Sie die CodeCommit Konsole unter https://console.aws.amazon.com/codesuite/codecommit/home
. -
Wählen Sie unter Repositories (Repositorys) das Repository aus, in dem Sie Auslöser für Repository-Ereignisse erstellen möchten.
-
Wählen Sie im Navigationsbereich für das Repository Settings (Einstellungen) und anschließend Triggers (Auslöser).
-
Wählen Sie Create trigger.
-
Gehen Sie in Create trigger (Auslöser erstellen) wie folgt vor:
-
Geben Sie im Feld Triggername einen Namen für den Trigger ein (z. B.).
MyLambdaFunctionTrigger
-
Wählen Sie unter Ereignisse die Repository-Ereignisse aus, die die Lambda-Funktion auslösen.
Wenn Sie All repository events wählen, können Sie keine anderen Ereignisse auswählen. Wenn Sie nur einen Teil der Ereignisse auswählen möchten, löschen Sie All repository events und wählen Sie dann die gewünschten Ereignisse in der Liste aus. Wenn der Auslöser beispielsweise nur ausgeführt werden soll, wenn ein Benutzer in dem CodeCommit -Repository ein Tag oder einen Branch erstellt, entfernen Sie All repository events (Alle Repository-Ereignisse) und wählen Sie dann Create branch or tag (Branch oder Tag erstellen) aus.
-
Wenn Sie möchten, dass der Auslöser für alle Branches des Repositorys unter Branches gilt, lassen Sie die Auswahl leer, da diese Standardoption den Auslöser automatisch auf alle Branches anwendet. Wenn Sie möchten, dass dieser Auslöser nur für bestimmte Branches gilt, wählen Sie bis zu 10 Branch-Namen aus der Liste der Repository-Branches aus.
-
Wählen Sie unter Choose the service to use (Zu verwendende Services auswählen) die AWS Lambda aus.
-
Wählen Sie Lambda Lambda-Funktion den Funktionsnamen aus der Liste aus, oder geben Sie den ARN für die Funktion ein.
-
(Optional) Geben Sie unter Benutzerdefinierte Daten Informationen ein, die Sie in die Lambda-Funktion aufnehmen möchten (z. B. den Namen des IRC Kanals, den Entwickler zur Diskussion der Entwicklung im Repository verwenden). Dies ist ein Zeichenfolgenfeld. Es kann nicht zur Übergabe dynamischer Parameter verwendet werden.
-
-
(Optional) Wählen Sie Test trigger (Auslöser testen). Damit wird die Funktion mit Beispieldaten zu Ihrem Repository, einschließlich der neuesten Commit-ID für das Repository, aufgerufen. (Falls kein Commit-Verlauf vorhanden ist, werden stattdessen aus Nullen bestehende Beispielwerte generiert.) Auf diese Weise können Sie überprüfen, ob Sie den Zugriff zwischen CodeCommit und der Lambda-Funktion korrekt konfiguriert haben.
-
Wählen Sie Create trigger (Auslöser erstellen), um die Erstellung des Auslösers abzuschließen.
-
Erstellen Sie einen Commit und übertragen Sie ihn per Push an das Repository, für das Sie den Auslöser konfiguriert haben, um die Funktion des Auslösers zu überprüfen. Sie sollten eine Antwort der Lambda-Funktion auf der Registerkarte Überwachung für diese Funktion in der Lambda-Konsole sehen.
Erstellen Sie einen Trigger für eine Lambda-Funktion für ein CodeCommit Repository ()AWS CLI
Sie können auch die Befehlszeile verwenden, um einen Trigger für eine Lambda-Funktion als Reaktion auf CodeCommit Repository-Ereignisse zu erstellen, z. B. wenn jemand einen Commit in Ihr Repository überträgt.
Um einen Trigger für eine Lambda-Funktion zu erstellen
-
Öffnen Sie einen Klartext-Editor und erstellen Sie eine JSON Datei, die Folgendes spezifiziert:
-
Der Name der Lambda-Funktion.
-
Repository und Branches, die mit diesem Auslöser überwacht werden sollen. (Wenn keine Branches angegeben werden, gilt der Auslöser für alle Branches im Repository.)
-
Ereignisse, die diesen Auslöser aktivieren.
Speichern Sie die Datei.
Wenn Sie beispielsweise einen Trigger für ein Repository mit dem Namen erstellen möchten
MyDemoRepo
, der alle Repository-Ereignisse in einer Lambda-Funktion veröffentlicht, dieMyCodeCommitFunction
nach zwei Branches benannt ist,main
undpreprod
:{ "repositoryName": "
MyDemoRepo
", "triggers": [ { "name": "MyLambdaFunctionTrigger
", "destinationArn": "arn:aws:lambda:us-east-1:111122223333
:function:MyCodeCommitFunction
", "customData": "", "branches": [ "main
", "preprod
" ], "events": [ "all" ] } ] }Für jeden Trigger eines Repositorys muss ein Triggerblock enthalten sein. JSON Um mehr als einen Trigger für ein Repository zu erstellen, fügen Sie zusätzliche Blöcke in den einJSON. Beachten Sie, dass alle in dieser Datei erstellten Auslöser für das angegebene Repository gelten. Sie können keine Trigger für mehrere Repositorys in einer einzigen JSON Datei erstellen. Wenn Sie beispielsweise zwei Trigger für ein Repository erstellen möchten, können Sie eine JSON Datei mit zwei Triggerblöcken erstellen. Im folgenden Beispiel sind im zweiten Auslöserblock keine Branches angegeben, daher gilt dieser Auslöser für alle Branches:
{ "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" ] } ] }Sie können Auslöser für bestimmte Ereignisse erstellen, z. B. wenn ein Commit per Push an ein Repository übertragen wird. Zu den Ereignistypen zählen:
-
all
für alle Ereignisse im angegebenen Repository und den angegebenen Branches -
updateReference
für Fälle, in denen Commits per Push an das angegebene Repository und die angegebenen Branches übertragen werden -
createReference
für Fälle, in denen in dem angegebenen Repository ein neuer Branch oder ein neues Tag erstellt wird -
deleteReference
für Fälle, in denen in dem angegebenen Repository ein Branch oder ein Tag gelöscht wird
Anmerkung
Sie können in einem Auslöser mehrere Ereignistypen verwenden. Wenn Sie
all
angeben, können Sie allerdings keine anderen Ereignisse angeben.Geben Sie im Terminal oder in der Eingabeaufforderung aws codecommit put-repository-triggers help ein, um eine vollständige Liste der gültigen Ereignistypen anzuzeigen.
Darüber hinaus können Sie eine Zeichenfolge hinzufügen
customData
(z. B. einen IRC Kanalnamen, den Entwickler verwenden, wenn sie über die Entwicklung in diesem Repository sprechen). Dies ist ein Zeichenfolgenfeld. Es kann nicht zur Übergabe dynamischer Parameter verwendet werden. Diese Zeichenfolge wird als Attribut an die als Antwort auf den Trigger CodeCommit JSON zurückgegebene Zeichenfolge angehängt. -
-
(Optional) Führen Sie an einem Terminal oder an einer Eingabeaufforderung den Befehl test-repository-triggers aus. Mit dem Folgenden wird beispielsweise getestet, ob die angegebene JSON Datei gültig
trigger.json
ist und die Lambda-Funktion auslösen CodeCommit kann. Dieser Test verwendet Beispieldaten, um die Funktion auszulösen, wenn keine echten Daten vorhanden sind.aws codecommit test-repository-triggers --cli-input-json file://
trigger.json
Bei erfolgreicher Ausführung gibt dieser Befehl etwa wie folgt aussehende Informationen zurück:
{ "successfulExecutions": [ "
MyLambdaFunctionTrigger
" ], "failedExecutions": [] } -
Führen Sie in einem Terminal oder einer Eingabeaufforderung den Befehl put-repository-triggers aus, um den Auslöser in CodeCommit zu erstellen. Um beispielsweise eine JSON Datei mit dem Namen zu verwenden,
trigger.json
um den Trigger zu erstellen:aws codecommit put-repository-triggers --cli-input-json file://
trigger.json
Dieser Befehl gibt eine Konfigurations-ID wie die folgende zurück:
{ "configurationId": "
0123456-I-AM-AN-EXAMPLE
" } -
Führen Sie zum Anzeigen der Konfiguration des Auslösers den Befehl get-repository-triggers aus und geben Sie dabei den Namen des Repositorys an:
aws codecommit get-repository-triggers --repository-name
MyDemoRepo
Dieser Befehl gibt die Struktur aller Auslöser zurück, die für das Repository konfiguriert sind, ähnlich folgendem Beispiel:
{ "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" } ] } -
Erstellen Sie einen Commit und übertragen Sie ihn per Push an das Repository, für das Sie den Auslöser konfiguriert haben, um die Funktion des Auslösers zu prüfen. Sie sollten eine Antwort der Lambda-Funktion auf der Registerkarte Überwachung für diese Funktion in der Lambda-Konsole sehen.