View a markdown version of this page

Überwachung von CodePipeline Ereignissen - AWS CodePipeline

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.

Überwachung von CodePipeline Ereignissen

Sie können CodePipeline Ereignisse in überwachen EventBridge, was einen Strom von Echtzeitdaten aus Ihren eigenen Anwendungen, Software-as-a-Service (SaaS) -Anwendungen usw. liefert. AWS-Services EventBridge leitet diese Daten an Ziele wie Amazon Simple AWS Lambda Notification Service weiter. Bei diesen Ereignissen handelt es sich um dieselben, die in Amazon CloudWatch Events angezeigt werden. Amazon Events liefert einen Stream von Systemereignissen, die Änderungen an AWS Ressourcen beschreiben, nahezu in Echtzeit. Weitere Informationen finden Sie unter Was ist Amazon EventBridge? im EventBridge Amazon-Benutzerhandbuch.

Anmerkung

Amazon EventBridge ist die bevorzugte Methode, um Ihre Veranstaltungen zu verwalten. Amazon CloudWatch Events und EventBridge sind derselbe zugrundeliegende Service und dieselbe API, EventBridge bieten jedoch mehr Funktionen. Änderungen, die Sie entweder in CloudWatch Events vornehmen oder EventBridge die auf jeder Konsole angezeigt werden.

Ereignisse bestehen aus Regeln. Eine Regel wird konfiguriert, indem Sie Folgendes auswählen:

  • Event-Muster. Jede Regel wird als Ereignismuster mit der Quelle und Art der zu überwachenden Ereignisse sowie den Ereigniszielen ausgedrückt. Um Ereignisse zu überwachen, erstellen Sie eine Regel mit dem Dienst, den Sie überwachen, als Ereignisquelle, z. CodePipeline B. Sie können beispielsweise eine Regel mit einem Ereignismuster erstellen, das CodePipeline als Ereignisquelle verwendet wird, um die Regel auszulösen, wenn sich der Status einer Pipeline, Phase oder Aktion ändert.

  • Ziele. Die neue Regel erhält einen ausgewählten Service als Ereignisziel. Möglicherweise möchten Sie einen Zieldienst einrichten, um Benachrichtigungen zu senden, Statusinformationen zu erfassen, Korrekturmaßnahmen zu ergreifen, Ereignisse einzuleiten oder andere Maßnahmen zu ergreifen. Wenn Sie Ihr Ziel hinzufügen, müssen Sie ihm auch Berechtigungen gewähren, EventBridge damit es den ausgewählten Zieldienst aufrufen kann.

Alle Arten von Änderungsereignissen in Bezug auf den Ausführungszustand geben Benachrichtigungen mit spezifischen Nachrichteninhalten aus. Dabei gilt Folgendes:

  • Der erste version Eintrag zeigt die Versionsnummer für das Ereignis.

  • Der version-Eintrag unter Pipeline-detail zeigt die Versionsnummer der Pipelinestruktur.

  • Der execution-id-Eintrag unter Pipeline-detail zeigt die Ausführungs-ID für die Pipelineausführung, die die Statusänderung verursacht hat. Lesen Sie den GetPipelineExecution API-Aufruf in der AWS CodePipeline API-Referenz.

  • Der pipeline-execution-attempt Eintrag zeigt die Anzahl der Versuche oder Wiederholungen für die spezifische Ausführungs-ID.

CodePipeline meldet jedes Mal ein Ereignis, EventBridge wenn sich der Status einer Ressource in Ihrem Ordner AWS-Konto ändert. Ereignisse werden garantiert mindestens einmal für die folgenden Ressourcen ausgelöst:

  • Pipeline-Ausführungen

  • Hinrichtungen in Etappen

  • Aktionsausführungen

Ereignisse werden EventBridge mit dem oben beschriebenen Ereignismuster und Schema ausgegeben. Bei verarbeiteten Ereignissen, z. B. Ereignissen, die Sie durch Benachrichtigungen erhalten, die Sie in der Entwicklertools-Konsole konfiguriert haben, enthält die Ereignisnachricht Felder für das Ereignismuster mit einigen Variationen. Das detail-type Feld wird beispielsweise in konvertiertdetailType. Weitere Informationen finden Sie im PutEvents API-Aufruf in der EventBridge Amazon-API-Referenz.

Die folgenden Beispiele zeigen Ereignisse für CodePipeline. Wo möglich, zeigt jedes Beispiel das Schema für ein ausgegebenes Ereignis zusammen mit dem Schema für ein verarbeitetes Ereignis.

Detailtypen

Wenn Sie Ereignisse zur Überwachung einrichten, können Sie den Detailtyp für das Ereignis auswählen.

Sie können konfigurieren, dass Benachrichtigungen gesendet werden, wenn sich der Status für Folgendes ändert:

  • Angegebene Pipelines oder alle Pipelines. Dies wird über "detail-type": "CodePipeline Pipeline Execution State Change" gesteuert.

  • Angegebene Stufen oder alle Stufen innerhalb einer bestimmten Pipeline oder all Ihrer Pipelines. Dies wird über "detail-type": "CodePipeline Stage Execution State Change" gesteuert.

  • Angegebene Aktionen oder alle Aktionen in einer bestimmten Stufe oder allen Stufen innerhalb einer bestimmten Pipeline oder allen Ihren Pipelines. Dies wird über "detail-type": "CodePipeline Action Execution State Change" gesteuert.

Anmerkung

Ereignisse, die von ausgegeben werden, EventBridge enthalten den detail-type Parameter, der detailType bei der Verarbeitung von Ereignissen in diesen Wert umgewandelt wird.

Typ des Details Status Description
CodePipeline Änderung des Ausführungsstatus der Pipeline CANCELED Die Pipelineausführung wurde abgebrochen, da die Pipelinestruktur aktualisiert wurde.
FEHLGESCHLAGEN Die Pipelineausführung wurde nicht erfolgreich abgeschlossen.
RESUMED Eine fehlgeschlagene Pipelineausführung wurde als Reaktion auf den API-Aufruf RetryStageExecution erneut ausgeführt.
STARTED Die Pipelineausführung wird derzeit ausgeführt.
STOPPED Der Anhaltevorgang ist abgeschlossen, und die Pipeline-Ausführung wird angehalten.
STOPPING Die Pipeline-Ausführung wird aufgrund einer Anforderung mit "Anhalten und beenden" oder "Anhalten und warten" angehalten.
SUCCEEDED Die Pipelineausführung wurde erfolgreich abgeschlossen.
SUPERSEDED

Während auf den Abschluss der nächsten Stufe dieser Pipelineausführung gewartet wurde, wurde stattdessen eine neuere Pipelineausführung über die Pipeline fortgesetzt.

CodePipeline Änderung des Ausführungsstatus der Phase CANCELED Die Stufe wurde abgebrochen, da die Pipelinestruktur aktualisiert wurde.
FEHLGESCHLAGEN Die Stufe wurde nicht erfolgreich abgeschlossen.
RESUMED Eine fehlgeschlagene Stufe wurde als Reaktion auf den API-Aufruf RetryStageExecution erneut ausgeführt.
STARTED Die Stufe wird derzeit ausgeführt.
STOPPED Der Anhaltevorgang ist abgeschlossen, und die Phasenausführung wird angehalten.
STOPPING Die Ausführung der Phase wird aufgrund einer Anforderung zum Anhalten und Warten oder zum Anhalten und Beenden der Pipeline-Ausführung gestoppt.
SUCCEEDED Die Stufe wurde erfolgreich abgeschlossen.
CodePipeline Änderung des Ausführungsstatus der Aktion VERLASSEN Die Aktion wird aufgrund einer Anforderung mit "Anhalten und Beenden" für die Pipeline-Ausführung beendet.
CANCELED Die Aktion wurde abgebrochen, da die Pipelinestruktur aktualisiert wurde.
FEHLGESCHLAGEN Bei Genehmigungsaktionen bedeutet der Status FAILED (FEHLGESCHLAGEN), dass die Aktion entweder vom Prüfer abgelehnt wurde oder aufgrund einer falschen Aktionskonfiguration fehlgeschlagen ist.
STARTED Die Aktion wird derzeit ausgeführt.
SUCCEEDED Die Aktion wurde erfolgreich abgeschlossen.

Pipeline-level Ereignisse

Pipeline-level Ereignisse werden ausgegeben, wenn sich der Status einer Pipeline-Ausführung ändert.

Ereignis „Pipeline GESTARTET“

Wenn eine Pipeline-Ausführung beginnt, wird ein Ereignis ausgelöst, das Benachrichtigungen mit dem folgenden Inhalt sendet. Dieses Beispiel bezieht sich auf die "myPipeline" in der us-east-1 Region benannte Pipeline. Das id Feld steht für die Ereignis-ID, und das account Feld steht für die Konto-ID, unter der die Pipeline erstellt wird.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:03:07Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "trigger-type": "StartPipelineExecution", "trigger-detail": "arn:aws:sts::123456789012:assumed-role/Admin/my-user" }, "state": "STARTED", "version": 1.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-east-1", "source": "aws.codepipeline", "time": "2021-06-24T00:44:50Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "trigger-type": "StartPipelineExecution", "trigger-detail": "arn:aws:sts::123456789012:assumed-role/Admin/my-user" }, "state": "STARTED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "additionalAttributes": {} }

Ereignis „Pipeline STOPING“

Wenn eine Pipeline-Ausführung gestoppt wird, wird ein Ereignis ausgelöst, das Benachrichtigungen mit dem folgenden Inhalt sendet. Dieses Beispiel bezieht sich auf die myPipeline in der us-west-2 Region benannte Pipeline.

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:02:20Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "STOPPING", "version": 3.0, "pipeline-execution-attempt": 1.0 "stop-execution-comments": "Stopping the pipeline for an update" } }

Ereignis „Pipeline WAR ERFOLGREICH“

Wenn eine Pipeline-Ausführung erfolgreich ist, wird ein Ereignis ausgelöst, das Benachrichtigungen mit dem folgenden Inhalt sendet. Dieses Beispiel bezieht sich auf die myPipeline in der Region benannte Pipeline. us-east-1

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:03:44Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "SUCCEEDED", "version": 3.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-east-1", "source": "aws.codepipeline", "time": "2021-06-30T22:13:51Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "SUCCEEDED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": {} }

Pipeline ERFOLGREICH (Beispiel mit Git-Tags)

Wenn eine Pipeline-Ausführung eine Phase hat, die wiederholt und erfolgreich versucht wurde, gibt sie ein Ereignis aus, das Benachrichtigungen mit dem folgenden Inhalt sendet. Dieses Beispiel bezieht sich auf die Pipeline, die myPipeline in der eu-central-1 Region benannt ist, in der sie für Git-Tags konfiguriert execution-trigger ist.

Anmerkung

Das execution-trigger Feld enthält entweder tag-name oderbranch-name, je nachdem, welche Art von Ereignis die Pipeline ausgelöst hat.

{ "version": "0", "id": "b128b002-09fd-4574-4eba-27152726c777", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2023-10-26T13:50:53Z", "region": "eu-central-1", "resources": [ "arn:aws:codepipeline:eu-central-1:123456789012:BuildFromTag" ], "detail": { "pipeline": "BuildFromTag", "execution-id": "e17b5773-cc0d-4db2-9ad7-594c73888de8", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "author-display-name": "Mary Major", "full-repository-name": "mmajor/sample-project", "provider-type": "GitLab", "author-email": "email_address", "commit-message": "Update file README.md", "author-date": "2023-08-16T21:08:08Z", "tag-name": "gitlab-v4.2.1", "commit-id": "commit_ID", "connection-arn": "arn:aws:codestar-connections:eu-central-1:123456789012:connection/0f5b706a-1a1d-46c5-86b6-f177321bcfb2", "author-id": "Mary Major" }, "state": "SUCCEEDED", "version": 32.0, "pipeline-execution-attempt": 1.0 } }

Ereignis Pipeline IST FEHLGESCHLAGEN

Wenn eine Pipeline-Ausführung fehlschlägt, wird ein Ereignis ausgelöst, das Benachrichtigungen mit dem folgenden Inhalt sendet. Dieses Beispiel bezieht sich auf die "myPipeline" in der us-west-2 Region benannte Pipeline.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:55:43Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "FAILED", "version": 4.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:46:16Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "FAILED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": { "failedActionCount": 1, "failedActions": [ { "action": "Deploy", "additionalInformation": "Deployment <ID> failed" } ], "failedStage": "Deploy" }

Die Pipeline IST FEHLGESCHLAGEN (Beispiel mit Git-Tags)

Sofern sie nicht auf der Quellphase fehlschlägt, gibt sie bei einer Pipeline-Konfiguration mit Triggern ein Ereignis aus, das Benachrichtigungen mit dem folgenden Inhalt sendet. Dieses Beispiel bezieht sich auf die Pipeline, die myPipeline in der eu-central-1 Region benannt execution-trigger ist, in der sie für Git-Tags konfiguriert ist.

Anmerkung

Das execution-trigger Feld enthält entweder tag-name oderbranch-name, je nachdem, welche Art von Ereignis die Pipeline ausgelöst hat.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:55:43Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "author-display-name": "Mary Major", "full-repository-name": "mmajor/sample-project", "provider-type": "GitLab", "author-email": "email_address", "commit-message": "Update file README.md", "author-date": "2023-08-16T21:08:08Z", "tag-name": "gitlab-v4.2.1", "commit-id": "commit_ID", "connection-arn": "arn:aws:codestar-connections:eu-central-1:123456789012:connection/0f5b706a-1a1d-46c5-86b6-f177321bcfb2", "author-id": "Mary Major" }, "state": "FAILED", "version": 4.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:46:16Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "author-display-name": "Mary Major", "full-repository-name": "mmajor/sample-project", "provider-type": "GitLab", "author-email": "email_address", "commit-message": "Update file README.md", "author-date": "2023-08-16T21:08:08Z", "tag-name": "gitlab-v4.2.1", "commit-id": "commit_ID", "connection-arn": "arn:aws:codestar-connections:eu-central-1:123456789012:connection/0f5b706a-1a1d-46c5-86b6-f177321bcfb2", "author-id": "Mary Major" }, "state": "FAILED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": { "failedActionCount": 1, "failedActions": [ { "action": "Deploy", "additionalInformation": "Deployment <ID> failed" } ], "failedStage": "Deploy" }

Stage-level Ereignisse

Stage-level Ereignisse werden ausgegeben, wenn sich der Status einer Bühnenausführung ändert.

Ereignis „Stage STARTED“

Wenn die Ausführung einer Phase beginnt, wird ein Ereignis ausgelöst, das Benachrichtigungen mit dem folgenden Inhalt sendet. Dieses Beispiel bezieht sich auf die "myPipeline" in der us-east-1 Region benannte Pipeline für die PhaseProd.

Emitted event
{ "version": "0", "id": 01234567-EXAMPLE, "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": 123456789012, "time": "2020-01-24T22:03:07Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "version": 1.0, "execution-id": 12345678-1234-5678-abcd-12345678abcd, "start-time": "2023-10-26T13:49:39.208Z", "stage": "Prod", "state": "STARTED", "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Stage Execution State Change", "region": "us-east-1", "source": "aws.codepipeline", "time": "2021-06-24T00:45:40Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "stage": "Source", "state": "STARTED", "version": 1.0, "pipeline-execution-attempt": 0.0 }, "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "additionalAttributes": { "sourceActions": [ { "sourceActionName": "Source", "sourceActionProvider": "CodeCommit", "sourceActionVariables": { "BranchName": "main", "CommitId": "<ID>", "RepositoryName": "my-repo" } } ] } }

Ereignis „Stage STOPING“

Wenn die Ausführung einer Phase gestoppt wird, wird ein Ereignis ausgelöst, das Benachrichtigungen mit dem folgenden Inhalt sendet. Dieses Beispiel bezieht sich auf die myPipeline in der us-west-2 Region benannte Pipeline für die PhaseDeploy.

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:02:20Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "stage": "Deploy", "state": "STOPPING", "version": 3.0, "pipeline-execution-attempt": 1.0 } }

Ereignis „Stage STOPED“

Wenn die Ausführung einer Phase gestoppt wird, gibt sie ein Ereignis aus, das Benachrichtigungen mit dem folgenden Inhalt sendet. Dieses Beispiel bezieht sich auf die myPipeline in der us-west-2 Region benannte Pipeline für die PhaseDeploy.

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:21:39Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "stage": "Deploy", "state": "STOPPED", "version": 3.0, "pipeline-execution-attempt": 1.0 } }

Die Phase wurde nach dem Ereignis „Wiederholungsversuch“ wieder aufgenommen

Wenn die Ausführung einer Phase wieder aufgenommen wird und eine Phase erneut versucht wurde, wird ein Ereignis ausgelöst, das Benachrichtigungen mit dem folgenden Inhalt sendet.

Wenn eine Phase erneut versucht wurde, wird das stage-last-retry-attempt-time Feld angezeigt, wie im Beispiel gezeigt. Das Feld wird bei allen Etappenereignissen angezeigt, wenn ein Wiederholungsversuch durchgeführt wurde.

Anmerkung

Das stage-last-retry-attempt-time Feld wird in allen nachfolgenden Etappenereignissen angezeigt, nachdem eine Stufe erneut versucht wurde.

{ "version": "0", "id": "38656bcd-a798-5f92-c738-02a71be484e1", "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2023-10-26T14:14:56Z", "region": "eu-central-1", "resources": [ "arn:aws:codepipeline:eu-central-1:123456789012:BuildFromTag" ], "detail": { "pipeline": "BuildFromTag", "execution-id": "05dafb6a-5a56-4951-a858-968795364846", "stage-last-retry-attempt-time": "2023-10-26T14:14:56.305Z", "stage": "Build", "state": "RESUMED", "version": 32.0, "pipeline-execution-attempt": 2.0 } }

Action-level Ereignisse

Action-level Ereignisse werden ausgelöst, wenn sich der Status einer Aktionsausführung ändert.

Ereignis „Aktion GESTARTET“

Wenn eine Aktionsausführung beginnt, wird ein Ereignis ausgelöst, das Benachrichtigungen mit dem folgenden Inhalt sendet. Dieses Beispiel bezieht sich auf die myPipeline in der us-east-1 Region benannte Pipeline für die BereitstellungsaktionmyAction.

Emitted event
{ "version": "0", "id": 01234567-EXAMPLE, "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": 123456789012, "time": "2020-01-24T22:03:07Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": 12345678-1234-5678-abcd-12345678abcd, "start-time": "2023-10-26T13:51:09.981Z", "stage": "Prod", "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "myAction", "state": "STARTED", "type": { "owner": "AWS", "category": "Deploy", "provider": "CodeDeploy", "version": "1" }, "version": 2.0 "pipeline-execution-attempt": 1.0 "input-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-east-1-BUCKETEXAMPLE", "key": "myPipeline/SourceArti/KEYEXAMPLE" } } ] } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Action Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:45:44Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Deploy", "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "input-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-east-1-EXAMPLE", "key": "myPipeline/SourceArti/EXAMPLE" } } ], "state": "STARTED", "region": "us-east-1", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "additionalAttributes": {} }

Ereignis „Aktion ERFOLGREICH“

Wenn eine Aktion erfolgreich ausgeführt wird, wird ein Ereignis ausgelöst, das Benachrichtigungen mit dem folgenden Inhalt sendet. Dieses Beispiel bezieht sich auf die "myPipeline" in der us-west-2 Region benannte Pipeline für die Quellaktion. "Source" Für diesen Ereignistyp gibt es zwei verschiedene region Felder. Das region Ereignisfeld gibt die Region für das Pipeline-Ereignis an. Das region Feld unter dem detail Abschnitt gibt die Region für die Aktion an.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:03:11Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Source", "execution-result": { "external-execution-url": "https://us-west-2.console.aws.amazon.com/codecommit/home#/repository/my-repo/commit/8cf40f2EXAMPLE", "external-execution-summary": "Added LICENSE.txt", "external-execution-id": "8cf40fEXAMPLE" }, "output-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-west-2-BUCKETEXAMPLE", "key": "myPipeline/SourceArti/KEYEXAMPLE" } } ], "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Source", "state": "SUCCEEDED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeCommit", "category": "Source", "version": "1" }, "version": 3.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Action Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:45:44Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:ACCOUNT:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "arn:aws:codepipeline:us-west-2:123456789012:myPipeline", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Source", "execution-result": { "external-execution-url": "https://us-west-2.console.aws.amazon.com/codecommit/home#/repository/my-repo/commit/8cf40f2EXAMPLE", "external-execution-summary": "Edited index.html", "external-execution-id": "36ab3ab7EXAMPLE" }, "output-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-west-2-EXAMPLE", "key": "myPipeline/SourceArti/EXAMPLE" } } ], "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Source", "state": "SUCCEEDED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeCommit", "category": "Source", "version": "1" }, "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": {} }

Ereignis „Aktion FEHLGESCHLAGEN“

Wenn eine Aktionsausführung fehlschlägt, wird ein Ereignis ausgelöst, das Benachrichtigungen mit dem folgenden Inhalt sendet. Dieses Beispiel bezieht sich auf die "myPipeline" in der us-west-2 Region benannte Pipeline für die Aktion"Deploy".

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:55:43Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Deploy", "execution-result": { "external-execution-url": "https://us-west-2.console.aws.amazon.com/codedeploy/home?#/deployments/<ID>", "external-execution-summary": "Deployment <ID> failed", "external-execution-id": "<ID>", "error-code": "JobFailed" }, "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "state": "FAILED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 4.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Action Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:46:16Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "stage": "Deploy", "execution-result": { "external-execution-url": "https://console.aws.amazon.com/codedeploy/home?region=us-west-2#/deployments/<ID>", "external-execution-summary": "Deployment <ID> failed", "external-execution-id": "<ID>", "error-code": "JobFailed" }, "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "state": "FAILED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 13.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": { "additionalInformation": "Deployment <ID> failed" } }

Aktion ABANDONED, Ereignis

Wenn eine Aktionsausführung abgebrochen wird, wird ein Ereignis ausgelöst, das Benachrichtigungen mit dem folgenden Inhalt sendet. Dieses Beispiel bezieht sich auf die "myPipeline" in der us-west-2 Region benannte Pipeline für die Aktion"Deploy".

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:21:39Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "stage": "Deploy", "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "state": "ABANDONED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 3.0, "pipeline-execution-attempt": 1.0 } }

Erstellen Sie eine Regel, die bei einem Pipeline-Ereignis eine Benachrichtigung sendet

Eine Regel überwacht bestimmte Ereignisse und leitet sie dann an von Ihnen gewählte AWS Ziele weiter. Sie können eine Regel erstellen, die eine AWS Aktion automatisch ausführt, wenn eine andere AWS Aktion stattfindet, oder eine Regel, die eine AWS Aktion regelmäßig nach einem festgelegten Zeitplan ausführt.

Eine Benachrichtigung senden, wenn sich der Pipeline-Status ändert (Konsole)

Diese Schritte zeigen, wie Sie mithilfe der EventBridge Konsole eine Regel zum Senden von Benachrichtigungen über Änderungen in erstellen CodePipeline.

Um eine EventBridge Regel zu erstellen, die auf Ihre Pipeline mit einer Amazon S3-Quelle abzielt
  1. Öffnen Sie die EventBridge Amazon-Konsole unter https://console.aws.amazon.com/events/.

  2. Wählen Sie im Navigationsbereich Regeln aus. Lassen Sie den Standardbus ausgewählt oder wählen Sie einen Event-Bus. Wählen Sie Regel erstellen aus.

  3. Geben Sie im Feld Name einen Namen für Ihre Regel ein.

  4. Wählen Sie unter Regeltyp die Option Regel mit einem Ereignismuster aus. Wählen Sie Weiter aus.

  5. Wählen Sie unter Ereignismuster die Option AWS Dienste aus.

  6. Wählen Sie in der Dropdown-Liste Event Type die Ebene der Statusänderung für die Benachrichtigung aus.

    • Wählen Sie für eine Regel, die für Ereignisse auf Pipeline-Ebene gilt, die Option CodePipeline Pipeline Execution State Change aus.

    • Für eine Regel, die für Ereignisse auf Etappenebene gilt, wählen Sie CodePipeline Stage Execution State Change aus.

    • Für eine Regel, die für Ereignisse auf Aktionsebene gilt, wählen Sie CodePipeline Action Execution State Change aus.

  7. Geben Sie die Änderungen an, für die die Regel gilt:

    • Wählen Sie für eine Regel, die für alle Statusänderungen gilt, Any state aus.

    • Wählen Sie für eine Regel, die nur für einige Statusänderungen gilt, Specific state(s) und dann einen oder mehrere Statuswerte aus der Liste aus.

  8. Für Ereignismuster, die detaillierter sind, als es die Selektoren zulassen, können Sie auch die Option „Muster bearbeiten“ im Fenster „Ereignismuster“ verwenden, um ein Ereignismuster im JSON-Format festzulegen.

    Anmerkung

    Wenn nicht anders angegeben, wird das Ereignismuster für alle pipelines/stages /actions und Status erstellt.

    Für detailliertere Ereignismuster können Sie die folgenden Beispielereignismuster kopieren und in das Fenster „Event-Muster“ einfügen.

    • Beispiel

      Verwenden Sie dieses Beispiel-Ereignismuster, um fehlgeschlagene Bereitstellungs- und Erstellungsaktionen in allen Pipelines zu erfassen.

      { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Action Execution State Change" ], "detail": { "state": [ "FAILED" ], "type": { "category": ["Deploy", "Build"] } } }
    • Beispiel

      Verwenden Sie dieses Beispiel-Ereignismuster, um alle abgelehnten oder fehlgeschlagenen Genehmigungsaktionen in allen Pipelines zu erfassen.

      { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Action Execution State Change" ], "detail": { "state": [ "FAILED" ], "type": { "category": ["Approval"] } } }
    • Beispiel

      Verwenden Sie diese Beispiel-Ereignismuster, um alle Ereignisse in den angegebenen Pipelines zu erfassen.

      { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Pipeline Execution State Change", "CodePipeline Action Execution State Change", "CodePipeline Stage Execution State Change" ], "detail": { "pipeline": ["myPipeline", "my2ndPipeline"] } }
  9. Wählen Sie Weiter aus.

  10. Wählen Sie unter Zieltypen die Option AWS Service aus.

  11. Wählen Sie unter Ziel auswählen die Option CodePipeline. Geben Sie im Feld Pipeline-ARN den Pipeline-ARN für die Pipeline ein, die nach dieser Regel gestartet werden soll.

    Anmerkung

    Um den Pipeline-ARN zu erhalten, führen Sie den Befehl get-pipeline aus. Der Pipeline-ARN wird in der Ausgabe angezeigt. Er wird in folgendem Format erstellt:

    arn:aws:codepipeline:: region account pipeline-name

    Pipeline-Beispiel-ARN:

    arn: aws: codepipeline: us-east- 2:80398 EXAMPLE:MyFirstPipeline

  12. So erstellen oder spezifizieren Sie eine IAM-Servicerolle, die EventBridge Berechtigungen zum Aufrufen des mit Ihrer Regel verknüpften Ziels gewährt (in diesem Fall lautet das Ziel): EventBridge CodePipeline

    • Wählen Sie Neue Rolle für diese spezifische Ressource erstellen aus, um eine Servicerolle zu erstellen, die Ihnen EventBridge Berechtigungen zum Starten Ihrer Pipeline-Ausführungen gewährt.

    • Wählen Sie Bestehende Rolle verwenden aus, um eine Servicerolle einzugeben, die Ihnen EventBridge Berechtigungen zum Starten Ihrer Pipeline-Ausführungen erteilt.

  13. Wählen Sie Weiter aus.

  14. Wählen Sie auf der Seite „Tags“ die Option Weiter aus.

  15. Überprüfen Sie auf der Seite Überprüfen und erstellen die Regelkonfiguration. Wenn Sie mit der Regel zufrieden sind, klicken Sie auf Create rule (Regel erstellen).

Eine Benachrichtigung senden, wenn sich der Pipeline-Status ändert (CLI)

Diese Schritte zeigen, wie Sie mithilfe der CLI eine CloudWatch Ereignisregel erstellen, um Benachrichtigungen über Änderungen in zu senden CodePipeline.

Um die zum Erstellen einer Regel AWS CLI zu verwenden, rufen Sie den put-rule Befehl auf und geben Sie Folgendes an:

  • Einen Namen, der die von Ihnen erstellte Regel eindeutig bezeichnet. Dieser Name muss in allen Pipelines, die Sie für Ihr AWS Konto erstellen CodePipeline , eindeutig sein.

  • Das Ereignismuster für die Quelle und von der Regel verwendete Detailfelder. Weitere Informationen finden Sie unter Amazon EventBridge und Event Patterns.

Um eine EventBridge Regel mit CodePipeline als Ereignisquelle zu erstellen
  1. Rufen Sie den Befehl put-rule auf, um eine Regel zu erstellen, die das Ereignismuster angibt. (Gültige Status finden Sie in den vorherigen Tabellen.)

    Mit dem folgenden Beispielbefehl wird eine Regel --event-pattern mit dem Namen erstellt"MyPipelineStateChanges", die das CloudWatch Ereignis ausgibt, wenn eine Pipelineausführung für die Pipeline mit dem Namen „MyPipeline“ fehlschlägt.

    aws events put-rule --name "MyPipelineStateChanges" --event-pattern "{\"source\":[\"aws.codepipeline\"],\"detail-type\":[\"CodePipeline Pipeline Execution State Change\"],\"detail\":{\"pipeline\":[\"myPipeline\"],\"state\":[\"FAILED\"]}}"
  2. Rufen Sie den put-targets Befehl auf und geben Sie die folgenden Parameter ein:

    • Der Parameter --rule wird für den rule_name verwendet, den Sie mit put-rule erstellt haben.

    • Der --targets Parameter wird zusammen mit der Liste Id des Ziels in der Liste der Ziele und der Liste ARN des Amazon SNS-Themas verwendet.

    Der folgende Beispielbefehl legt fest, dass für die Regel mit dem Namen MyPipelineStateChanges die Ziel-Id aus der Nummer 1 besteht. Dies bedeutet, dass in einer Liste mit Zielen für die Regel dieses Ziel 1 ist. Der Beispielbefehl gibt auch ein Beispiel ARN für das Amazon SNS-Thema an.

    aws events put-targets --rule MyPipelineStateChanges --targets Id=1,Arn=arn:aws:sns:us-west-2:11111EXAMPLE:MyNotificationTopic
  3. Fügen Sie Berechtigungen hinzu EventBridge , um den angegebenen Zieldienst zum Aufrufen der Benachrichtigung zu verwenden. Weitere Informationen finden Sie unter Verwenden ressourcenbasierter Richtlinien für Amazon. EventBridge