【发布时间】:2021-07-20 15:20:38
【问题描述】:
我有一个使用此用户代理运行良好的数据流作业(我们只配置 Apache Beam 版本,因此会自动配置 JDK 环境)
Apache_Beam_SDK_for_Java/2.19.0(JDK_11_environment)
升级工作流程后,我们声明使用 Beam 2.27 并使用以下用户代理启动作业:
Apache_Beam_SDK_for_Java/2.27.0(JDK_11_environment)
它开始失败并出现错误:
工作流程失败。原因:未找到订阅“xxx”。请提供 现有订阅。
pub sub 订阅存在,和我们之前使用的一样,甚至作业配置属性中的链接也可以正常工作并导航到订阅
我们之前成功部署了在不同 GCP 实例中失败的相同作业版本,在这里我们看到用户代理是:Apache_Beam_SDK_for_Java/2.27.0(JRE_8_environment)。我们的项目配置为使用 Java 8,因此我们在失败的环境中启动作业时添加了以下参数
--userAgent="Apache_Beam_SDK_for_Java/2.27.0(JRE_8_environment)"
它开始工作了。但是,尽管工作正常,但我们仍然在作业属性上看到了这一点:
Apache_Beam_SDK_for_Java/2.27.0(JDK_11_environment)
您知道对此有什么解释吗?确保使用 Java 8 运行工作流的更好方法是什么?
谢谢
【问题讨论】:
-
您能否检查控制器服务帐户 (cloud.google.com/dataflow/docs/concepts/…) 是否可以使用“Pub/Sub Viewer”角色?可能是服务帐号无权获取订阅。
标签: java google-cloud-platform apache-beam dataflow