Cloud Dataflow のドキュメントを読んでも、App Engine からデータフロー ジョブを実行する方法がわかりません。出来ますか?バックエンドが Python で書かれているか Java で書かれているかは関係がありますか? ありがとう!
3 に答える
1 つの方法は、App Engine 内から Pub/Sub を使用して、Cloud Dataflow に新しいデータが利用可能になったことを知らせることです。その後、Cloud Dataflow ジョブが継続的に実行され、App Engine が処理用のデータを提供します。
別のアプローチとして、Cloud Dataflow パイプラインをセットアップするコードを App Engine のクラスに追加し (GAE プロジェクトへの Dataflow SDK を含む)、次の説明に従ってジョブ オプションをプログラムで設定します。
https://cloud.google.com/dataflow/pipelines/specifying-exec-params
「runner」オプションを DataflowPipelineRunner に設定して、Google Cloud Platform で非同期に実行されるようにしてください。パイプライン ランナー (実際にパイプラインを実行する) は、それを開始するコードと同じである必要はないため、このコード (pipeline.run() まで) は App Engine にある可能性があります。
その後、エンドポイントまたはサーブレットを GAE に追加できます。GAE が呼び出されると、パイプラインを設定するコードが実行されます。
さらにスケジュールを立てるには、GAE で、パイプラインを開始するエンドポイントを呼び出す cron ジョブを使用できます...
App Engine から Dataflow ジョブを送信する方法があるかもしれませんが、ドキュメントがないことから示唆されているように、これは積極的にサポートされているものではありません。APP Engine のランタイム環境では、資格情報の取得や Dataflow ジョブの送信など、必要な操作の一部を実行することがより困難になっています。