使用 API 调用填充 TextIO 写入

Populate TextIO write with API call

我的问题围绕着启动 API 调用以获取 TextIO 输出的文件前缀。

这是我现在拥有的(并且有效):

results.get(validRecords).setCoder(StringUtf8Coder.of()).apply(Window.<String>into(Sessions.withGapDuration(Duration.standardMinutes(1)))).apply("WriteValidRecords",TextIO.write().to(cloudStorageValidfile).withSuffix(".csv").withWindowedWrites().withNumShards(1));

这也是我改的:

results.get(validRecords).setCoder(StringUtf8Coder.of()).apply(Window.<String>into(Sessions.withGapDuration(Duration.standardSeconds(60)))).apply("WriteRecords", TextIO.write().to(API-CALL).withWindowedWrites().withSuffix("csv").withNumShards(1));

似乎在 API 调用中,它只在实例化时调用一次,然后不断使用相同的前缀。有没有办法每次都强制调用?

我想通了,如果你想进行 API 调用,在实例化时没问题。在那之后,你就不能了,因为它是在编译和启动的状态下部署的。因此,如果 API 调用在那里没问题,但它只会获取一次值并将调用交换为检索到的值,然后启动。在其他区域,您可以在每次调用时进行 API 调用(可序列化函数应该可以工作),但在这里不会。