未找到 Pubsub 订阅用户代理配置
Posted
技术标签:
【中文标题】未找到 Pubsub 订阅用户代理配置【英文标题】:Pubsub Subscription not found User Agent config 【发布时间】: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”角色?可能是服务帐号无权获取订阅。 【参考方案1】:遇到类似问题,但使用的是 Python SDK。通过数据流运行 Apache Beam。在一个项目中,它可以看到订阅。另一方面,它不能。一切都几乎相同,所以令人困惑。
这开始发生在昨天。如果我在调试中发现任何有用的东西,我会在这里跟进
【讨论】:
【参考方案2】:我们遇到了类似的问题,我们通过为服务帐户赋予 IAM 角色“pubsub.viewer”来解决它。
【讨论】:
【参考方案3】:我遇到了同样的问题,我通过更新到 Beam 2.29.0 解决了它
【讨论】:
以上是关于未找到 Pubsub 订阅用户代理配置的主要内容,如果未能解决你的问题,请参考以下文章
ReactAjax 相关 - axios - 配置代理解决跨域问题 -消息订阅/发布机制 - PubSubJS - Fetch - github用户搜索案例
gcloud alpha pubsub 订阅寻求方法未找到异常