Erstellen Sie einen Auslöser für ein Ereignis CodeDeploy - AWS CodeDeploy

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.

Erstellen Sie einen Auslöser für ein Ereignis CodeDeploy

Sie können einen Auslöser erstellen, der ein Amazon Simple Notification Service (Amazon SNS) -Thema für ein AWS CodeDeploy Bereitstellungs- oder Instance-Ereignis veröffentlicht. Wenn dieses Ereignis eintritt, erhalten alle Abonnenten des zugehörigen Themas Benachrichtigungen über den im Thema angegebenen Endpunkt, z. B. eine SMS- oder E-Mail-Nachricht. Amazon SNS bietet mehrere Methoden zum Abonnieren von Themen.

Bevor Sie einen Trigger erstellen, müssen Sie das Amazon SNS SNS-Thema einrichten, auf das der Trigger verweisen soll. Weitere Informationen finden Sie unter Thema erstellen. Wenn Sie ein Thema erstellen, empfehlen wir Ihnen, ihm einen Namen zu geben, der seinen Zweck kennzeichnet, z. B. in Formaten wie Topic-group-us-west-3-deploy-fail oderTopic-group-project-2-instance-stop.

Sie müssen einer CodeDeploy Servicerolle außerdem Amazon SNS SNS-Berechtigungen erteilen, bevor Benachrichtigungen für Ihren Auslöser gesendet werden können. Weitere Informationen finden Sie unter Gewähren Sie Amazon SNS SNS-Berechtigungen für eine CodeDeploy Servicerolle.

Nachdem Sie das Thema erstellt haben, können Sie Abonnenten hinzufügen. Informationen zum Erstellen, Verwalten und Abonnieren von Themen finden Sie unter Was ist Amazon Simple Notification Service.

Erstellen Sie einen Auslöser zum Senden von Benachrichtigungen für CodeDeploy Ereignisse (Konsole)

Sie können die CodeDeploy Konsole verwenden, um Auslöser für ein CodeDeploy Ereignis zu erstellen. Am Ende des Einrichtungsprozesses wird eine Testbenachrichtigung gesendet, um sicherzustellen, dass Berechtigungs- und Auslöserdetails korrekt konfiguriert sind.

Um einen Auslöser für ein CodeDeploy Ereignis zu erstellen
  1. Öffnen Sie in der AWS Management Console die AWS CodeDeploy Konsole.

  2. Melden Sie sich bei der an AWS Management Console und öffnen Sie die CodeDeploy Konsole unter https://console.aws.amazon.com/codedeploy.

    Anmerkung

    Melden Sie sich mit demselben Benutzer an, den Sie eingerichtet habenErste Schritte mit CodeDeploy.

  3. Erweitern Sie im Navigationsbereich die Option Bereitstellen und wählen Sie dann Anwendungen aus.

  4. Wählen Sie auf der Seite Applications (Anwendungen) den Namen der Anwendung aus, die der Bereitstellungsgruppe zugeordnet ist, der Sie einen Auslöser hinzufügen möchten.

  5. Wählen Sie auf der Seite Application details (Anwendungsdetails) die Bereitstellungsgruppe aus, in der Sie einen Auslöser hinzufügen möchten.

  6. Wählen Sie Bearbeiten aus.

  7. Erweitern Sie Advanced (Erweitert) - optional.

  8. Wählen Sie im Bereich Triggers (Auslöser) die Option Create trigger (Auslöser erstellen).

  9. Gehen Sie im Bereich Create deployment trigger (Bereitstellungsauslöser erstellen) folgendermaßen vor:

    1. Geben Sie unter Trigger name (Auslösername) einen Namen für den Auslöser ein, an dem seine Funktion leicht zu erkennen ist. Wir empfehlen folgende Formate: Trigger-group-us-west-3-deploy-fail oder Trigger-group-eu-central-instance-stop.

    2. Wählen Sie unter Ereignisse den Ereignistyp oder die Ereignistypen aus, um das Amazon SNS SNS-Thema zum Senden von Benachrichtigungen auszulösen.

    3. Wählen Sie Amazon SNS SNS-Themen den Namen des Themas aus, das Sie für das Senden von Benachrichtigungen für diesen Auslöser erstellt haben.

    4. Wählen Sie Auslöser erstellen. CodeDeploy sendet eine Testbenachrichtigung, um zu bestätigen, dass Sie den Zugriff zwischen CodeDeploy und dem Amazon SNS SNS-Thema korrekt konfiguriert haben. Abhängig vom Endpunkttyp, den Sie für das Thema ausgewählt haben, und ob Sie das Thema abonniert haben, erhalten Sie eine Bestätigung in einer SMS-Nachricht oder einer E-Mail-Nachricht.

  10. Wählen Sie Änderungen speichern aus.

Erstellen Sie einen Auslöser zum Senden von Benachrichtigungen für CodeDeploy Ereignisse (CLI)

Sie können die CLI verwenden, um beim Erstellen einer Bereitstellungsgruppe Auslöser hinzuzufügen, oder Sie können Auslöser einer bereits vorhandenen Bereitstellungsgruppe hinzufügen.

So erstellen Sie einen Auslöser zum Senden von Benachrichtigungen für eine neue Bereitstellungsgruppe:

Erstellen Sie eine JSON-Datei, um die Bereitstellungsgruppe zu konfigurieren, und führen Sie dann den create-deployment-groupBefehl mit der --cli-input-json Option aus.

Die einfachste Möglichkeit zum Erstellen der JSON-Datei ist es, die Option --generate-cli-skeleton zu verwenden, um eine Kopie der JSON-Formats zu erhalten. Stellen Sie dann die erforderlichen Werte in einem Nur-Text-Editor bereit.

  1. Führen Sie den folgenden Befehl aus und kopieren Sie die Ergebnisse in einen Nur-Text-Editor.

    aws deploy create-deployment-group --generate-cli-skeleton
  2. Fügen Sie der Ausgabe den Namen einer vorhandenen CodeDeploy Anwendung hinzu:

    { "applicationName": "TestApp-us-east-2", "deploymentGroupName": "", "deploymentConfigName": "", "ec2TagFilters": [ { "Key": "", "Value": "", "Type": "" } ], "onPremisesInstanceTagFilters": [ { "Key": "", "Value": "", "Type": "" } ], "autoScalingGroups": [ "" ], "serviceRoleArn": "", "triggerConfigurations": [ { "triggerName": "", "triggerTargetArn": "", "triggerEvents": [ "" ] } ] }
  3. Geben Sie die Werte für die Parameter an, die Sie konfigurieren möchten.

    Wenn Sie den create-deployment-groupBefehl verwenden, müssen Sie mindestens Werte für die folgenden Parameter angeben:

    • applicationName: Der Name einer Anwendung, die bereits in Ihrem Konto bereits erstellt wurde.

    • deploymentGroupName: Ein Name für die Bereitstellungsgruppe, die Sie erstellen.

    • serviceRoleArn: Der ARN einer vorhandenen Servicerolle, für die CodeDeploy in Ihrem Konto eingerichtet wurde. Weitere Informationen finden Sie unter Schritt 2: Erstellen Sie eine Servicerolle für CodeDeploy.

    Geben Sie im Abschnitt triggerConfigurations die Werte für die folgenden Parameter an:

    • triggerName: Der gewünschte Name für den Auslöser, an dem Sie den Zweck einfach erkennen können. Wir empfehlen folgende Formate: Trigger-group-us-west-3-deploy-fail oder Trigger-group-eu-central-instance-stop.

    • triggerTargetArn: Der ARN des Amazon SNS SNS-Themas, das Sie erstellt haben, um es Ihrem Auslöser zuzuordnen, in diesem Format:arn:aws:sns:us-east-2:444455556666:NewTestTopic.

    • triggerEvents: Der Typ von Ereignissen, für die Sie Benachrichtigungen auslösen möchten. Sie können einen oder mehrere Ereignistypen definieren, indem Sie mehrere Ereignistypennamen mit einem Komma voneinander trennen (z. B. "triggerEvents":["DeploymentSuccess","DeploymentFailure","InstanceFailure"]). Wenn Sie mehr als einen Ereignistyp hinzufügen, werden die Benachrichtigungen für alle diese Typen zu dem Thema gesendet, das Sie festgelegt haben. Demnach werden für die einzelnen Ereignistypen keine Benachrichtigungen zu jeweils verschiedenen Themen gesendet. Sie können aus den folgenden Ereignistypen auswählen:

      • DeploymentStart

      • DeploymentSuccess

      • DeploymentFailure

      • DeploymentStop

      • DeploymentRollback

      • DeploymentReady (Gilt nur für Ersatz-Instances in einer blauen/grünen Bereitstellung)

      • InstanceStart

      • InstanceSuccess

      • InstanceFailure

      • InstanceReady (Gilt nur für Ersatz-Instances in einer blauen/grünen Bereitstellung)

    Im folgenden Konfigurationsbeispiel werden die Bereitstellungsgruppe dep-group-ghi-789-2 für eine Anwendung mit dem Namen TestApp-us-east-2 sowie ein Auslöser erstellt, der das Senden von Benachrichtigungen auslöst, wenn eine Bereitstellung beginnt, erfolgreich ist oder fehlschlägt:

    { "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "deploymentGroupName": "dep-group-ghi-789-2", "ec2TagFilters": [ { "Key": "Name", "Value": "Project-ABC", "Type": "KEY_AND_VALUE" } ], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "triggerConfigurations": [ { "triggerName": "Trigger-group-us-east-2", "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments", "triggerEvents": [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure" ] } ] }
  4. Speichern Sie Ihre Updates als JSON-Datei, und rufen Sie die Datei dann mit der Option --cli-input-json auf, wenn Sie den Befehl create-deployment-group ausführen:

    Wichtig

    Achten Sie darauf, dass file:// vor dem Dateinamen steht. Dies ist bei diesem Befehl erforderlich.

    aws deploy create-deployment-group --cli-input-json file://filename.json

    Am Ende des Erstellungsvorgangs erhalten Sie eine Testbenachrichtigung, um zu überprüfen, ob die Berechtigungs- und Auslöserdetails korrekt konfiguriert sind.

So erstellen Sie einen Auslöser zum Senden von Benachrichtigungen für eine bestehende Bereitstellungsgruppe:

Um Trigger für CodeDeploy Ereignisse AWS CLI zu einer vorhandenen Bereitstellungsgruppe hinzuzufügen, erstellen Sie eine JSON-Datei, um die Bereitstellungsgruppe zu aktualisieren, und führen Sie dann den update-deployment-groupBefehl mit der --cli-input-json Option aus.

Die einfachste Möglichkeit zum Erstellen der JSON-Datei ist es, den Befehl get-deployment-group auszuführen und so eine Kopie der Bereitstellungsgruppenkonfiguration im JSON-Format zu generieren und dann die Parameterwerte in einem Nur-Text-Editor zu aktualisieren.

  1. Führen Sie den folgenden Befehl aus und kopieren Sie die Ergebnisse in einen Nur-Text-Editor.

    aws deploy get-deployment-group --application-name application --deployment-group-name deployment-group
  2. Löschen Sie in der Ausgabe Folgendes:

    • Löschen Sie am Anfang der Ausgabe { "deploymentGroupInfo":.

    • Löschen Sie am Ende der Ausgabe }.

    • Löschen Sie die Zeile mit deploymentGroupId.

    • Löschen Sie die Zeile mit deploymentGroupName.

    Der Inhalt der Textdatei sollte jetzt wie folgt aussehen:

    { "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "autoScalingGroups": [], "ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Value": "Project-ABC", "Key": "Name" } ], "triggerConfigurations": [], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "onPremisesInstanceTagFilters": [] }
  3. Fügen Sie im Abschnitt triggerConfigurations Daten für die Parameter triggerEvents, triggerTargetArn und triggerName ein. Hinweise zu den Konfigurationsparametern von Triggern finden Sie unter TriggerConfig.

    Der Inhalt der Textdatei sollte jetzt wie folgt aussehen: Dieser Code löst das Senden von Benachrichtigungen aus, wenn eine Bereitstellung beginnt, erfolgreich ist oder fehlschlägt.

    { "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "autoScalingGroups": [], "ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Value": "Project-ABC", "Key": "Name" } ], "triggerConfigurations": [ { "triggerEvents": [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure" ], "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments", "triggerName": "Trigger-group-us-east-2" } ], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "onPremisesInstanceTagFilters": [] }
  4. Speichern Sie Ihre Aktualisierungen als JSON-Datei und führen Sie dann den update-deployment-groupBefehl mit der --cli-input-json Option aus. Denken Sie daran, die Option --current-deployment-group-name zu verwenden und den Namen der JSON-Datei zu ändern in filename:

    Wichtig

    Achten Sie darauf, dass file:// vor dem Dateinamen steht. Dies ist bei diesem Befehl erforderlich.

    aws deploy update-deployment-group --current-deployment-group-name deployment-group-name --cli-input-json file://filename.json

    Am Ende des Erstellungsvorgangs erhalten Sie eine Testbenachrichtigung, um zu überprüfen, ob die Berechtigungs- und Auslöserdetails korrekt konfiguriert sind.