Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 当数据流管道完成时,如何触发事件?_Google Cloud Platform_Google Cloud Dataflow_Apache Beam_Google Cloud Pubsub - Fatal编程技术网

Google cloud platform 当数据流管道完成时,如何触发事件?

Google cloud platform 当数据流管道完成时,如何触发事件?,google-cloud-platform,google-cloud-dataflow,apache-beam,google-cloud-pubsub,Google Cloud Platform,Google Cloud Dataflow,Apache Beam,Google Cloud Pubsub,我正在从一个云函数运行我自己的数据流模板,我想在管道结束时做一些事情 有官方的方法吗 我不能使用waitUntilFinish(),因为我的云函数不会持续那么长时间。所以我需要一些事件,来触发一些其他的过程 Pubsub听起来不错,但是如何发送一条消息呢 任何想法都很好 想法如下 转到日志,选择高级过滤器(过滤器栏右侧的箭头)并粘贴此自定义过滤器 如果没有返回任何内容,请尝试此选项 resource.type="gce_instance_group" resource.labels.inst

我正在从一个云函数运行我自己的数据流模板,我想在管道结束时做一些事情

有官方的方法吗

我不能使用
waitUntilFinish()
,因为我的云函数不会持续那么长时间。所以我需要一些事件,来触发一些其他的过程

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


任何想法都很好

想法如下

  • 转到日志,选择高级过滤器(过滤器栏右侧的箭头)并粘贴此自定义过滤器
如果没有返回任何内容,请尝试此选项

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被销毁时,所有的处理就完成了

向上投票,因为订阅日志是一个神奇的技巧,完全可以完成这项工作!但这里的问题是,这个过滤器从同一个作业返回大量日志,这意味着它将多次触发pubsub。我将挖掘一个更好的日志,如果我找到它,我会告诉你。对于我所有的数据流作业,每个作业只有一个条目。我很想知道你们的用例和你们的解决方案。至于我,我有和每个工作加载的工人一样多的条目。这是有道理的。更好的条目是查找
资源。type=“dataflow\u step”textPayload=“Worker pool stopped。”
。如果你同意,你能更新你的过滤器以便我能接受这个答案吗?这个过滤器在我的项目(开发和生产)中不返回结果。我不明白为什么。我在数据流图(图下方的日志部分)中看到了
“工作池已停止。”
,但在stackdriver日志部分中没有看到。是的,如果是工作的话会更好,但对我来说不起作用。这是一个有趣的行为,可能是来自数据流的一个bug。有趣的事实:我在europe-west4停止了
员工池,但在美国中部没有。我甚至不想去理解为什么!:)
resource.type="gce_instance_group"
resource.labels.instance_group_name:"dataflow-"
jsonPayload.event_subtype="compute.instanceGroups.removeInstances"
jsonPayload.event_type="GCE_OPERATION_DONE"