Fehlerbehebung bei der flexiblen App Engine-Bereitstellung

In diesem Dokument werden Methoden zur Fehlerbehebung für Cloud Endpoints-Bereitstellungen in flexiblen App Engine-Umgebungen erläutert. Wenn Sie von einer API-Anfrage eine Fehlermeldung erhalten, finden Sie unter Fehlerbehebung bei Antwortfehlern weitere Informationen.

Bereitstellungsfehler

In diesem Abschnitt wird beschrieben, wie Sie Fehler in Zusammenhang mit gcloud app deploy beheben.

Fehlermeldung Fehlerbehebung
Die Bereitstellung hat in der vorgesehenen Zeit keinen fehlerfreien Zustand erreicht und wird daher rückgängig gemacht. Wenn Sie glauben, dass dies unberechtigt war, können Sie die Einstellung app_start_timeout_sec im Abschnitt readiness_check anpassen.

Prüfen Sie, dass die Datei app.yaml über den Abschnitt readiness_check verfügt und für app_start_timeout_sec ein Wert festgelegt ist. Fehlt dieser Abschnitt, fügen Sie ihn ein und setzen Sie den Wert von app_start_timeout_sec auf einen Wert, der höher als der Standardwert von 300 Sekunden ist. Weitere Informationen finden Sie unter Bereitschaftsprüfungen.

Aktivieren Sie für Ihr Projekt alle Google Cloud-Dienste, die Endpoints und den ESP benötigen. Weitere Informationen finden Sie unter Erforderliche Dienste überprüfen.

Fehlermeldungen im Zusammenhang mit rollout_strategy

Wenn Sie app.yaml vor der Bereitstellung konfigurieren, müssen Sie den Abschnitt endpoints_api_service hinzufügen. Der Extensible Service Proxy (ESP) benötigt die Einstellungen, die Sie in diesem Abschnitt angeben, um die Konfiguration für Ihren Dienst abzurufen. Sie müssen entweder eine Konfigurations-ID im Feld config_id oder die Option rollout_strategy: managed angeben, jedoch nicht beide. Diese Option konfiguriert den ESP so, dass die zuletzt bereitgestellte Dienstkonfiguration verwendet wird. Wenn Sie diese Option innerhalb von 5 Minuten nach der Bereitstellung einer neuen Dienstkonfiguration angeben, erkennt der ESP die Änderung und verwendet automatisch die neue Konfiguration. Wir empfehlen, diese Option anstelle einer konkreten Konfigurations-ID anzugeben, die vom ESP verwendet werden soll. Beispiel:

endpoints_api_service:
  name: example-project-12345.appspot.com
  rollout_strategy: managed

Fehlen im Abschnitt endpoints_api_service die Informationen, die der ESP benötigt, um eine Dienstkonfiguration zu erhalten, wird eine der folgenden Meldungen angezeigt:

Fehlermeldung Fehlerbehebung
config_id ist verboten, wenn rollout_strategy auf "managed" festgelegt ist Sie können nicht gleichzeitig eine Konfigurations-ID und rollout_strategy: managed angeben. Solange Sie keinen Grund für die Verwendung einer bestimmten Konfigurations-ID haben, sollten Sie config_id: [YOUR_CONFIG_ID] aus app.yaml entfernen und gcloud app deploy noch einmal ausführen.
config_id muss angegeben werden, wenn rollout_strategy nicht angegeben oder auf "fixed" festgelegt ist Diese Fehlermeldung wird angezeigt, wenn app.yaml kein rollout_strategy: managed enthält oder rollout_strategy auf fixed festgelegt ist und keine Konfigurations-ID angegeben ist. Solange Sie keinen Grund für die Verwendung einer bestimmten Konfigurations-ID haben, sollten Sie rollout_strategy: managed zum Abschnitt endpoints_api_service in der app.yaml hinzufügen und gcloud app deploy noch einmal ausführen.

Logs für eine Instanz abrufen

In den Absturz- und Systemlogs für App Engine finden Sie Informationen darüber, warum die Anwendung nicht gestartet werden konnte oder nicht ordnungsgemäß funktioniert. Weitere Informationen zum Debuggen finden Sie im Endpoints-Log.

  1. Stellen Sie in der Google Cloud Console eine SSH-Verbindung zu Ihrer virtuellen Maschine her. Weitere Informationen finden Sie unter Verbindung zu einer Instanz herstellen.

  2. Verwenden Sie einen Texteditor wie tail:

     tail -f /var/log/nginx/error.log
    

Nächste Schritte