Nach dem Lesen von Cloud Dataflow-Dokumenten weiß ich immer noch nicht, wie ich meinen Datenfluss-Job von App Engine aus ausführen kann. Ist es möglich? Ist es relevant, ob mein Backend in Python oder in Java geschrieben ist? Vielen Dank!Wie wird Google Cloud Dataflow von App Engine ausgeführt?
Antwort
Ja, es ist möglich, Sie müssen die "Streaming-Ausführung" wie erwähnt here verwenden.
Mit Google Cloud Pub/Sub als Streaming-Quelle können Sie es als "Trigger" Ihrer Pipeline verwenden.
Von App Engine können Sie die Pub-Aktion für den Pub/Sub Hub mit der REST API.
Möglicherweise gibt es eine Möglichkeit, Ihren Dataflow-Job von App Engine aus zu senden, aber dies wird nicht aktiv unterstützt, wie aus dem Mangel an Dokumenten hervorgeht. Die Laufzeitumgebung von APP Engine erschwert es, einige der erforderlichen Operationen durchzuführen, z. um Anmeldeinformationen zu erhalten, um Dataflow-Jobs zu senden.
danke für die Antwort! Ich habe nicht ganz verstanden, was du mit "ist nicht etwas, das aktiv unterstützt wird" gemeint hast. Wird es unterstützt, aber schlecht? Oder es wird überhaupt nicht "sauber und offiziell vorgeschlagen" unterstützt? – deemson
Ich meinte es wäre möglich, aber es wird nicht unterstützt und ich kann nicht garantieren, dass es funktioniert. –
Ein Weg wäre in der Tat, Pub/Sub innerhalb von App Engine zu verwenden, um Cloud Dataflow mitzuteilen, wenn neue Daten verfügbar sind. Der Cloud Dataflow-Job würde dann kontinuierlich ausgeführt und App Engine würde die Daten zur Verarbeitung bereitstellen.
würde Ein anderer Ansatz, den Code hinzufügen, die die Cloud-Datenfluss-Pipeline zu einer Klasse in App Engine einrichtet (einschließlich dem Datenfluss-SDK zu Ihrem GAE-Projekt) und die Job-Optionen programmatisch festgelegt, wie hier erklärt:
https://cloud.google.com/dataflow/pipelines/specifying-exec-params
Stellen Sie sicher, dass die Option 'runner' für DataflowPipelineRunner festgelegt ist, sodass sie asynchron auf der Google Cloud Platform ausgeführt wird. Da der Pipeline-Runner (der Ihre Pipeline tatsächlich ausführt) nicht mit dem Code identisch sein muss, der ihn initiiert, kann sich dieser Code (bis zu pipeline.run()) in App Engine befinden.
Sie können dann einen Endpunkt oder ein Servlet zu GAE hinzufügen, das bei Aufruf den Code ausführt, der die Pipeline einrichtet.
noch mehr planen, Sie einen cron-Job in GAE haben könnte, die den Endpunkt aufruft, die die Pipeline ...
Hallo Gavin, unser Backend ist in Python geschrieben und wir hofften, einen Endpunkt zu verwenden, um unsere Dataflow-Jobs auszulösen. Um die zweite Option, die Sie präsentieren, zu verwenden, ist es am besten, wenn wir unsere Pipeline zu einer Datenflussvorlage machen? Dies kann mein Missverständnis sein, aber wenn ich die gesamte Pipeline-Einrichtung einschließlich pipeline.run() in App Engine hätte, würde es immer noch asynchron auf der Google Cloud Platform laufen und nicht in der App Engine aussetzen? Vielen Dank –
- 1. „ClassNotFoundException: sun.security.provider.Sun“ beim Ausführen von Google Cloud Dataflow-Pipeline in Google App Engine
- 2. Google Cloud Datastore vs Google App Engine
- 3. Google App Engine Cloud Endpunkt Sicherheit
- 4. Google Cloud Platform DataFlow-Mitarbeiter IP-Adressen
- 5. Python-Cloud-Hosting außer Google App Engine?
- 6. Google App Engine & Google Storage
- 7. Cloud-Endpunkte und App Engine
- 8. Wie App-Engine Caching mit Google Cloud-Endpunkten durchführen
- 9. Google App Engine vs Firebase
- 10. Google Container Engine: Zugriff auf Cloud-Speicher
- 11. Google App Engine phpBB
- 12. Behandeln Sie Nullwerte von BigQuery in Google Cloud Dataflow. Python
- 13. Wie löse ich java.lang.NoSuchMethodError: com.google.api.services.dataflow.model.Environment.setSdkPipelineOptions mit Google Cloud Dataflow auf?
- 14. Erstellen/Schreiben von BigQuery-Tabellen über Google Cloud Dataflow
- 15. Wordpress Google App-Engine-Kompatibilität
- 16. Google App Engine vs Tomcat
- 17. Google App Engine-Anforderungsstatus
- 18. Google Cloud der 2. Generation SQL - App Engine
- 19. Google App Engine-Kompatibilitätsschicht
- 20. google cloud engine instance löscht installierte Pakete
- 21. Google App Engine-Cloud-Endpunkte userId ist null
- 22. Google Cloud Storage + App Engine signierter URL-Upload-Handler
- 23. Alembic-Migrationen auf Google App Engine ausführen
- 24. Python Google App Engine flexible
- 25. Hochladen von Dateien auf Google Cloud Storage Mit Google App Engine (Python)
- 26. Cloud 9 und Google App Engine mit Maven 3
- 27. Google App Engine-Datenbankinkonsistenz
- 28. So ordnen Sie Google Cloud Dataflow zu System.err schreibt in Google Cloud-Protokollierungsereignisse der Warnstufe?
- 29. Loggen Google App Engine-Anwendung
- 30. Google App Engine ThreadSafe
Dank einleitet! Wenn Sie die Streaming-Ausführung verwenden, muss eine Compute Engine-Instanz mit meinem Datenfluss-Job rund um die Uhr verfügbar sein, richtig? – deemson
Wenn Sie die "Cloud-Ausführung" verwenden, denke ich, es starten und stoppen Instanzen, wenn benötigt wird :) – aqquadro