Beispiel: Einen AWS CodeCommit Trigger für ein SNS Amazon-Thema erstellen - AWS CodeCommit

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: Einen AWS CodeCommit Trigger für ein SNS Amazon-Thema erstellen

Sie können einen Trigger für ein CodeCommit Repository erstellen, sodass Ereignisse in diesem Repository Benachrichtigungen von einem Amazon Simple Notification Service (AmazonSNS) -Thema auslösen. Möglicherweise möchten Sie einen Auslöser für ein SNS Amazon-Thema erstellen, damit Benutzer Benachrichtigungen über Repository-Ereignisse wie das Löschen von Branches abonnieren können. Sie können auch die Integration von SNS Amazon-Themen mit anderen Diensten wie Amazon Simple Queue Service (AmazonSQS) und nutzen AWS Lambda.

Anmerkung
  • Sie müssen den Auslöser auf ein vorhandenes SNS Amazon-Thema verweisen, bei dem es sich um die Aktion handelt, die als Reaktion auf Repository-Ereignisse ergriffen wurde. Weitere Informationen zum Erstellen und Abonnieren von SNS Amazon-Themen finden Sie unter Erste Schritte mit Amazon Simple Notification Service.

  • Amazon-Themen SNS FIFO (first in, first out) werden für CodeCommit Auslöser nicht unterstützt.

Einen Auslöser für ein SNS Amazon-Thema für ein CodeCommit Repository erstellen (Konsole)

  1. Öffnen Sie die CodeCommit Konsole unter https://console.aws.amazon.com/codesuite/codecommit/home.

  2. Wählen Sie unter Repositories (Repositorys) das Repository aus, in dem Sie Auslöser für Repository-Ereignisse erstellen möchten.

  3. Wählen Sie im Navigationsbereich für das Repository Settings (Einstellungen) und anschließend Triggers (Auslöser).

  4. Wählen Sie Create trigger (Auslöser erstellen) aus und gehen Sie folgendermaßen vor:

    • Geben Sie im Feld Triggername einen Namen für den Trigger ein (z. B. MyFirstTrigger).

    • Wählen Sie unter Ereignisse die Repository-Ereignisse aus, die das SNS Amazon-Thema zum Senden von Benachrichtigungen veranlassen.

      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 Sie beispielsweise möchten, dass der Trigger nur ausgeführt wird, wenn ein Benutzer einen Branch oder ein Tag im CodeCommit Repository erstellt, entfernen Sie Alle Repository-Ereignisse und wählen Sie dann Branch oder Tag erstellen.

    • 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 Wählen Sie den zu verwendenden Service die Option Amazon ausSNS.

    • Wählen Sie in Amazon SNS einen Themennamen aus der Liste aus oder geben Sie den ARN für das Thema ein.

      Anmerkung

      Amazon-Themen SNS FIFO (first in, first out) werden für CodeCommit Auslöser nicht unterstützt. Sie müssen ein SNS Amazon-Thema auswählen, dessen Typ auf Standard gesetzt ist.

    • Geben Sie unter Benutzerdefinierte Daten alle optionalen Informationen ein, die Sie in der vom SNS Amazon-Thema gesendeten Benachrichtigung enthalten möchten (z. B. einen IRC Kanalnamen, den Entwickler verwenden, wenn sie über Entwicklungen in diesem Repository sprechen). Dies ist ein Zeichenfolgenfeld. Es kann nicht zur Übergabe dynamischer Parameter verwendet werden.

  5. (Optional) Wählen Sie Test trigger (Auslöser testen). Mit diesem Schritt können Sie überprüfen, ob der Zugriff zwischen CodeCommit und dem SNS Amazon-Thema korrekt konfiguriert wurde. Es verwendet das SNS Amazon-Thema, um eine Testbenachrichtigung mit Daten aus Ihrem Repository zu senden, sofern verfügbar. Falls keine echten Daten verfügbar sind, enthält die Testbenachrichtigung Beispieldaten.

  6. Wählen Sie Create trigger (Auslöser erstellen), um die Erstellung des Auslösers abzuschließen.

Einen Auslöser für ein SNS Amazon-Thema für ein CodeCommit Repository erstellen (AWS CLI)

Sie können auch die Befehlszeile verwenden, um einen Trigger für ein SNS Amazon-Thema als Reaktion auf CodeCommit Repository-Ereignisse zu erstellen, z. B. wenn jemand einen Commit in Ihr Repository überträgt.

Um einen Auslöser für ein SNS Amazon-Thema zu erstellen
  1. Öffnen Sie einen Klartext-Editor und erstellen Sie eine JSON Datei, die Folgendes angibt:

    • Der Name des SNS Amazon-Themas.

      Anmerkung

      Amazon-Themen SNS FIFO (first in, first out) werden für CodeCommit Auslöser nicht unterstützt. Sie müssen ein SNS Amazon-Thema auswählen, dessen Typ auf Standard gesetzt ist.

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

    Zum Beispiel, um einen Trigger für ein Repository mit dem Namen zu erstellen MyDemoRepo das alle Repository-Ereignisse zu einem SNS Amazon-Thema mit dem Namen veröffentlicht MySNSTopic für zwei Filialen main and preprod:

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

    JSONFür jeden Trigger eines Repositorys muss ein Triggerblock enthalten sein. Um mehr als einen Trigger für das Repository zu erstellen, fügen Sie mehr als einen Triggerblock 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 werden für den zweiten Auslöser keine Branches angegeben, daher gilt dieser Auslöser für alle Branches:

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

    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.

  2. (Optional) Führen Sie an einem Terminal oder an einer Eingabeaufforderung den Befehl test-repository-triggers aus. Dieser Test verwendet Beispieldaten aus dem Repository (oder generiert Beispieldaten, falls keine Daten verfügbar sind), um eine Benachrichtigung an die Abonnenten des SNS Amazon-Themas zu senden. Mit dem Folgenden wird beispielsweise getestet, ob JSON in der Trigger-Datei mit dem Namen trigger.json ist gültig und CodeCommit kann zum SNS Thema Amazon veröffentlicht werden:

    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": [ "MyFirstTrigger" ], "failedExecutions": [] }
  3. Führen Sie in einem Terminal oder in einer put-repository-triggers Befehlszeile den Befehl zum Erstellen des Triggers aus CodeCommit. 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

    Die vom Befehl zurückgegebene Konfigurations-ID sollte wie folgt aussehen:

    { "configurationId": "0123456-I-AM-AN-EXAMPLE" }
  4. 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:sns:us-east-2:111122223333:MySNSTopic", "branches": [ "main", "preprod" ], "name": "MyFirstTrigger", "customData": "Project ID 12345" } ] }
  5. 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 vom SNS Amazon-Thema sehen. Wenn Sie beispielsweise das SNS Amazon-Thema so konfiguriert haben, dass es eine E-Mail sendet, sollte SNS in dem E-Mail-Konto, das das Thema abonniert hat, eine E-Mail von Amazon angezeigt werden.

    Im Folgenden finden Sie ein Beispiel für die Ausgabe einer E-Mail, die von Amazon SNS als Antwort auf einen Push an ein CodeCommit Repository gesendet wurde:

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