Python 在数据流管理服务中运行时,数据流未读取PubSub消息

Python 在数据流管理服务中运行时,数据流未读取PubSub消息,python,google-cloud-platform,apache-beam,publish-subscribe,dataflow,Python,Google Cloud Platform,Apache Beam,Publish Subscribe,Dataflow,我们的python数据流管道在本地工作,但在Google云平台上使用数据流管理服务部署时无法工作。它没有显示连接到PubSub订阅的迹象。我们尝试订阅subscription和topic,但两者都不起作用。消息在PubSub订阅中累积,数据流管道没有显示被调用的迹象或任何东西。我们仔细检查了项目是否相同 如果您对此有任何指示,我们将不胜感激 以下是连接到请求订阅的代码 梁管道(选项=选项)为p: something=p |“ReadPubSub”>>beam.io.ReadFromPubSub(

我们的python数据流管道在本地工作,但在Google云平台上使用数据流管理服务部署时无法工作。它没有显示连接到PubSub订阅的迹象。我们尝试订阅subscription和topic,但两者都不起作用。消息在PubSub订阅中累积,数据流管道没有显示被调用的迹象或任何东西。我们仔细检查了项目是否相同

如果您对此有任何指示,我们将不胜感激

以下是连接到请求订阅的代码

梁管道(选项=选项)为p:
something=p |“ReadPubSub”>>beam.io.ReadFromPubSub(
subscription=“projects/PROJECT\u ID/subscriptions/cloudflow”
)
下面是使用的选项

options=PipelineOptions()
文件\u处理\u选项=管道选项()。查看为(文件处理选项)
if options.view_as(谷歌云选项)。项目为无:
打印(sys.argv[0]+“:错误:参数--需要项目”)
系统出口(1)
选项。查看为(设置选项)。保存主会话=真
选项。按(标准选项)查看。流=真
PubSub订阅具有以下配置:

Delivery type: Pull
Subscription expiration: Subscription expires in 31 days if there is no activity.
Acknowledgement deadline: 57 Seconds
Subscription filter: —
Message retention duration: 7 Days
Retained acknowledged messages: No
Dead lettering: Disabled
Retry policy : Retry immediately

我认为要从订阅中提取,我们需要将_attributes参数作为True传递

使用_attributes–True-输出元素将是PubsubMessage对象。假的- 输出元素的类型为字节(仅限消息数据)

在这里找到了类似的一个:

能否共享连接到PubSub的管道部分和管道选项?能否详细说明用于数据流的类型订阅?你有没有仔细检查过这是同一个项目?更新后的帖子提供了这些信息没有什么奇怪的。您在依赖项中使用的Beam sdk版本是什么?版本是2.20.0您在管道中使用特殊服务帐户吗?在任何情况下,使用的服务帐户是否有权访问pubsub?