是否可以将 gcloud CLI 连接到 Pubsub 模拟器实例

问题描述 投票:0回答:2

使用

gcloud
CLI 启动 PubSub 模拟器并相应加载环境变量后,
gcloud
CLI 仍通过我们的 Google 生产帐户进行身份验证。基本上,我们做到了:

# Starting the emulator in one shell
gcloud beta emulators pubsub start

# In a different shell
$(gcloud beta emulators pubsub env-init)
gcloud pubsub topics list

但是,我们的制作主题列在这里。预期的输出将是一个空列表,因为我们试图列出新启动的 PubSub 模拟器中的主题,该模拟器在启动时不包含任何内容。

我们习惯于启动 Bigtable 模拟器并使用

cbt
CLI 毫无问题地连接到它,因为它可以识别
BIGTABLE_EMULATOR_HOST
。是否可以使用相同类型的工具来管理/检查 PubSub 模拟器资源?看起来
gcloud
不知道
*_EMULATOR_HOST
变量。

提前谢谢您,

PS:我们

gloud version
的输出:

Google Cloud SDK 182.0.0
alpha 2017.09.15
beta 2017.09.15
bigtable
bq 2.0.27
cbt
core 2017.12.01
gcloud
gsutil 4.28
kubectl
pubsub-emulator 2017.09.15
google-cloud-platform google-cloud-pubsub google-cloud-pubsub-emulator
2个回答
7
投票

Google 公共问题跟踪器 中存在针对此功能的功能请求。工程团队已了解此请求,目前正在调查,预计预计到达时间尚未确定。所有进一步的通信都将在该功能请求中进行。


4
投票

有同样的问题,这对我有用

Google 团队并不真正赞成此功能,他们的理由对我来说是有道理的。您可以在@Jordan 提供的链接中阅读它。

解决方法是手动覆盖 API 端点。

首先,找出模拟器的端口号(运行命令时已经有了它:))

# gcloud beta emulators pubsub env-init
export PUBSUB_EMULATOR_HOST=0.0.0.0:8538

然后覆盖

gcloud
的 API 端点以指向您的模拟器。请注意,格式必须为
http://localhost:PORT/
(必须是
http
协议而不是
https
并且必须以
/
结尾)。

gcloud config set api_endpoint_overrides/pubsub http://$PUBSUB_EMULATOR_HOST/

不要忘记将其恢复回来

gcloud config unset api_endpoint_overrides/pubsub
© www.soinside.com 2019 - 2024. All rights reserved.