尝试在本地运行 PubSub 模拟器时出错

Posted

技术标签:

【中文标题】尝试在本地运行 PubSub 模拟器时出错【英文标题】:Error when attempting to run PubSub emulator locally 【发布时间】:2018-05-11 10:05:15 【问题描述】:

我想在本地做一些 pubsub 测试,所以我做了“gcloud components install pubsub-emulator”。

现在,当我尝试执行“gcloud beta emulators pubsub start”时,出现以下错误:

ERROR: (gcloud.beta.emulators.pubsub.start) [Errno 8] nodename nor servname provided, or not known
This may be due to network connectivity issues. Please check your network settings, and the status of the service you are trying to reach.

我使用的是 Java 1.8 版。使用 Java9 对我不起作用,有人建议我降级。我找不到有关此错误的任何提及。我的 .profile 如下所示:

export PATH="$HOME/develop/google-cloud-sdk/bin:$PATH"

我的 .bashrc 看起来像:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
export PATH=$JAVA_HOME/bin:$PATH

当我输入 java -version 我得到:

java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)

【问题讨论】:

【参考方案1】:

您的问题似乎与您的 Java 环境无关,因为您运行的是 Google Cloud PubSub Emulator 支持的 JRE 版本。所以在这种情况下,我建议你先检查你是否有最新版本的模拟器:

gcloud components update

然后,尝试使用 --host-port 标志运行模拟器,例如:

gcloud beta emulators pubsub start --host-port=<hostname>:<port>

Hostname 在您的情况下可以是 localhost,port 可以是您拥有的任何可用端口,例如 8085。

如果这些都不起作用,请考虑重新启动连接,因为看起来该解决方法解决了与 [Errno 8] 节点名或提供的服务名或未知的一些类似问题 错误。

【讨论】:

令人尴尬的是,重置我的网络是诀窍。现在,我一直在尝试创建一个主题。就是说我没有授权。我是否需要创建某种本地项目和本地组织才能使其发挥作用? 如果您遇到与此问题无关的问题,我建议您提出一个新问题,遵循 Stack Overflow 的政策。但是,我建议您查看documentation。 标志应该是--host-port=,而不是--host-port:

以上是关于尝试在本地运行 PubSub 模拟器时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 pubsub 模拟器在本地调用 firebase Schedule 函数

如何使用 pubsub 模拟器在本地调用 firebase Schedule 函数

Firebase 模拟器:在函数中使用 PubSub

本地 Pubsub 模拟器不适用于 Dataflow

尝试在 Android Studio 中运行模拟器时出错

从 Flutter 应用程序连接到本地 Firebase 函数模拟器时出错