将发布/订阅连接到Dataflow Python管道

时间:2019-03-01 11:03:05

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

我正在编写一个处理电子邮件的数据流流管道(在Python中是 )。 这个想法是,当电子邮件到达时,发布发布/订阅消息,从而触发检索电子邮件并对其进行处理的管道。 Pub / Sub消息的内容是无用的,因为我只是使用它来触发管道。

我在最后一部分遇到了麻烦。我设法部署了管道并将其连接到Pub / Sub主题,但是当我尝试对其进行测试(发布消息)时,什么也没发生。

我想我必须设置一个窗口来“收集”消息并在某个时候发出它们,但是我应该怎么做? 是否有办法说“每当收到新的发布/订阅消息时就开始管道,而忽略其内容”

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以分享有关管道以及电子邮件存储位置的更多信息吗?

我建议您查看Beam中可用的一些示例管道。

如果您共享有关管道/代码的更多信息,我可以尝试与您进行迭代。

答案 1 :(得分:0)

我终于设法解决了我的问题。问题是由于从我为此定义的类中导入了定制管道选项。这种导入阻止了管道的触发。删除它,我终于设法触发了管道。

对于那些可能需要进口的人,

from engine.user_options import UserOptions

导入的类是

import apache_beam as beam


class UserOptions(beam.options.pipeline_options.PipelineOptions):
    @classmethod
    def _add_argparse_args(cls, parser):
        parser.add_value_provider_argument('--env', type=str)