数据流管道完成后如何触发事件?

时间:2019-08-30 14:56:08

标签: google-cloud-platform google-cloud-dataflow apache-beam google-cloud-pubsub

我正在通过Cloud函数运行自己的数据流模板,并且当管道结束时我想做些事情。

有官方的方法吗?

我无法使用waitUntilFinish(),因为我的Cloud函数不会持续这么长时间。因此,我需要某种事件来触发其他一些过程。

Pubsub听起来不错,但是如何发送一条消息呢?

任何想法都很棒!

1 个答案:

答案 0 :(得分:1)

想法如下。

  • 转到日志,选择高级过滤器(过滤器栏右侧的箭头),然后粘贴此自定义过滤器
resource.type="dataflow_step" textPayload="Worker pool stopped."

如果未返回任何内容,请尝试

resource.type="gce_instance_group"
resource.labels.instance_group_name:"dataflow-"
jsonPayload.event_subtype="compute.instanceGroups.removeInstances"
jsonPayload.event_type="GCE_OPERATION_DONE"

您应该只看到数据流的结尾

  • 去出口
  • 选择高级过滤器,然后再次粘贴过滤器
  • 在创建导出时成功
  • 设置接收器名称
  • 将目的地设置为PubSub
  • 选择您的主题
  • 现在,在此主题上插入一个函数,它将仅在数据流结束时触发。 对于第二个过滤器,它并不是真正的结尾,但是当VM被销毁时,所有处理都完成了。