1

テスト コンポーザー環境で 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 ジョブを開始することはできますか?

4

1 に答える 1