Von Legacy-Systemdiagnosen zu aktualisierten Systemdiagnosen migrieren

Wenn Sie Legacy-Systemdiagnosen verwenden, wird Ihre Anwendung ab dem 15. September 2019 zwar weiterhin ausgeführt und erhält immer noch Systemdiagnosen, Sie können jedoch keine neuen Versionen der Anwendung bereitstellen.

Auf dieser Seite wird das Upgrade von Legacy-Systemdiagnosen auf geteilte Systemdiagnosen erläutert.

Typ der Systemdiagnose ermitteln

Mit dem folgenden Befehl können Sie prüfen, welchen Systemdiagnosetyp Ihre Anwendung verwendet:

gcloud app describe

Wenn die Anwendung aktualisierte Systemdiagnosen verwendet, enthält die Beschreibung die folgenden Informationen:

featureSettings:
    splitHealthChecks: true

Wichtige Unterschiede

Beachten Sie für das Upgrade auf aktualisierte Systemdiagnosen die folgenden wichtigen Unterschiede zwischen Legacy- und aktualisierten Systemdiagnosen:

  • HTTP-Anfragen für aktualisierte Systemdiagnosen werden standardmäßig nicht weitergeleitet. Im Gegensatz dazu erfolgt die Weiterleitung bei Legacy-Systemdiagnosen standardmäßig an den Pfad /_ah/health in Ihrer Anwendung.

  • Weitergeleitete aktualisierte Systemdiagnosen geben bei Fehlerfreiheit 200 OK zurück. Bei Legacy-Systemdiagnosen gilt eine Anwendung bei folgenden HTTP-Codes als fehlerfrei: 200, 301, 302, 303, 307, 401, 402, 403, 404, 405.

Wenn Sie weder einen Pfad für Aktivitätsprüfungen noch einen Pfad für Bereitschaftsprüfungen angeben, prüfen aktualisierte Systemdiagnosen standardmäßig nur, ob die VM-Instanz und der Docker-Container ausgeführt werden. Solange dies der Fall ist, empfängt die VM weiterhin Traffic und bleibt unabhängig vom internen Status der Anwendung aktiviert.

Wenn dagegen Legacy-Systemdiagnosen aktiviert sind und über den Pfad /_ah/health Ihrer Anwendung HTTP-Fehlercodes wie 5XX zurückgegeben werden, schlägt die Legacy-Systemdiagnose fehl. Die VM empfängt dann keinen Traffic mehr und wird neu gestartet.

Wenn Ihre Anwendung vom Standardverhalten der Legacy-Systemdiagnosen abhängig ist, geben Sie den Pfad für Aktivitätsprüfungen und den Pfad für Bereitschaftsprüfungen entsprechend an.

Optionen für Legacy-Systemdiagnosen konvertieren

Jede Option der Legacy-Systemdiagnosen kann für aktualisierte Systemdiagnosen wie im Folgenden dargestellt angepasst und weiterverwendet werden:

Option Beibehaltung des Verhaltens bei geteilten Systemdiagnosen
enable_health_check Wenn True festgelegt ist oder keine Angabe gemacht wurde, konfigurieren Sie für liveness_check.path und readiness_check.path einen Pfad in der Anwendung, der 200 OK zurückgibt, wenn die Anwendung fehlerfrei ausgeführt wird.
check_interval_sec Legen Sie für liveness_check.check_interval_sec und readiness_check.check_interval_sec denselben Wert fest.
timeout_sec Legen Sie für liveness_check.timeout_sec und readiness_check.timeout_sec denselben Wert fest.
unhealthy_threshold Legen Sie für readiness_check.failure_threshold denselben Wert fest.
healthy_threshold Legen Sie für liveness_check.success_threshold und readiness_check.success_threshold denselben Wert fest.
restart_threshold Legen Sie für liveness_check.failure_threshold denselben Wert fest. Der Wert der Option check_interval_sec multipliziert mit dem Wert der Option failure_threshold ist die Zeit, die für das Herunterfahren einer fehlerhaften VM benötigt wird.

Aktualisierte Systemdiagnosen aktivieren

Mit den folgenden Schritten können Sie von Legacy-Systemdiagnosen zu aktualisierten Systemdiagnosen migrieren und damit die Anzeige erhöhter 5xx-Statuscodes vermeiden:

  1. Machen Sie sich mit den wichtigen Unterschieden zwischen Legacy- und aktualisierten Systemdiagnosen vertraut.

  2. Konvertieren Sie die Optionen für Legacy-Systemdiagnosen für jede Version der Anwendung.

    Alternativ können Sie den Abschnitt liveness_check oder readiness_check in der Datei app.yaml für jede Version anpassen. Beispiele finden Sie unter Aktivitätsprüfungen und Bereitschaftsprüfungen.

  3. Führen Sie diesen Befehl aus:

    gcloud app update --split-health-checks --project [YOUR_PROJECT_ID]
  4. Wenn Sie benutzerdefinierte Einstellungen für Legacy-Systemdiagnosen verwendet haben, müssen Sie den Abschnitt health_check aus der Datei app.yaml entfernen.

  5. Stellen Sie eine neue Hauptversion Ihrer Anwendung bereit, um Aktivitäts- und Bereitschafts-Systemdiagnosen zu verwenden.