问题标签 [google-cloud-pubsub]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1947 浏览

google-app-engine - Google PubSub 无法创建新主题

我从这里使用 PHP API 客户端库的 v1-master 分支: https://github.com/google/google-api-php-client/blob/v1-master/src/Google/Service/Pubsub。 php

我确定我所有的 OAuth 东西都是正确的,所以假设 $client 已经正确创建... {my-app-id} 也被替换为我的真实应用程序 ID

这会引发异常:

{my-app-id} 只是字母 az,因此它是有效的并且符合 pubsub 概述中的所有标准,并且我确实拥有该项目的权利,因为如果我更改 {my-app-id} 值,我会得到权限被拒绝消息。

我也浏览了 API Explorer 并得到了类似的错误结果:

要求:

回复:

我还尝试使用 API 客户端的主分支并将端点更改为 pubsub.googleapis.com/v1 端点而不是 www.googleapis.com/pubsub/v1beta1 ...我什至尝试了 v1beta2。没有任何工作。

我的项目启用了 PubSub API,但我无法创建任何主题。

有没有人有任何使用 PubSub 服务的工作应用程序的 PHP 示例代码?任何想法我做错了什么?

0 投票
1 回答
2279 浏览

javascript - Google Pub/Sub 如何在 Pull 上设置读取超时

我想在订阅上设置拉取请求的读取超时。现在唯一的选择是设置returnImmediately=true或等待 pubsub 返回,如果没有消息发布,这似乎是 90 秒。

我正在使用 gcloud-node 模块来调用 pubsub。它使用引擎盖下的请求模块来进行 gcloud api 调用。我已经更新了gcloud-node/lib/pubsub/subscription.js的本地副本,将请求超时设置为 30 秒

当我这样做时,我看到的行为是连接将在 30 秒后在客户端超时,但 pubsub 仍然打开请求。如果我有两个客户端拉订阅并且其中一个在 30 秒后超时,则将一条消息发布到主题,剩余的侦听客户端将有 50/50 的机会检索该消息。

有没有办法告诉 pubsub 在一定时间后超时拉连接?

更新:我可能需要稍微澄清一下我的例子。我有两个同时连接并从同一个订阅中提取的客户端。两者的唯一区别是第一个配置为 30 秒后超时。由于两个客户端连接到同一个订阅,pubsub 将在它们两者之间分配消息负载。如果我在两个客户端连接 45 秒后发布消息,则 pubsub 有 50/50 的机会将消息传递给尚未超时的第二个客户端。如果我发送 10 条消息而不是一条,第二个客户端将收到 10 条消息的子集。看起来这是因为我的客户正在进行长期投票。如果客户端断开连接,服务器不知道,将尝试根据已超时的客户端发出的请求的响应发送已发布的消息。根据我的测试,这是我观察到的行为。我想做的是能够在拉取请求中发送一个超时参数,告诉 subpub 如果在此期间没有发布任何消息,则在 30000 毫秒后发回响应。翻阅API docs,这似乎不是一个选项。

0 投票
1 回答
1018 浏览

c# - GmailService 创建 Watch() 获取用户未授权错误

这段代码被剪断了:

出现错误:向 Cloud PubSub projects/push-notifications-ver3/topics/mytopic 发送测试消息时出错:用户无权执行此操作。[403]

主题是通过订阅创建的,当前用户作为主题所有者授予了权限任何建议为什么用户未授权?

0 投票
2 回答
858 浏览

google-cloud-platform - 同时对同一个订阅进行多次拉取调用

在使用 pull 方法从特定主题获取通知时,是否可以同时通过不同的服务器对同一订阅进行拉取调用?如果没有,如果我同时在同一台服务器上使用多个线程调用 pull 怎么办。

0 投票
0 回答
55 浏览

google-app-engine - 将 google pubsub 与 actionscript/air 客户端一起使用

我必须在 flash air 客户端中实现 google pubsub 服务,以便接收来自 google 应用引擎的推送消息。经过大量谷歌搜索,我没有找到任何关于此的示例或讨论。有没有人已经这样做了?如果没有,我将发布我的解决方案,...感谢您的帮助!

0 投票
1 回答
1163 浏览

protocol-buffers - 使用 grpc 和 protobuf(生成的客户端)通过 HTTP 2 访问 Google Cloud Pubsub

我正在尝试通过使用https://github.com/google/googleapis/blob/master/google/pubsub/v1/pubsub.proto上的服务定义来使用谷歌云 pubsub 服务

我能够生成客户端代码并拥有以下代码来获取主题:

这总是以 404 失败。网络流量(在调试日志中)似乎确认客户端正在访问错误的端点(对于发布消息请求):

我在这里做错了什么?是否支持通过 HTTP 2(使用 protobuf)的 pubsub?

0 投票
1 回答
2468 浏览

google-cloud-platform - 在 Google Pub/Sub 订阅创建期间出现无效的推送端点错误

我已经浏览了Google 网站上的所有先决条件。

  1. 在服务器上获取并安装了 SSL 证书(来自 Let's Encrypt)。

  2. 在 Google Search Console(如https://example.org )上注册并验证了域(是的,https url )。

  3. 将域添加到我的 API 凭据的域验证中。

主题='项目/我的项目/订阅/我的主题'

sub='项目/myproject/subscription/mysub'

client.projects().topics().create(topic=topic, body={}).execute()

client.projects().subscriptions().create(name=sub, body={'topic': topic, 'pushConfig': {'pushEndpoint': ' https://example.org/push-handler '}})

我回来了:

googleapiclient.errors.HttpError:https://pubsub.googleapis.com/v1/projects/myproject/subscriptions/mysub?alt=json 返回“给定的推送端点无效(端点= https://example.org/push-handler) . 有关详细信息,请参阅https://cloud.google.com/pubsub/subscriber#create。">

此外,我无法从 Google 的 Pub/Sub 开发者控制台创建订阅。当我尝试时,我收到“无法添加订阅”通知。我是这个主题和项目的完全所有者,具有读写权限。我可以毫无问题地添加拉订阅。

关于为什么的任何想法?好像我不是唯一一个打这个的。

0 投票
2 回答
1499 浏览

google-cloud-datastore - 从 PubsubIO 读取写入 DatastoreIO

是否可以创建一个从 Pub/Sub 读取数据并写入 Datastore 的管道?在我的代码中,我将 PubsubIO 指定为输入,并应用窗口化来获得有界的 PCollection,但似乎无法将 DatastoreIO.writeTo 与 options.setStreaming 设置为 true,而这是使用它所必需的PubsubIO 作为输入。有没有解决的办法?还是根本不可能从 pubsub 读取并写入数据存储?

这是我的代码:

这是我得到的例外:

0 投票
0 回答
517 浏览

gmail-api - 如何解决 gcloud gmail-api watch 400(错误请求)?

语境:

按照说明(此处)设置 GMail 推送通知;和(此处)用于在 Pub/Sub 主题上设置 GMail Watch。

(已创建 Pub/Sub 主题和订阅;已在 Google Apps 中授予 API 客户端访问应用程序的权限)

问题:

执行以下代码会导致以下 (JSON) 错误:

尝试的解决方案:

  1. sub在创建凭证服务时尝试将 GMail 帐户作为参数。
  2. 重新创建了 Pub/Sub 主题和订阅。
  3. 将域添加到 Google Developers Console 项目。

代码:

0 投票
0 回答
909 浏览

amazon-web-services - AWS API 网关作为 Google Cloud pubsub 的订阅者

我想订阅一个 Google Cloud pub-sub 主题(它将推送有关用户收件箱更改的通知)。由于 Google 需要一个 HTTPS 端点,我创建了一个 AWS API Gateway 端点。但我无法将此端点添加为订阅者。

我收到一条错误消息 - “抱歉,出现问题。如果您输入了信息,请检查并重试。否则,问题可能会自行解决,请稍后再查看。” .

任何想法为什么会发生这种情况以及如何解决这个问题?

阿泽姆