Lebenszyklus-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.

Lebenszyklus-Hooks für Amazon-ECS-Servicebereitstellungen

Wenn eine Bereitstellung beginnt, durchläuft sie Lebenszyklusphasen. Diese Phasen können sich z. B. im Status IN_PROGRESS oder SUCCESSFUL befinden. Sie können Lebenszyklus-Hooks verwenden. Dabei handelt es sich um Lambda-Funktionen, die Amazon ECS in Ihrem Namen in bestimmten Lebenszyklusphasen ausführt. Diese Funktionen können eine der Folgenden sein:

  • Eine asynchrone API, die die Zustandsprüfung innerhalb von 15 Minuten validiert.

  • Eine Abfrage-API, die einen weiteren asynchronen Prozess einleitet, der den Abschluss des Lebenszyklus-Hook bewertet.

Nachdem die Funktion die Ausführung abgeschlossen hat, muss sie einen hookStatus zurückgeben, damit die Bereitstellung fortgesetzt werden kann. Wenn ein hookStatus nicht zurückgegeben wird oder wenn die Funktion fehlschlägt, wird die Bereitstellung zurückgesetzt. Im Folgenden sehen Sie Werte für hookStatus:

  • 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 ein callBackDelay neben dem hookStatus zurückgegeben wird.

Das folgende Beispiel zeigt, wie ein hookStatus mit einer benutzerdefinierten Callback-Verzö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", "callBackDelay": 60 }

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

  • PRODUCTION_TRAFFIC_SHIFT

  • TEST_TRAFFIC_SHIFT

Lebenszyklus-Nutzdaten

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

Gängige Nutzdatenstruktur

Alle Nutzdaten in der Lebenszyklusphase enthalten die folgenden gemeinsamen Felder:

  • serviceArn – Der Amazon-Ressourcenname (ARN) des Service.

  • targetServiceRevisionArn – Der ARN der Ziel-Service-Revision, die bereitgestellt wird.

  • testTrafficWeights- Eine Übersicht 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.

Lebenszyklusphasen-Nutzdaten

RECONCILE_SERVICE

Diese Phase findet zu Beginn des Bereitstellungsprozesses statt, wenn der Service abgeglichen wird. Im Folgenden wird ein Beispiel für Nutzdaten 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:

  • Der primäre Aufgabensatz ist auf 0 % skaliert

PRE_SCALE_UP

Diese Phase findet statt, bevor die neuen Aufgaben hochskaliert werden. Im Folgenden wird ein Beispiel für Nutzdaten 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 Aufgaben der grünen Service-Revision sind auf 0 % skaliert

POST_SCALE_UP

Diese Phase tritt ein, nachdem die neuen Aufgaben hochskaliert wurden und fehlerfrei sind. Im Folgenden wird ein Beispiel für Nutzdaten 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 Aufgaben der grünen Service-Revision sind auf 100 % skaliert

  • Aufgaben der grünen Service-Revision sind fehlerfrei

TEST_TRAFFIC_SHIFT

Diese Phase tritt auf, wenn der Test-Datenverkehr auf Aufgaben der grünen Service-Revision umgestellt wird.

Im Folgenden wird ein Beispiel für Nutzdaten 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 Test-Datenverkehr wird derzeit auf die Aufgaben der grünen Service-Revision umgestellt.

POST_TEST_TRAFFIC_SHIFT

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

Im Folgenden wird ein Beispiel für Nutzdaten 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 Test-Datenverkehrs wurden auf die Aufgaben der grünen Service-Revision umgestellt.

PRODUCTION_TRAFFIC_SHIFT

Diese Phase tritt ein, wenn der Produktionsdatenverkehr auf die Aufgaben der grünen Service-Revision 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 Produktionsdatenverkehr wird derzeit auf die neue grüne Service-Revision umgestellt.

POST_PRODUCTION_TRAFFIC_SHIFT

Diese Phase tritt ein, wenn der Produktionsdatenverkehr vollständig auf die Aufgaben der grünen Service-Revision 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": {} }

Erwartungen in dieser Phase:

  • 100 % des Produktionsdatenverkehrs wurden auf die Aufgaben der grünen Service-Revision umgestellt.

Kategorien von Lebenszyklusphasen

Lebenszyklusphasen gliedern sich in zwei Kategorien:

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

    • PRE_SCALE_UP

    • POST_SCALE_UP

    • POST_TEST_TRAFFIC_SHIFT

    • POST_PRODUCTION_TRAFFIC_SHIFT

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

    • TEST_TRAFFIC_SHIFT

    • PRODUCTION_TRAFFIC_SHIFT

Bereitstellungsstatus während Lebenszyklus-Hooks

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

Lebenszyklusphase Bereitstellungsstatus
RECONCILE_SERVICE IN_PROGRESS
PRE_SCALE_UP IN_PROGRESS
POST_SCALE_UP IN_PROGRESS
TEST_TRAFFIC_SHIFT IN_PROGRESS
POST_TEST_TRAFFIC_SHIFT IN_PROGRESS
PRODUCTION_TRAFFIC_SHIFT IN_PROGRESS
POST_PRODUCTION_TRAFFIC_SHIFT IN_PROGRESS