Beispiel für Build-Benachrichtigungen für CodeBuild - AWS CodeBuild

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 für Build-Benachrichtigungen für CodeBuild

Amazon CloudWatch Events bietet integrierte Unterstützung für AWS CodeBuild. CloudWatch Events ist ein Stream von Systemereignissen, die Änderungen in Ihren - AWS Ressourcen beschreiben. Mit CloudWatch Events schreiben Sie deklarative Regeln, um Ereignisse von Interesse automatisierten Aktionen zuzuordnen, die durchgeführt werden sollen. In diesem Beispiel werden Amazon CloudWatch Events und Amazon Simple Notification Service (Amazon SNS) verwendet, um Build-Benachrichtigungen an Abonnenten zu senden, wenn Builds erfolgreich sind, fehlschlagen, von einer Build-Phase in eine andere wechseln oder eine beliebige Kombination dieser Ereignisse verwenden.

Wichtig

Das Ausführen dieses Beispiels kann zu Gebühren für Ihr AWS Konto führen. Dazu gehören mögliche Gebühren für CodeBuild und für AWS Ressourcen und Aktionen im Zusammenhang mit Amazon CloudWatch und Amazon SNS . Weitere Informationen finden Sie unter -CodeBuild Preise, Amazon CloudWatch-Preise und Amazon SNS-Preise.

Ausführen des Beispiels

So führen Sie das Beispiel aus
  1. Wenn Sie in Amazon SNS bereits ein Thema eingerichtet und abonniert haben, das Sie für dieses Beispiel verwenden möchten, fahren Sie mit Schritt 4 fort. Wenn Sie anstelle eines - AWS Stammkontos oder eines Administratorbenutzers einen IAM-Benutzer für die Arbeit mit Amazon SNS verwenden, fügen Sie dem Benutzer (oder der IAM-Gruppe, der der Benutzer zugeordnet ist) die folgende Anweisung hinzu (zwischen ### BEGIN ADDING STATEMENT HERE und ### END ADDING STATEMENT HERE ###). Die Verwendung eines - AWS Stammkontos wird nicht empfohlen. Diese Anweisung ermöglicht das Anzeigen, Erstellen, Abonnieren und Testen des Sendens von Benachrichtigungen an Themen in Amazon SNS . Auslassungspunkte (...) werden zur Abkürzung verwendet und weisen auf die Stellen hin, an denen die Anweisung hinzugefügt wird. Entfernen Sie keine Anweisungen und geben Sie die Auslassungspunkte nicht in die vorhandene Richtlinie ein.

    { "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Action": [ "sns:CreateTopic", "sns:GetTopicAttributes", "sns:List*", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe" ], "Resource": "*", "Effect": "Allow" }, ### END ADDING STATEMENT HERE ### ... ], "Version": "2012-10-17" }
    Anmerkung

    Die IAM-Entität, die diese Richtlinie ändert, muss in IAM über die Berechtigung zum Ändern von Richtlinien verfügen.

    Weitere Informationen finden Sie unter Bearbeiten von kundenverwalteten Richtlinien oder im Abschnitt „So bearbeiten oder löschen Sie eine Inline-Richtlinie für eine Gruppe, einen Benutzer oder eine Rolle“ unter Arbeiten mit Inline-Richtlinien (Konsole) im IAM-Benutzerhandbuch.

  2. Erstellen oder identifizieren Sie ein Thema in Amazon SNS AWS CodeBuild .verwendet CloudWatch Ereignisse, um Build-Benachrichtigungen über Amazon SNS an dieses Thema zu senden.

    Erstellen Sie ein Thema wie folgt:

    1. Öffnen Sie die Amazon SNS-Konsole unter https://console.aws.amazon.com/sns.

    2. Wählen Sie Thema erstellen aus.

    3. Geben Sie unter Create new topic (Neues Thema erstellen) für Topic name (Themenname) einen Namen für das Thema ein (z. B. CodeBuildDemoTopic). (Wenn Sie einen anderen Namen verwenden, muss dieser im gesamten Beispiel verwendet werden.)

    4. Wählen Sie Thema erstellen aus.

    5. Kopieren Sie auf der Seite Themendetails: CodeBuildDemoTopic den ARN-Wert des Themas. Sie benötigen diesen Wert im nächsten Schritt.

    Weitere Informationen finden Sie unter Erstellen eines Themas im Amazon SNS-Entwicklerhandbuch.

  3. Abonnieren Sie das Thema für einen oder mehrere Empfänger, um E-Mail-Benachrichtigungen zu empfangen.

    So abonnieren Sie ein Thema für einen Empfänger:

    1. Wenn die Amazon SNS-Konsole aus dem vorherigen Schritt geöffnet ist, wählen Sie im Navigationsbereich Abonnements und dann Abonnement erstellen aus.

    2. Fügen Sie unter Create subscription (Abonnement erstellen), für Topic ARN (Thema-ARN), den Thema-ARN ein, den Sie im vorherigen Schritt kopiert haben.

    3. Wählen Sie unter Protocol (Protokoll) die Option Email (E-Mail) aus.

    4. Geben Sie für Endpoint (Endpunkt) die vollständige E-Mail-Adresse des Empfängers ein.

    5. Klicken Sie auf Create subscription (Abonnement erstellen).

    6. Amazon SNS sendet eine Bestätigungs-E-Mail für das Abonnement an den Empfänger. Um Benachrichtigungen zu erhalten, muss der Empfänger den Link Confirm subscription in der Bestätigungs-E-Mail wählen. Nachdem der Empfänger auf den Link geklickt hat und ihn erfolgreich abonniert hat, zeigt Amazon SNS eine Bestätigungsnachricht im Webbrowser des Empfängers an.

    Weitere Informationen finden Sie unter Abonnieren eines Themas im Amazon SNS-Entwicklerhandbuch.

  4. Wenn Sie einen -Benutzer anstelle eines - AWS Stammkontos oder eines Administratorbenutzers für die Arbeit mit CloudWatch Ereignissen verwenden, fügen Sie dem Benutzer (oder der IAM-Gruppe, der der Benutzer zugeordnet ist) die folgende Anweisung hinzu (zwischen ### BEGIN ADDING STATEMENT HERE und ### END ADDING STATEMENT HERE ###). Die Verwendung eines - AWS Stammkontos wird nicht empfohlen. Diese Anweisung wird verwendet, damit der Benutzer mit - CloudWatch Ereignissen arbeiten kann. Auslassungspunkte (...) werden zur Abkürzung verwendet und weisen auf die Stellen hin, an denen die Anweisung hinzugefügt wird. Entfernen Sie keine Anweisungen und geben Sie die Auslassungspunkte nicht in die vorhandene Richtlinie ein.

    { "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Action": [ "events:*", "iam:PassRole" ], "Resource": "*", "Effect": "Allow" }, ### END ADDING STATEMENT HERE ### ... ], "Version": "2012-10-17" }
    Anmerkung

    Die IAM-Entität, die diese Richtlinie ändert, muss in IAM über die Berechtigung zum Ändern von Richtlinien verfügen.

    Weitere Informationen finden Sie unter Bearbeiten von kundenverwalteten Richtlinien oder im Abschnitt „So bearbeiten oder löschen Sie eine eingebundene Richtlinie für eine Gruppe, einen Benutzer oder eine Rolle“ unter Arbeiten mit eingebundenen Richtlinien (Konsole) im IAM-Benutzerhandbuch.

  5. Erstellen Sie eine Regel in CloudWatch Events. Öffnen Sie dazu die - CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch.

  6. Wählen Sie im Navigationsbereich unter Events Rules aus und anschließend Create rule.

  7. Auf der Seite Step 1: Create rule page (Schritt 1: Regel erstellen), sollten bereits die Optionen Event Pattern (Ereignismuster) und Build event pattern to match events by service (Ereignismuster erstellen, um Ereignisse nach Service abzugleichen) ausgewählt sein.

  8. Wählen Sie für Servicename CodeBuild aus. Bei Event Type (Ereignistyp) sollte bereits All Events (Alle Ereignisse) ausgewählt sein.

  9. Der folgende Code sollte in Event Pattern Preview (Ereignismustervorschau) angezeigt werden:

    { "source": [ "aws.codebuild" ] }
  10. Wählen Sie die Option Edit (Bearbeiten) und ersetzen Sie den Code in Event Pattern Preview (Ereignismustervorschau) durch eines der beiden folgenden Regelmuster.

    Das erste Regelmuster löst für die in AWS CodeBuild angegebenen Build-Projekte ein Ereignis aus, sobald ein Build gestartet oder abgeschlossen wird.

    { "source": [ "aws.codebuild" ], "detail-type": [ "CodeBuild Build State Change" ], "detail": { "build-status": [ "IN_PROGRESS", "SUCCEEDED", "FAILED", "STOPPED" ], "project-name": [ "my-demo-project-1", "my-demo-project-2" ] } }

    Nehmen Sie in der vorhergehenden Regel die folgenden Code-Änderungen nach Bedarf vor.

    • Um ein Ereignis auszulösen, sobald ein Build beginnt oder abgeschlossen ist, lassen Sie entweder alle Werte wie im build-status Array gezeigt stehen oder entfernen Sie build-status das Array vollständig.

    • Um ein Ereignis nur dann auszulösen, wenn ein Build abgeschlossen ist, entfernen Sie IN_PROGRESS aus dem build-status Array.

    • Um ein Ereignis nur dann auszulösen, wenn ein Build startet, entfernen Sie alle Werte außer IN_PROGRESS aus dem build-status Array.

    • Um Ereignisse für alle Build-Projekte auszulösen, entfernen Sie das project-name Array vollständig.

    • Um Ereignisse nur für einzelne Build-Projekte auszulösen, geben Sie den Namen des jeweiligen Build-Projekts im Array project-name an.

    Dieses zweite Regelmuster löst ein Ereignis aus, sobald bei den in AWS CodeBuild angegebenen Build-Projekten ein Build von einer Build-Phase in eine andere wechselt.

    { "source": [ "aws.codebuild" ], "detail-type": [ "CodeBuild Build Phase Change" ], "detail": { "completed-phase": [ "SUBMITTED", "PROVISIONING", "DOWNLOAD_SOURCE", "INSTALL", "PRE_BUILD", "BUILD", "POST_BUILD", "UPLOAD_ARTIFACTS", "FINALIZING" ], "completed-phase-status": [ "TIMED_OUT", "STOPPED", "FAILED", "SUCCEEDED", "FAULT", "CLIENT_ERROR" ], "project-name": [ "my-demo-project-1", "my-demo-project-2" ] } }

    Nehmen Sie in der vorhergehenden Regel die folgenden Code-Änderungen nach Bedarf vor.

    • Um ein Ereignis für jeden Build-Phasenwechsel auszulösen (wodurch bis zu neun Benachrichtigungen für jeden Build gesendet werden können), lassen Sie entweder alle Werte, wie im completed-phase-Array gezeigt, stehen oder entfernen Sie das completed-phase-Array vollständig.

    • Um Ereignisse nur für einzelne Build-Phasenänderungen auszulösen, entfernen Sie den Namen jeder Build-Phase in dem completed-phase-Array, für das Sie kein Ereignis auslösen möchten.

    • Um ein Ereignis für jede Statusänderung einer Build-Phase auszulösen, lassen Sie entweder alle Werte, wie im completed-phase-status-Array gezeigt, stehen oder entfernen Sie das completed-phase-status-Array vollständig.

    • Um Ereignisse nur für einzelne Statusänderungen von Build-Phasen auszulösen, entfernen Sie den Namen des jeweiligen Status einer Build-Phase in dem completed-phase-status-Array, für das Sie kein Ereignis auslösen möchten.

    • Um Ereignisse für alle Build-Projekte auszulösen, entfernen Sie das project-name-Array.

    • Um Ereignisse für einzelne Build-Projekte auszulösen, geben Sie den Namen des jeweiligen Build-Projekts im project-name-Array an.

    Weitere Informationen zu Ereignismustern finden Sie unter Ereignismuster im Amazon EventBridge -Benutzerhandbuch.

    Weitere Informationen zum Filtern mit Ereignismustern finden Sie unter Inhaltsbasiertes Filtern mit Ereignismustern im Amazon EventBridge -Benutzerhandbuch.

    Anmerkung

    Wenn Sie Ereignisse sowohl für Build-Statusänderungen als auch für Build-Phasenänderungen auslösen möchten, müssen Sie zwei separate Regeln erstellen: eine für Build-Statusänderungen und eine für Build-Phasenänderungen. Wenn Sie versuchen, beide Regeln zu einer einzigen Regel zusammenzufassen, führt die kombinierte Regel ggf. zu unerwarteten Ergebnissen oder funktioniert ggf. gar nicht mehr.

    Wenn Sie mit dem Ersetzen des Codes fertig sind, wählen Sie Save (Speichern) aus.

  11. Wählen Sie für Targets die Option Add target aus.

  12. Wählen Sie in der Liste der Ziele SNS topic aus.

  13. Als Topic wählen Sie das Thema, das Sie zuvor identifiziert oder erstellt haben.

  14. Erweitern Sie Configure input und wählen Sie dann Input Transformer aus.

  15. Geben Sie im Feld Input Path (Eingabepfad) einen der folgenden Eingabepfade ein.

    Geben Sie für eine Regel mit einem detail-type-Wert von CodeBuild Build State Change Folgendes ein.

    {"build-id":"$.detail.build-id","project-name":"$.detail.project-name","build-status":"$.detail.build-status"}

    Geben Sie für eine Regel mit einem detail-type-Wert von CodeBuild Build Phase Change Folgendes ein.

    {"build-id":"$.detail.build-id","project-name":"$.detail.project-name","completed-phase":"$.detail.completed-phase","completed-phase-status":"$.detail.completed-phase-status"}

    Weitere Informationen finden Sie unter Eingabeformat-Referenz für Build-Benachrichtigungen.

  16. Geben Sie im Feld Input Template (Eingabevorlage) eine der folgenden Eingabevorlagen ein.

    Geben Sie für eine Regel mit einem detail-type-Wert von CodeBuild Build State Change Folgendes ein.

    "Build '<build-id>' for build project '<project-name>' has reached the build status of '<build-status>'."

    Geben Sie für eine Regel mit einem detail-type-Wert von CodeBuild Build Phase Change Folgendes ein.

    "Build '<build-id>' for build project '<project-name>' has completed the build phase of '<completed-phase>' with a status of '<completed-phase-status>'."
  17. Wählen Sie Details konfigurieren.

  18. Geben Sie auf der Seite Step 2: Configure rule details (Schritt 2: Konfigurieren von Regeldetails) einen Namen ein und eine optionale Beschreibung ein. Lassen Sie unter Status die Option Enabled (Aktiviert) ausgewählt.

  19. Wählen Sie Regel erstellen aus.

  20. Erstellen Sie Build-Projekte, führen Sie die Builds aus und zeigen Sie Build-Informationen an.

  21. Vergewissern Sie CodeBuild sich, dass jetzt erfolgreich Build-Benachrichtigungen sendet. Überprüfen Sie beispielsweise, ob sich die Build-Benachrichtigungs-E-Mails jetzt in Ihrem Posteingang befinden.

Um das Verhalten einer Regel zu ändern, wählen Sie in der CloudWatch Konsole die Regel aus, die Sie ändern möchten, wählen Sie Aktionen und dann Bearbeiten aus. Nehmen Sie Änderungen an der Regel vor, wählen Sie Configure details (Details konfigurieren), und klicken Sie dann auf Update rule (Regel aktualisieren).

Um die Verwendung einer Regel zum Senden von Build-Benachrichtigungen zu beenden, wählen Sie in der CloudWatch Konsole die Regel aus, die Sie nicht mehr verwenden möchten, wählen Sie Aktionen und dann Deaktivieren aus.

Um eine Regel vollständig zu löschen, wählen Sie in der CloudWatch Konsole die Regel aus, die Sie löschen möchten, wählen Sie Aktionen und dann Löschen aus.

Zugehörige Ressourcen

Eingabeformat-Referenz für Build-Benachrichtigungen

CloudWatch liefert Benachrichtigungen im JSON-Format.

Benachrichtigungen zu Statusänderungen von Builds verwenden das folgende Format:

{ "version": "0", "id": "c030038d-8c4d-6141-9545-00ff7b7153EX", "detail-type": "CodeBuild Build State Change", "source": "aws.codebuild", "account": "123456789012", "time": "2017-09-01T16:14:28Z", "region": "us-west-2", "resources":[ "arn:aws:codebuild:us-west-2:123456789012:build/my-sample-project:8745a7a9-c340-456a-9166-edf953571bEX" ], "detail":{ "build-status": "SUCCEEDED", "project-name": "my-sample-project", "build-id": "arn:aws:codebuild:us-west-2:123456789012:build/my-sample-project:8745a7a9-c340-456a-9166-edf953571bEX", "additional-information": { "artifact": { "md5sum": "da9c44c8a9a3cd4b443126e823168fEX", "sha256sum": "6ccc2ae1df9d155ba83c597051611c42d60e09c6329dcb14a312cecc0a8e39EX", "location": "arn:aws:s3:::codebuild-123456789012-output-bucket/my-output-artifact.zip" }, "environment": { "image": "aws/codebuild/standard:5.0", "privileged-mode": false, "compute-type": "BUILD_GENERAL1_SMALL", "type": "LINUX_CONTAINER", "environment-variables": [] }, "timeout-in-minutes": 60, "build-complete": true, "initiator": "MyCodeBuildDemoUser", "build-start-time": "Sep 1, 2017 4:12:29 PM", "source": { "location": "codebuild-123456789012-input-bucket/my-input-artifact.zip", "type": "S3" }, "logs": { "group-name": "/aws/codebuild/my-sample-project", "stream-name": "8745a7a9-c340-456a-9166-edf953571bEX", "deep-link": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logEvent:group=/aws/codebuild/my-sample-project;stream=8745a7a9-c340-456a-9166-edf953571bEX" }, "phases": [ { "phase-context": [], "start-time": "Sep 1, 2017 4:12:29 PM", "end-time": "Sep 1, 2017 4:12:29 PM", "duration-in-seconds": 0, "phase-type": "SUBMITTED", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:12:29 PM", "end-time": "Sep 1, 2017 4:13:05 PM", "duration-in-seconds": 36, "phase-type": "PROVISIONING", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:05 PM", "end-time": "Sep 1, 2017 4:13:10 PM", "duration-in-seconds": 4, "phase-type": "DOWNLOAD_SOURCE", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:10 PM", "end-time": "Sep 1, 2017 4:13:10 PM", "duration-in-seconds": 0, "phase-type": "INSTALL", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:10 PM", "end-time": "Sep 1, 2017 4:13:10 PM", "duration-in-seconds": 0, "phase-type": "PRE_BUILD", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:10 PM", "end-time": "Sep 1, 2017 4:14:21 PM", "duration-in-seconds": 70, "phase-type": "BUILD", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:14:21 PM", "end-time": "Sep 1, 2017 4:14:21 PM", "duration-in-seconds": 0, "phase-type": "POST_BUILD", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:14:21 PM", "end-time": "Sep 1, 2017 4:14:21 PM", "duration-in-seconds": 0, "phase-type": "UPLOAD_ARTIFACTS", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:14:21 PM", "end-time": "Sep 1, 2017 4:14:26 PM", "duration-in-seconds": 4, "phase-type": "FINALIZING", "phase-status": "SUCCEEDED" }, { "start-time": "Sep 1, 2017 4:14:26 PM", "phase-type": "COMPLETED" } ] }, "current-phase": "COMPLETED", "current-phase-context": "[]", "version": "1" } }

Benachrichtigungen zu Phasenänderungen von Builds verwenden das folgende Format:

{ "version": "0", "id": "43ddc2bd-af76-9ca5-2dc7-b695e15adeEX", "detail-type": "CodeBuild Build Phase Change", "source": "aws.codebuild", "account": "123456789012", "time": "2017-09-01T16:14:21Z", "region": "us-west-2", "resources":[ "arn:aws:codebuild:us-west-2:123456789012:build/my-sample-project:8745a7a9-c340-456a-9166-edf953571bEX" ], "detail":{ "completed-phase": "COMPLETED", "project-name": "my-sample-project", "build-id": "arn:aws:codebuild:us-west-2:123456789012:build/my-sample-project:8745a7a9-c340-456a-9166-edf953571bEX", "completed-phase-context": "[]", "additional-information": { "artifact": { "md5sum": "da9c44c8a9a3cd4b443126e823168fEX", "sha256sum": "6ccc2ae1df9d155ba83c597051611c42d60e09c6329dcb14a312cecc0a8e39EX", "location": "arn:aws:s3:::codebuild-123456789012-output-bucket/my-output-artifact.zip" }, "environment": { "image": "aws/codebuild/standard:5.0", "privileged-mode": false, "compute-type": "BUILD_GENERAL1_SMALL", "type": "LINUX_CONTAINER", "environment-variables": [] }, "timeout-in-minutes": 60, "build-complete": true, "initiator": "MyCodeBuildDemoUser", "build-start-time": "Sep 1, 2017 4:12:29 PM", "source": { "location": "codebuild-123456789012-input-bucket/my-input-artifact.zip", "type": "S3" }, "logs": { "group-name": "/aws/codebuild/my-sample-project", "stream-name": "8745a7a9-c340-456a-9166-edf953571bEX", "deep-link": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logEvent:group=/aws/codebuild/my-sample-project;stream=8745a7a9-c340-456a-9166-edf953571bEX" }, "phases": [ { "phase-context": [], "start-time": "Sep 1, 2017 4:12:29 PM", "end-time": "Sep 1, 2017 4:12:29 PM", "duration-in-seconds": 0, "phase-type": "SUBMITTED", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:12:29 PM", "end-time": "Sep 1, 2017 4:13:05 PM", "duration-in-seconds": 36, "phase-type": "PROVISIONING", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:05 PM", "end-time": "Sep 1, 2017 4:13:10 PM", "duration-in-seconds": 4, "phase-type": "DOWNLOAD_SOURCE", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:10 PM", "end-time": "Sep 1, 2017 4:13:10 PM", "duration-in-seconds": 0, "phase-type": "INSTALL", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:10 PM", "end-time": "Sep 1, 2017 4:13:10 PM", "duration-in-seconds": 0, "phase-type": "PRE_BUILD", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:10 PM", "end-time": "Sep 1, 2017 4:14:21 PM", "duration-in-seconds": 70, "phase-type": "BUILD", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:14:21 PM", "end-time": "Sep 1, 2017 4:14:21 PM", "duration-in-seconds": 0, "phase-type": "POST_BUILD", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:14:21 PM", "end-time": "Sep 1, 2017 4:14:21 PM", "duration-in-seconds": 0, "phase-type": "UPLOAD_ARTIFACTS", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:14:21 PM", "end-time": "Sep 1, 2017 4:14:26 PM", "duration-in-seconds": 4, "phase-type": "FINALIZING", "phase-status": "SUCCEEDED" }, { "start-time": "Sep 1, 2017 4:14:26 PM", "phase-type": "COMPLETED" } ] }, "completed-phase-status": "SUCCEEDED", "completed-phase-duration-seconds": 4, "version": "1", "completed-phase-start": "Sep 1, 2017 4:14:21 PM", "completed-phase-end": "Sep 1, 2017 4:14:26 PM" } }