Google cloud dataflow 数据流模板作业完成后将消息发布到发布/订阅

Google cloud dataflow 数据流模板作业完成后将消息发布到发布/订阅,google-cloud-dataflow,Google Cloud Dataflow,我想在数据流作业成功完成后将消息发布到发布/子主题 我这样做是通过使用wait_until_finish(),然后在确认管道已完成后发布消息(当前状态为JOB_state_DONE)。当我在本地执行管道时(使用DirectRunner或DataflowRunner),我得到了所需的结果。但是,当我将此管道部署到模板,然后从模板创建作业时,p.run()之外的代码不会执行 我的计划到此为止 result = p.run() result.wait_until_finish()

我想在数据流作业成功完成后将消息发布到发布/子主题

我这样做是通过使用
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\u job\u completion
确认作业已完成并发布消息


我如何设计一个管道,一旦完成就发布到Pub/Sub,即使从模板运行也是如此?

我不确定是否有好的方法通过模板管道本身来实现这一点。但是,您可以将其包装为一个简单的运行在上的气流DAG。Airflow具有可以启动数据流模板作业的,以及可以将消息发布到发布/订阅的。您可以将这两个操作作为部署到Cloud Composer的简单DAG串在一起

虽然不使用模板化的数据流作业,但它提供了一个很好的示例,说明如何使用Cloud Composer来编排数据流作业