数据流管道和发布订阅模拟器

Dataflow pipeline and pubsub emulator

我正在尝试设置我的开发环境。我没有在生产中使用 google 云 pubsub,而是一直在使用 pubsub 模拟器进行开发和测试。为此,我设置了以下环境变量:

export PUBSUB_EMULATOR_HOST=localhost:8586

这适用于 python google pubsub 库,但是当我切换到对 google 数据流使用 java apache beam 时,管道仍然指向生产 google 发布订阅。管道上是否有我需要设置的设置、环境变量或方法,以便管道读取本地 pubsub 模拟器?

我在 PubsubOptions 接口中找到了解决方案,并将其扩展为我自己的 PipelineOptions 实现。然后使用 setPubsubRootUrl() 将其设置为模拟器的 localhost:port.

您也可以在配置文件中指定此选项

pubsubRootUrl=http://localhost:8185

或通过程序参数(尚未测试但应该也可以)

-Dexec.args="--pubsubRootUrl=http://localhost:8185"

http:// 需要符合 Java URL 格式