CodePipeline Ereignisse überwachen - 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.

CodePipeline Ereignisse überwachen

Sie können CodePipeline Ereignisse in überwachen EventBridge, wodurch ein Stream von Echtzeitdaten aus Ihren eigenen Anwendungen, software-as-a-service (SaaS-) Anwendungen und bereitgestellt wird AWS-Services. EventBridge leitet diese Daten an Ziele wie AWS Lambda Amazon Simple Notification Service weiter. Diese Ereignisse sind identisch mit denen, die in Amazon CloudWatch Events erscheinen. 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 zugrunde liegende Service und dieselbe API, EventBridge bieten aber mehr Funktionen. Änderungen, die Sie entweder in CloudWatch Events oder vornehmen EventBridge , werden in jeder Konsole angezeigt.

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

  • Ereignismuster. Jede Regel wird als ein 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 Aktionen zu ergreifen. Wenn Sie Ihr Ziel hinzufügen, müssen Sie ihm auch Berechtigungen erteilen, 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. Weitere Informationen zum GetPipelineExecution API-Aufruf finden Sie 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 EventBridge jedes Mal, wenn sich der Status einer Ressource in Ihrem System AWS-Konto ändert, ein Ereignis. Ereignisse werden auf garantierter at-least-once Basis 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. Für verarbeitete Ereignisse, z. B. Ereignisse, die Sie über Benachrichtigungen erhalten, die Sie in der Developer Tools-Konsole konfiguriert haben, enthält die Ereignisnachricht Felder für das Ereignismuster mit einigen Variationen. Das detail-type Feld wird beispielsweise konvertiert indetailType. Weitere Informationen finden Sie unter dem PutEvents API-Aufruf in der Amazon EventBridge API-Referenz.

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

Detailtypen

Wenn Sie Ereignisse für die Ü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 Beschreibung
CodePipeline Änderung des Status der Pipeline-Ausführung 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.

Ereignisse auf Pipeline-Ebene

Ereignisse auf Pipeline-Ebene werden ausgelöst, wenn sich der Status einer Pipeline-Ausführung ändert.

Ereignis „Pipeline STARTED“

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

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 zum STOPPEN DER Pipeline

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

{ "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 SUCCEED

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 Pipeline, die myPipeline in der us-east-1 Region benannt ist.

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 in einer Phase wiederholt und erfolgreich versucht wurde, wird ein Ereignis ausgelöst, 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 die 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.

{ "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 FAILED

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

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

Pipeline FEHLGESCHLAGEN (Beispiel mit Git-Tags)

Sofern sie nicht in der Quellphase fehlschlägt, gibt sie bei einer Pipeline, die mit Triggern konfiguriert ist, 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 die 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" }

Ereignisse auf Phasenebene

Ereignisse auf Phasenebene werden ausgelöst, wenn sich der Status einer Stufenausführung ändert.

Ereignis „Phase 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 Pipeline, die "myPipeline" in der us-east-1 Region benannt ist, 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 STOPPING

Wenn die Ausführung einer Phase angehalten wird, wird ein Ereignis ausgelöst, das Benachrichtigungen mit dem folgenden Inhalt sendet. Dieses Beispiel bezieht sich auf die Pipeline, die myPipeline in der us-west-2 Region benannt ist, 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 „Phase STOPPED“

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 Pipeline, die myPipeline in der us-west-2 Region benannt ist, 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 Wiederholungsereignis der Phase FORTGESETZT

Wenn die Ausführung einer Phase wieder aufgenommen wird und eine Phase erneut versucht wurde, wird ein Ereignis ausgelöst, das Benachrichtigungen mit folgendem 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, ob ein Wiederholungsversuch durchgeführt wurde.

Anmerkung

Das stage-last-retry-attempt-time Feld wird in allen nachfolgenden Etappenereignissen vorhanden sein, nachdem eine Phase 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 } }

Ereignisse auf Aktionsebene

Ereignisse auf Aktionsebene werden ausgelöst, wenn sich der Status einer Aktionsausführung ändert.

Ereignis „Aktion GESTARTET“

Wenn die Ausführung einer Aktion gestartet wird, 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 angegebene 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": {} }

Aktion war erfolgreich (Ereignis)

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 angegebene Pipeline und auf 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 die Ausführung einer Aktion 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 angegebene 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 ABGEBROCHENES Ereignis

Wenn die Ausführung einer Aktion 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 angegebene 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 mit 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 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.

  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 CodePipelinePipeline Execution State Change aus.

    • Wählen Sie für eine Regel, die für Ereignisse auf Phasenebene gilt, die Option CodePipelineStage Execution State Change aus.

    • Wählen Sie für eine Regel, die für Ereignisse auf Aktionsebene gilt, die Option Änderung des Ausführungsstatus der CodePipelineAktion 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. Bei Ereignismustern, 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 Staaten pipelines/stages/actions und Zustände erstellt.

    Für detailliertere Ereignismuster können Sie die folgenden Beispiel-Eventmuster kopieren und in das Fenster Ereignismuster einfügen.

    • 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"] } } }
    • 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"] } } }
    • 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.

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

  11. Wählen Sie unter Ziel auswählen die Option aus CodePipeline. Geben Sie im Feld Pipeline-ARN den Pipeline-ARN für die Pipeline ein, die mit 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 BEISPIEL: MyFirstPipeline

  12. So erstellen oder spezifizieren Sie eine IAM-Dienstrolle, 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 für den Start Ihrer Pipeline-Ausführung erteilt.

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

  13. Wählen Sie Weiter.

  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 mit der CLI eine CloudWatch Ereignisregel erstellen, um Benachrichtigungen über Änderungen 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 für alle Pipelines, die Sie erstellen und die mit Ihrem AWS Konto CodePipeline verknüpft sind, 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 namens erstellt“MyPipelineStateChanges”, die das CloudWatch Ereignis ausgibt, wenn eine Pipelineausführung für die Pipeline mit dem Namen „MyPipeline“ fehlschlägt. --event-pattern

    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 an:

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

    • Der --targets Parameter wird mit der Liste Id des Ziels in der Liste der Ziele und der Liste ARN des Amazon SNS 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 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