我正在尝试在我们的测试作曲家环境中使用 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 相同的项目中创建一个临时的作曲家测试环境,这使我可以按预期使用 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 作业?