テスト コンポーザー環境で DataflowJavaOperator を使用しようとしていますが、403 forbidden
エラーが発生します。私の意図は、テスト コンポーザー環境を使用して、別のプロジェクトでDataflow Java ジョブを開始することです。
t2 = DataFlowJavaOperator(
task_id = "run-java-dataflow-job",
jar="gs://path/to/dataflow-jar.jar",
dataflow_default_options=config_params["dataflow_default_options"],
gcp_conn_id=config_params["gcloud_config"]["conn_id"],
dag=dag
)
私のデフォルトのオプションは次のようになります
'dataflow_default_options': {
'project': 'other-project',
'input': 'other-project:dataset.table',
'output': 'other-project:dataset.table'
...
}
Dataflow と同じプロジェクトに一時的な Composer テスト環境を作成してみました。これにより、期待どおりに DataflowJavaOperator を使用できるようになりました。Composer 環境が Dataflow とは別のプロジェクトにある場合にのみ、DataflowJavaOperator が期待どおりに動作しません。
私の現在の回避策は、BashOperator を使用し、「env」を使用して GOOGLE_APPLICATION_CREDENTIALS を gcp_conn_id パスとして設定し、jar ファイルをテスト コンポーザ バケットに保存して、次の bash コマンドを実行することです。
java -jar /path/to/dataflow-jar.jar \
[... all Dataflow job options]
DataflowJavaOperator を使用して、別のプロジェクトで Dataflow ジョブを開始することはできますか?