Wie kann ich eine Dart AppEngine App debuggen?

8

Ich kann jetzt eine Dart App mit

ausführen %Vor%

und auch auf AppEngine bereitstellen und ausführen

%Vor%

Ich habe jedoch keine Möglichkeit gefunden, einen Debugger mit der Dart App zu verbinden, die auf dem Entwicklungsserver läuft.

Ich habe Ссылка gefunden, konnte aber immer noch keinen Weg finden, es zum Laufen zu bringen.

Siehe auch Ссылка

    
Günter Zöchbauer 07.11.2014, 18:35
quelle

1 Antwort

1

Update 2015-02-27

Die App kann ohne Docker ausgeführt werden und dann wie jede Dart-Befehlszeilenanwendung debuggt werden: Quelle. Ссылка

  

Der API-Server ist Teil des App Engine SDK und wir verwenden es für   Lauftests im Appengine-Paket. Wenn du es ansiehst    Ссылка   Sie werden sehen, dass es die Umgebungsvariable erwartet   APPENGINE_API_SERVER.

     

Der API-Server befindet sich in /platform/google_appengine/api_server.py

     

und nimmt eine Reihe von Argumenten. Ich habe es gerade so getestet:

     

$ $ CLOUD_SDK / Plattform / google_appengine / api_server.py \ -A   dev ~ test-application \ --api_port 4444 \ --hohe_replikation \
  --datastore_path / tmp / Datenspeicher

     

Um eine App-Engine-Anwendung außerhalb des normalen Entwicklungsservers auszuführen   erfordert, dass eine Anzahl von Umgebungsvariablen festgelegt wird. Das hat funktioniert   für meine Bewerbung:

     

$ GAE_LONG_APP_ID = Testanwendung \ GAE_MODULE_NAME = Standard \
  GAE_MODULE_VERSION = Version \ GAE_PARTITION = dev \ API_PORT = 4444 \
  API_HOST = 127.0.0.1 \ dart bin / server.dart

     

Im Darteditor können Sie keine Umgebungsvariablen für jeden festlegen   Startkonfiguration, also müssen sie vor dem Start global gesetzt werden   der Dart Editor. In WebStorm ist es möglich, die Konfiguration auszuführen   spezifische Umgebungsvariablen.

     

Diese einfache Einrichtung unterstützt natürlich nicht alles was normal ist   Entwicklungsserver-Unterstützung. Einige der Probleme sind:

     
  • Nur eine Anwendung zu der Zeit, da sie immer auf Port hört   8080 (kann leicht konfiguriert werden) * Die Benutzer-API (spottet dies   sollte nicht so schwierig sein) * Die Module API * Keine Gesundheits-Checks   (sollte kein Problem sein) * Alle HTTP Header sind direkt von der   client (keine x-appengine-headers) * Die Admin-Weboberfläche ist nicht   verfügbar * Wahrscheinlich auch andere Sachen
  •   

Das ist alles experimentell, aber es ist eine Lösung für ein einfacheres   Entwickler-Setup, dessen Ursache nicht mit der Bereitstellung übereinstimmt   Umgebung so eng wie der Entwicklungsserver.

     

Das Ausführen des API-Servers mit Docker ist auch als Image möglich   google / cloud-sdk mit dem Cloud SDK ist auf hub.docker.com.

     

Verwenden Sie die folgende Dockerfile

     

VON google / cloud-sdk EXPOSE 4444 ENTRYPOINT   ["/google-cloud-sdk/platform/google_appengine/api_server.py", \
  "-A", "dev ~ test-application", "-api_port", "4444", \
  "--high_replication", "--datastore_path", "/ tmp / datastore"]

     

Erstellen und ausführen

     

$ docker build -t api_server. $ docker run -d -p 4444: 4444 api_server

     

Ändern Sie API_HOST oben auf 192.166.59.103 (von wo auch immer Ihr Docker   Container sind) und laufen.

     

Grüße, Søren Gjesse

Update 2014-11-27

Debugging von DartEditors Debugger begann mit dem blutenden Dart build 1.8.0.edge_042017 zu arbeiten. Ich nehme an, dass das nächste dev build (wahrscheinlich 1.9.0-dev1.0 ) auch die zugehörigen Fixes enthält?

Detaillierte Schritte, wie dies funktioniert, finden Sie hier: Ссылка

  • Erstellen Sie ein benutzerdefiniertes Docker-Image mit dem neuesten Dart-dev-Build 1.8.0-dev.4.6 .
    Das Dart-Team bereitet gerade einen einfachen Weg vor, dies selbst zu tun (siehe Ссылка )

  • Installieren Sie die neueste bluting_edge auf dem Host-System (mit diesem Skript Ссылка oder manuellem Download von Ссылка )

  • Fügen Sie dies der app.yaml -Datei

  • hinzu
%Vor%

Siehe Wie Sie die Statusprüfung für die 'gcloud preview app run' deaktivieren , um weitere Einzelheiten zum Anpassen der Integritätsprüfung zu erhalten.

  • Starten Sie den Server-Code Ihrer App mit glcoud --verbosity debug app run app.yaml oder glcoud --verbosity debug app run app.yaml index.yaml

  • Warten Sie, bis der Docker-Container bereit ist (überprüfen Sie mit docker ps , wenn die Spalte Command einen Wert zeigt, der mit /dart_runtime/dart_

  • beginnt
  • Öffnen Sie den DartEditor

  • Öffnen Sie das Menü Run > Remote Connection...

    • Verbindung zu: Command-line VM

    • Host: localhost , wenn Sie nicht t use boot2docker or the IP address returned by the command boot2docker ip '

    • verwenden
    • Port: 5005

    • Select Folder... Wählen Sie das Verzeichnis, das den Quellcode Ihres Projekts enthält.

    • Klicken Sie auf OK

    • Setzen Sie Haltepunkte und fahren Sie wie gewohnt fort.

Alt

Ein erster Schritt ist die Verwendung des Observatory , das eine browserbasierte Debugger-Benutzeroberfläche enthält.

Um dies zu ermöglichen, fügen Sie der Datei app.yaml

die folgenden Zeilen hinzu %Vor%

Dies könnte auch nützlich sein, um das server.dart warten zu lassen, bis wir die Möglichkeit hatten, Breakpoints mit Hilfe des Observatoriums zu setzen.

%Vor%

boot2docker gibt uns die Docker-IP (192.168.59.103) und nach dem Start mit gcloud preview app run app.yaml können wir uns mit http://192.168.59.103:8181 verbinden, was die Observatory-GUI öffnen sollte.

    
Günter Zöchbauer 21.11.2014, 15:44
quelle

Tags und Links