Lifecycle-Hooks für Amazon ECS-Servicebereitstellungen - Amazon Elastic Container Service

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.

Lifecycle-Hooks für Amazon ECS-Servicebereitstellungen

Wenn eine Bereitstellung beginnt, durchläuft sie Lebenszyklusphasen. Diese Phasen können sich in einem Status wie IN_PROGRESS oder erfolgreich befinden. Sie können Lifecycle-Hooks verwenden, bei denen es sich um Lambda-Funktionen handelt, die Amazon ECS in Ihrem Namen in bestimmten Lebenszyklusphasen ausführt. Bei den Funktionen kann es sich um eine der folgenden Funktionen handeln:

  • Eine asynchrone API, die die Integritätsprüfung innerhalb von 15 Minuten validiert.

  • Eine Abfrage-API, die einen weiteren asynchronen Prozess initiiert, der den Abschluss des Lifecycle-Hooks bewertet.

Nachdem die Funktion die Ausführung abgeschlossen hat, muss sie a zurückgeben, damit die Bereitstellung hookStatus fortgesetzt werden kann. Wenn a nicht zurückgegeben hookStatus wird oder wenn die Funktion fehlschlägt, wird die Bereitstellung zurückgesetzt. Im Folgenden sind die hookStatus Werte aufgeführt:

  • SUCCEEDED- Die Bereitstellung wird bis zur nächsten Lebenszyklusphase fortgesetzt

  • FAILED— Die Bereitstellung wird auf die letzte erfolgreiche Bereitstellung zurückgesetzt.

  • IN_PROGRESS— Amazon ECS führt die Funktion nach kurzer Zeit erneut aus. Standardmäßig ist dies ein 30-Sekunden-Intervall. Dieser Wert kann jedoch angepasst werden, indem callBackDelaySeconds neben dem ein zurückgegeben wirdhookStatus.

Das folgende Beispiel zeigt, wie a hookStatus mit einer benutzerdefinierten Rückrufverzögerung zurückgegeben wird. In diesem Beispiel würde Amazon ECS diesen Hook in 60 Sekunden statt in den standardmäßigen 30 Sekunden wiederholen:

{ "hookStatus": "IN_PROGRESS", "callBackDelaySeconds": 60 }

Wenn ein Rollback stattfindet, führt Amazon ECS die Lifecycle-Hooks für die folgenden Lebenszyklusphasen aus:

  • PRODUCTION_TRAFFIC_SHIFT

  • TRAFFIC SHIFT TESTEN

Nutzlasten im Lebenszyklus

Wenn Sie Lifecycle-Hooks für Ihre ECS-Servicebereitstellungen konfigurieren, ruft Amazon ECS diese Hooks in bestimmten Phasen des Bereitstellungsprozesses auf. Jede Lebenszyklusphase stellt eine JSON-Payload mit Informationen über den aktuellen Status der Bereitstellung bereit. In diesem Dokument wird die Payload-Struktur für jede Lebenszyklusphase beschrieben.

Gemeinsame Payload-Struktur

Alle Payloads in der Lebenszyklusphase enthalten die folgenden gemeinsamen Felder:

  • serviceArn- Der Amazon-Ressourcenname (ARN) des Dienstes.

  • targetServiceRevisionArn— Der ARN der Zieldienstrevision, die bereitgestellt wird.

  • testTrafficWeights- Eine Zuordnung der Service-Revisionen ARNs zu den entsprechenden Prozentwerten des Testverkehrs in Prozent.

  • productionTrafficWeights- Eine Übersicht über die Änderung der Dienste im Vergleich ARNs zu den entsprechenden prozentualen Gewichtsanteilen für den Produktionsverkehr.

Nutzlasten in der Lebenszyklusphase

RECONCILE_SERVICE

Diese Phase findet zu Beginn des Bereitstellungsprozesses statt, wenn der Dienst abgeglichen wird. Im Folgenden wird ein Beispiel für eine Payload für diese Lebenszyklusphase gezeigt.

{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 }, "productionTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 } }

Erwartungen in dieser Phase:

  • Die primäre Aufgabenstellung liegt bei einer Skala von 0%

PRE_SCALE_UP

Diese Phase findet statt, bevor die neuen Aufgaben hochskaliert werden. Im Folgenden wird ein Beispiel für eine Payload für diese Lebenszyklusphase gezeigt.

{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }

Erwartungen in dieser Phase:

  • Die Revisionsaufgaben im Bereich Green Service liegen bei 0%

POST_SCALE_UP

Diese Phase tritt ein, nachdem die neuen Aufgaben skaliert wurden und fehlerfrei sind. Im Folgenden wird ein Beispiel für eine Payload für diese Lebenszyklusphase gezeigt.

{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }

Erwartungen in dieser Phase:

  • Die Revisionsaufgaben für grüne Dienste wurden zu 100% übernommen

  • Die Aufgaben im Rahmen der Revision des grünen Dienstes sind einwandfrei

TEST_TRAFFIC_SHIFT

Diese Phase tritt auf, wenn der Testdatenverkehr auf die Revisionsaufgaben des Green Service umgestellt wird.

Im Folgenden wird ein Beispiel für eine Payload für diese Lebenszyklusphase gezeigt.

{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 }, "productionTrafficWeights": {} }

Erwartungen in dieser Phase:

  • Der Testverkehr ist dabei, sich den Aufgaben zur Überarbeitung der grünen Dienste zuzuwenden.

POST_TEST_TRAFFIC_SHIFT

Diese Phase tritt ein, nachdem der Testdatenverkehr vollständig auf die neuen Aufgaben umgestellt wurde.

Im Folgenden wird ein Beispiel für eine Payload für diese Lebenszyklusphase gezeigt.

{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }

Erwartungen in dieser Phase:

  • 100% des Testverkehrs wurden für die Überarbeitung der Aufgaben zur Überarbeitung des grünen Dienstes verwendet.

PRODUCTION_TRAFFIC_SHIFT

Diese Phase tritt ein, wenn der Produktionsdatenverkehr auf die Revisionsaufgaben für grüne Dienste umgestellt wird.

{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 } }

Erwartungen in dieser Phase:

  • Der Produktionsverkehr wird derzeit auf die neue Version der umweltfreundlichen Dienstleistungen umgestellt.

POST_PRODUCTION_TRAFFIC_SHIFT

Diese Phase tritt ein, nachdem der Produktionsdatenverkehr vollständig auf die Revisionsaufgaben des Green Service umgestellt wurde.

{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }

In dieser Phase sind folgende Erwartungen zu erwarten:

  • 100% des Produktionsverkehrs wurden für die Überarbeitung von Umweltdienstleistungen verwendet.

Kategorien der Lebenszyklusphasen

Lebenszyklusphasen lassen sich in zwei Kategorien einteilen:

  1. Einzelne Aufrufphasen — Diese Phasen werden während einer Servicebereitstellung nur einmal aufgerufen:

    • PRE_SCALE_UP

    • POST_SCALE_UP

    • POST_TEST_TRAFFIC_SHIFT

    • TRAFFIC SHIFT NACH DER PRODUKTION

  2. Wiederkehrende Aufrufphasen — Diese Phasen können während einer Servicebereitstellung mehrfach aufgerufen werden, beispielsweise wenn ein Rollback-Vorgang stattfindet:

    • TEST_TRAFFIC_SHIFT

    • VERKEHRSVERLAGERUNG IN DER PRODUKTION

Bereitstellungsstatus während der Lifecycle-Hooks

Während der Ausführung von Lifecycle-Hooks gilt der Bereitstellungsstatus IN_PROGRESS für alle Lebenszyklusphasen.

Lebenszyklus-Phase Status der Bereitstellung
RECONCILE_SERVICE IN_PROGRESS
VOR_SKALIEREN/HOCHSKALIEREN IN_PROGRESS
POST_SCALE_UP IN_PROGRESS
TRAFFIC SHIFT TESTEN IN_PROGRESS
POST_TEST_TRAFFIC_SHIFT IN_PROGRESS
VERKEHRSVERLAGERUNG IN DER PRODUKTION IN_PROGRESS
VERKEHRSVERLAGERUNG NACH DER PRODUKTION IN_PROGRESS