我正在尝试通过PipelineOptions.setUserAgent自定义用于不同GCP调用的用户代理。
然而,它似乎总是回落到Apache_Beam_SDK_for_Java/2.6.0
。
看看Beam代码库,似乎用户代理程序是由Dataflow运行程序强制执行的:https://github.com/apache/beam/blob/ce9ee0b034cef66ea3845ca049770b9a354a4fd4/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/DataflowRunner.java#L330。
这是故意的吗?它应该可以定制吗?
编辑:通过--userAgent
CLI标志指定它似乎也不起作用。
Apache Beam从sdk.properties
文件中获取它:https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ReleaseInfo.java#L37
您应该能够在与资产捆绑在一起的属性文件中覆盖name
和version
。示例:https://github.com/apache/beam/blob/master/sdks/java/core/src/main/resources/org/apache/beam/sdk/sdk.properties