

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.

# Hooks für Amazon ECS-Servicebereitstellungen pausieren
<a name="pause-lifecycle-hooks"></a>

Pause-Hooks pausieren eine Amazon ECS-Servicebereitstellung in einer bestimmten Lebenszyklusphase und warten auf Ihren Anruf, `ContinueServiceDeployment` bevor die Bereitstellung fortgesetzt wird. Verwenden Sie Pause-Hooks, wenn Sie eine manuelle Genehmigung oder eine externe Validierung benötigen, bevor die Bereitstellung fortgesetzt wird.

## Wie funktionieren Pause-Hooks
<a name="pause-hooks-how-they-work"></a>

Wenn eine Bereitstellung eine Lebenszyklusphase erreicht, in der ein Pause-Hook konfiguriert ist, passiert Folgendes:

1. Amazon ECS generiert einen eindeutigen `hookId` für den Pause-Hook.

1. Amazon ECS gibt ein EventBridge Ereignis mit dem Detailtyp `ECS Hook State Change` und dem Ereignisnamen aus. `HOOK_AWAITING_ACTION`

1. Die Bereitstellung bleibt angehalten, bis Sie `ContinueServiceDeployment` mit der `hookId` Aktion oder oder aufrufen `CONTINUE` oder bis der konfigurierte `ROLLBACK` Timeout erreicht ist.

Sie können das abrufen, indem Sie anrufen`hookId`. `DescribeServiceDeployments` Die Antwort enthält ein `lifecycleHookDetails` Array mit dem Hook-Status:

```
{
    "serviceDeployments": [
        {
            "lifecycleHookDetails": [
                {
                    "hookId": "ecs-pause-e7tK9G_WRJqNF_EOMjztDXfKenlJuEUVjsNStf4WLKw",
                    "targetType": "PAUSE",
                    "status": "AWAITING_ACTION",
                    "expiresAt": "2024-01-15T12:00:00Z",
                    "timeoutAction": "ROLLBACK"
                }
            ]
        }
    ]
}
```

## Pause-Hooks konfigurieren
<a name="pause-hooks-configuring"></a>

Das folgende Beispiel zeigt eine Pause-Hook-Konfiguration in einer Servicedefinition, bei der die Bereitstellung nach Abschluss der Testverkehrsverlagerung angehalten wird:

```
{
    "deploymentConfiguration": {
        "strategy": "BLUE_GREEN",
        "lifecycleHooks": [
            {
                "targetType": "PAUSE",
                "lifecycleStages": [
                    "POST_TEST_TRAFFIC_SHIFT"
                ],
                "timeoutConfiguration": {
                    "timeoutInMinutes": 10,
                    "action": "ROLLBACK"
                }
            }
        ]
    }
}
```

### Felder für die Konfiguration
<a name="pause-hooks-configuration-fields"></a>


| Feld | Description | Zulässige Werte | Erforderlich | 
| --- | --- | --- | --- | 
| targetType | Der Typ des Hooks. Muss PAUSE für Pause-Hooks sein. | PAUSE | Ja | 
| lifecycleStages | Die Lebenszyklusphasen, in denen die Bereitstellung unterbrochen wird. | RECONCILE\_SERVICE, PRE\_SCALE\_UP, POST\_SCALE\_UP, POST\_TEST\_TRAFFIC\_SHIFT, PRE\_PRODUCTION\_TRAFFIC\_SHIFT, POST\_PRODUCTION\_TRAFFIC\_SHIFT | Ja | 
| timeoutConfiguration.timeoutInMinutes | Wie lange muss gewartet werden, bevor die Timeout-Aktion ausgeführt wird. Standard: 1.440 Minuten (24 Stunden). | 1 — 20.160 (14 Tage) | Nein | 
| timeoutConfiguration.action | Die Aktion, die ergriffen werden soll, wenn das Timeout abläuft. | ROLLBACK (Standard), CONTINUE | Nein | 

## Beschränkungen
<a name="pause-hooks-constraints"></a>
+ Sie können maximal 10 Pause-Hooks und 10 Lambda-Hooks pro Service konfigurieren.
+ Pause-Hooks verwenden `hookTargetArn` oder `roleArn` nicht. Diese Felder sind nur für Lambda-Hooks vorgesehen.
+ Pause-Hooks können nicht in den `PRODUCTION_TRAFFIC_SHIFT` Phasen `TEST_TRAFFIC_SHIFT` oder konfiguriert werden.

## Fortsetzung einer angehaltenen Bereitstellung
<a name="pause-hooks-continuing"></a>

Wenn eine Bereitstellung angehalten ist (der Hook-Status „Pause“ lautet`AWAITING_ACTION`), rufen Sie `ContinueServiceDeployment` mit dem `hookId` und der Aktion auf, die Sie ausführen möchten.

Um die Bereitstellung fortzusetzen:

```
aws ecs continue-service-deployment \
    --hook-id ecs-pause-e7tK9G_WRJqNF_EOMjztDXfKenlJuEUVjsNStf4WLKw \
    --action CONTINUE
```

Um die Bereitstellung rückgängig zu machen:

```
aws ecs continue-service-deployment \
    --hook-id ecs-pause-e7tK9G_WRJqNF_EOMjztDXfKenlJuEUVjsNStf4WLKw \
    --action ROLLBACK
```

Weitere Informationen finden Sie unter [Fortsetzung der Servicebereitstellungen](continue-service-deployment.md).

## Mehrere Hooks in derselben Phase
<a name="pause-hooks-multiple-at-same-stage"></a>

Wenn mehrere Hooks in derselben Lebenszyklusphase konfiguriert werden, bleibt die Bereitstellung angehalten, bis alle Hooks in dieser Phase fortgesetzt werden. Wenn ein Hook ein Rollback auslöst, wird die gesamte Bereitstellung unabhängig vom Status anderer Hooks in dieser Phase zurückgesetzt.

Dieses Verhalten gilt, wenn sowohl Lambda-Hooks als auch Pause-Hooks in derselben Lebenszyklusphase konfiguriert werden. Die Bereitstellung wird erst fortgesetzt, wenn alle Hooks in dieser Phase erfolgreich abgeschlossen wurden oder fortgesetzt wurden.

Alle Hooks, die in derselben Lebenszyklusphase konfiguriert wurden, werden parallel ausgeführt.

## Timeout-Verhalten
<a name="pause-hooks-timeout"></a>

Wenn Sie `ContinueServiceDeployment` vor Ablauf des Timeouts nicht anrufen, ergreift Amazon ECS die konfigurierte Timeout-Aktion:
+ `ROLLBACK`(Standard) — Amazon ECS setzt die Bereitstellung auf die vorherige Service-Revision zurück.
+ `CONTINUE`- Amazon ECS setzt die Bereitstellung bis zur nächsten Lebenszyklusphase fort.

Überprüfen Sie das `expiresAt` Feld im `lifecycleHookDetails` Array der `DescribeServiceDeployments` Antwort, um zu sehen, wann das Timeout abläuft.

## Pausieren Sie Hooks bei linearen und kanarischen Bereitstellungen
<a name="pause-hooks-linear-canary"></a>

Bei linearen und kanarischen Bereitstellungen `PRE_PRODUCTION_TRAFFIC_SHIFT` werden die unter konfigurierten Pause-Hooks bei jedem Traffic-Shift-Schritt aufgerufen. Jeder Aufruf generiert einen eindeutigen`hookId`, und Sie müssen `ContinueServiceDeployment` für jeden Aufruf aufrufen.

Beispiel: Ein linearer Einsatz mit 5 Schritten zur Verkehrsverlagerung und einem Pausen-Hook an fünf `PRE_PRODUCTION_TRAFFIC_SHIFT` Pausen — einmal vor jedem Schritt. Für jede Pause ist ein separater Aufruf `ContinueServiceDeployment` mit dem entsprechenden `hookId` Befehl erforderlich.

## EventBridge Ereignisse
<a name="pause-hooks-eventbridge"></a>

Amazon ECS gibt EventBridge Ereignisse mit dem Typ „Detail`ECS Hook State Change`“ aus, wenn Pause-Hooks ihren Lebenszyklus durchlaufen. In der folgenden Tabelle werden die Namen der Ereignisse beschrieben:


| Ereignisname | Description | 
| --- | --- | 
| HOOK\_AWAITING\_ACTION | Der Hook wartet auf Ihren AnrufContinueServiceDeployment. | 
| HOOK\_SUCCEEDED | Der Hook wurde erfolgreich abgeschlossen (Sie haben ContinueServiceDeployment mit angerufenCONTINUE). | 
| HOOK\_FAILED | Der Hook ist fehlgeschlagen (Sie haben ContinueServiceDeployment mit angerufenROLLBACK). | 
| HOOK\_TIMED\_OUT | Der Hook hat zuvor eine Zeitüberschreitung erlitten, als ContinueServiceDeployment er aufgerufen wurde. | 

Das folgende Beispiel zeigt ein EventBridge Ereignis, das ausgelöst wird, wenn ein Pause-Hook auf eine Aktion wartet:

```
{
    "version": "0",
    "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "detail-type": "ECS Hook State Change",
    "source": "aws.ecs",
    "account": "123456789012",
    "time": "2024-01-15T10:00:00Z",
    "region": "us-west-2",
    "detail": {
        "eventType": "INFO",
        "eventName": "HOOK_AWAITING_ACTION",
        "hookId": "ecs-pause-e7tK9G_WRJqNF_EOMjztDXfKenlJuEUVjsNStf4WLKw",
        "hookType": "PAUSE",
        "expiresAt": "2024-01-15T12:00:00Z",
        "lifecycleStage": "POST_TEST_TRAFFIC_SHIFT",
        "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/my-cluster",
        "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/my-cluster/my-service",
        "serviceDeploymentArn": "arn:aws:ecs:us-west-2:123456789012:service-deployment/my-cluster/my-service/EZe5RNVLH6PPzHXINuP28",
        "updatedAt": "2024-01-15T10:00:00Z"
    }
}
```