我想在我的数据流作业成功完成后将消息发布到发布/订阅主题。
我通过使用wait_until_finish()
来执行此操作,然后在确认管道已完成(当前状态为JOB_STATE_DONE
)后发布一条消息。当我在本地执行管道(使用DirectRunner
或DataflowRunner
)时,我得到了预期的结果。但是,当我将此管道部署到模板上,然后从模板创建作业时,p.run()
之外的代码将不会执行。
这是我管道的结尾
result = p.run()
result.wait_until_finish()
publish_job_completion(result, all_pipeline_options)
publish_job_completion
确认作业已完成并发布消息。
我如何设计一个即使完成从模板运行也可以发布到Pub / Sub的管道?
答案 0 :(得分:0)
我不确定是否可以通过模板管道本身来实现此目的。但是,您可以将其包装到运行在Cloud Composer上的简单Airflow DAG中。 Airflow有一个DataflowTemplateOperator可以启动数据流模板作业,还有一个PubsubPublishOperator可以将消息发布到发布/订阅。您可以将这两个操作串在一起,作为部署到Cloud Composer的简单DAG。
虽然this example不使用模板化的Dataflow作业,但它提供了一个很好的示例,说明了如何使用Cloud Composer编排Dataflow作业。