我是我的管道(Java),我已使用订阅或主题设置了从pubsub读取的选项:
PCollection<PubsubMessage> messages = null;
if (options.getUseSubscription()) {
messages = pipeline.apply("ReadPubSubSubscription", PubsubIO.readMessagesWithAttributes()
.fromSubscription(options.getInputSubscription()).withIdAttribute("messageId"));
} else {
messages = pipeline.apply("ReadPubSubTopic", PubsubIO.readMessagesWithAttributes()
.fromTopic(options.getInputTopic()).withIdAttribute("messageId"));
}
如果使用主题选项,则每次运行管道时,都会创建一个新的订阅。
有什么办法可以避免这种情况?也许设置从Dataflow自动创建的订阅的名称?
答案 0 :(得分:0)
我认为Dataflow不支持这种功能,因为此类信息不会在Dataflow管道之间共享。如果您使用fromTopic()
选项,则Dataflow在读取时将创建一个预订。但是,如果用户未提供订阅并使用该订阅,您是否可以在管道提交期间预先创建订阅?
答案 1 :(得分:0)
不,您不能这样做。但是在启动管道之前,您可以手动自定义options对象,例如,您可以创建或恢复订阅,将其添加到选项中,然后执行管道。