Beheben von EB CLI-Fehlern - AWS Elastic Beanstalk

Beheben von EB CLI-Fehlern

In diesem Thema werden häufig auftretende Fehlermeldungen im Zusammenhang mit der EB CLI-Verwendung sowie mögliche Lösungen aufgeführt. Falls Ihnen eine Fehlermeldung angezeigt wird, die hier nicht enthalten ist, teilen Sie uns dies bitte über die Feedback-Links mit.

FEHLER: An error occurred while handling git command. Error code: 128 Error: fatal: Not a valid object name HEAD

Ursache: Diese Fehlermeldung wird angezeigt, wenn Sie ein Git-Repository initialisiert, aber noch nicht übergeben haben. Wenn der Projektordner ein Git-Repository enthält, sucht die EB CLI nach einer HEAD-Revision.

Lösung: Fügen Sie die Dateien in Ihrem Projektordner zum Staging-Bereich hinzu und führen Sie den Commit aus:

~/my-app$ git add . ~/my-app$ git commit -m "First commit"

FEHLER: This branch does not have a default environment. You must either specify an environment by typing "eb status my-env-name" or set a default environment by typing "eb use my-env-name".

Ursache: Wenn Sie in Git eine neue Verzweigung erstellen, wird dieser nicht standardmäßig einer Elastic Beanstalk-Umgebung zugewiesen.

Lösung: Führen Sie eb list aus, um eine Liste der verfügbaren Umgebungen aufzurufen. Führen Sie anschließend eb use env-name aus, um eine der verfügbaren Umgebungen zu verwenden.

FEHLER: 2.0+ Platforms require a service role. You can provide one with --service-role option

Ursache: Wenn Sie einen Umgebungsnamen mit eb create angeben (z. B. eb create my-env), erstellt die EB CLI keine Servicerolle für Sie. Ist die standardmäßige Servicerolle nicht vorhanden, wird die obige Fehlermeldung angezeigt.

Lösung: Führen Sie eb create ohne den Umgebungsnamen aus und folgen Sie den Anweisungen, um die standardmäßige Servicerolle zu erstellen.

Beheben von Bereitstellungsfehlern

Falls die Elastic Beanstalk-Bereitstellung nicht so problemlos wie geplant ausgeführt wurde, sehen Sie anstelle Ihrer Website möglicherweise die Fehlermeldung 404 (wenn die Anwendung nicht gestartet werden konnte) oder 500 (wenn die Anwendung zur Laufzeit ausgefallen ist). Zahlreiche häufig auftretende Fehler können Sie beheben, indem Sie mit der EB CLI den Status der Bereitstellung prüfen, die Protokolle anzeigen, über SSH auf die EC2-Instance zugreifen oder für die Anwendungsumgebung die entsprechende Seite in der AWS-Managementkonsole aufrufen.

So setzen Sie die EB CLI zum Beheben von Bereitstellungsfehlern ein
  1. Führen Sie eb status aus, um den Status der aktuellen Bereitstellung sowie den Zustand der EC2-Hosts anzuzeigen. Beispiel:

    $ eb status --verbose Environment details for: python_eb_app Application name: python_eb_app Region: us-west-2 Deployed Version: app-150206_035343 Environment ID: e-wa8u6rrmqy Platform: 64bit Amazon Linux 2014.09 v1.1.0 running Python 2.7 Tier: WebServer-Standard- CNAME: python_eb_app.elasticbeanstalk.com Updated: 2015-02-06 12:00:08.557000+00:00 Status: Ready Health: Green Running instances: 1 i-8000528c: InService
    Anmerkung

    Mit --verbose erhalten Sie detaillierte Informationen über den Status der ausgeführten Instances. Andernfalls werden nur allgemeine Umgebungsinformationen von eb status ausgegeben.

  2. Führen Sie eb health aus, um Zustandsinformationen zur Umgebung anzuzeigen:

    $ eb health --refresh elasticBeanstalkExa-env Degraded 2016-03-28 23:13:20 WebServer Ruby 2.1 (Puma) total ok warning degraded severe info pending unknown 5 2 0 2 1 0 0 0 instance-id status cause Overall Degraded Incorrect application version found on 3 out of 5 instances. Expected version "Sample Application" (deployment 1). i-d581497d Degraded Incorrect application version "v2" (deployment 2). Expected version "Sample Application" (deployment 1). i-d481497c Degraded Incorrect application version "v2" (deployment 2). Expected version "Sample Application" (deployment 1). i-136e00c0 Severe Instance ELB health has not been available for 5 minutes. i-126e00c1 Ok i-8b2cf575 Ok instance-id r/sec %2xx %3xx %4xx %5xx p99 p90 p75 p50 p10 Overall 646.7 100.0 0.0 0.0 0.0 0.003 0.002 0.001 0.001 0.000 i-dac3f859 167.5 1675 0 0 0 0.003 0.002 0.001 0.001 0.000 i-05013a81 161.2 1612 0 0 0 0.003 0.002 0.001 0.001 0.000 i-04013a80 0.0 - - - - - - - - - i-3ab524a1 155.9 1559 0 0 0 0.003 0.002 0.001 0.001 0.000 i-bf300d3c 162.1 1621 0 0 0 0.003 0.002 0.001 0.001 0.000 instance-id type az running load 1 load 5 user% nice% system% idle% iowait% i-d581497d t2.micro 1a 25 mins 0.16 0.1 7.0 0.0 1.7 91.0 0.1 i-d481497c t2.micro 1a 25 mins 0.14 0.1 7.2 0.0 1.6 91.1 0.0 i-136e00c0 t2.micro 1b 25 mins 0.0 0.01 0.0 0.0 0.0 99.9 0.1 i-126e00c1 t2.micro 1b 25 mins 0.03 0.08 6.9 0.0 2.1 90.7 0.1 i-8b2cf575 t2.micro 1c 1 hour 0.05 0.41 6.9 0.0 2.0 90.9 0.0 instance-id status id version ago deployments i-d581497d Deployed 2 v2 9 mins i-d481497c Deployed 2 v2 7 mins i-136e00c0 Failed 2 v2 5 mins i-126e00c1 Deployed 1 Sample Application 25 mins i-8b2cf575 Deployed 1 Sample Application 1 hour

    Im obigen Beispiel wird eine Umgebung mit fünf Instances dargestellt, in der die Bereitstellung der Version "v2" auf der dritten Instance fehlerhaft verlaufen ist. Nach der fehlgeschlagenen Bereitstellung wird die erwartete Version auf die letzte erfolgreiche Version zurückgesetzt, in diesem Falle auf "Sample Application" aus der ersten Bereitstellung. Weitere Informationen finden Sie unter Verwenden der EB-CLI zur Überwachung des Umgebungszustands.

  3. Führen Sie eb logs aus, um die Protokolle zur Anwendungsbereitstellung herunterzuladen und aufzurufen.

    $ eb logs
  4. Führen Sie eb ssh aus, um die Verbindung zur EC2-Instance, auf der die Anwendung ausgeführt wird, herzustellen und diese direkt zu überprüfen. Auf der Instance finden Sie die bereitgestellte Anwendung im Verzeichnis /opt/python/current/app und die Python-Umgebung in /opt/python/run/venv/.

  5. Führen Sie eb console aus, um die Anwendungsumgebung in der AWS-Managementkonsole anzuzeigen. Über die Weboberfläche können Sie schnell zahlreiche Bereitstellungsaspekte untersuchen, darunter Konfiguration, Status, Ereignisse und Protokolle der Anwendung. Außerdem können Sie die aktuellen oder beendeten Anwendungsversionen herunterladen, die Sie auf dem Server bereitgestellt haben.