从 Compute Engine 发布到 Cloud Pub/Sub 主题时出现 DEADLINE_EXCEEDED

col*_*ple 5 java google-compute-engine google-cloud-platform google-cloud-pubsub

我有一个在 Google Compute Engine 实例中运行的 Java 应用程序。我正在尝试使用google-cloud 库将消息发布到 Cloud Pub/Sub 主题,DEADLINE_EXCEEDED但出现异常。代码如下所示:

PubSub pubSub = PubSubOptions.getDefaultInstance().toBuilder()
            .build().getService();

String messageId = pubSub.publish(topic, message);
Run Code Online (Sandbox Code Playgroud)

结果是:

com.google.cloud.pubsub.PubSubException: io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED

文档表明此响应通常是由网络问题引起的。是否需要在“网络”部分配置某些内容以允许 Compute Engine 访问 Pub/Sub?存在默认允许内部防火墙规则。

我已将我的 Compute Engine 服务帐户设为 Pub/Sub 主题权限中的编辑者和发布者。

该应用程序驻留在容器引擎管理的 Compute Engine 实例内的 Docker 容器中。Pub/Sub 主题和 Compute Engine 实例在同一个项目中。我可以使用 google-cloud 库连接到其他 Cloud Platform 服务,例如 Datastore。我还可以从同一个项目中的 App Engine 实例顺利地发布到同一个 Pub/Sub 主题。

使用 google-api-services-pubsub API 库而不是 google-cloud 会更幸运吗?

cod*_*ped 4

我现在遇到了同样的问题,并在 GitHub 上的 google-cloud-java 问题跟踪器上创建了一个问题,因为我在那里找不到它。

我们从旧的google-api-services-pubsub 库(有效)切换到新库并得到了异常。我们的 Java 应用程序也在 Compute Engine 实例上运行。