【发布时间】:2017-11-02 12:44:20
【问题描述】:
我在以下链接中读到,我必须使用以下命令在本地启动一个 pub/sub 实例:gcloud beta emulators pubsub env-init && gcloud beta emulators pubsub start:
https://cloud.google.com/pubsub/docs/emulator
这很好,实例已启动并正在运行。
我不明白的是,当我启动 node.js 应用程序时,它似乎没有与这个实例交互。
我能够获得以下工作 pub/sub 模拟器实例在本地运行:
const subscription = pubsub.subscription(topicName);
// Register a listener for `message` events.
subscription.on('message', (message) => {
console.log('->', message);
});
const results = await pubsub.topic('my-new-topic').publish('my message');
const messageIds = results[0];
console.log(`Message ${messageIds[0]} published.`);
我认为它可能会与我在云上的项目发生冲突,但是因为我还运行了 gcloud beta emulators pubsub env-init,它应该使用本地项目。如前所述,即使我没有启动它,它似乎也能正常工作。
我想知道我是否误解了它在本地开发中的工作方式。以下是我读到的。
- 创建项目
- 启用发布/订阅
- 下载 SDK 安装并初始化
- 在 Node.js 应用程序中安装 NPM 库
- 通过
gcloud beta emulators pubsub env-init设置环境变量 - 通过
gcloud beta emulators pubsub start启动本地发布/订阅模拟器 - 启动 Node.js 应用程序,观察它的连接、获取主题、发布、订阅等。
我希望谷歌有时会做一个简单的项目符号列表,让深度阅读成为可选的。
这是它的外观:
karl@karl-Dell-Precision-M3800:~/dev/node(dev/feat/setup)$ ps aux | grep pubsub
karl 19538 0.0 0.0 4512 848 pts/1 S+ 14:52 0:00 /bin/sh /opt/google-cloud-sdk/bin/gcloud beta emulators pubsub start --verbosity=info
karl 19545 1.2 0.2 88796 32760 pts/1 S+ 14:52 0:00 python2 -S /opt/google-cloud-sdk/lib/gcloud.py beta emulators pubsub start --verbosity=info
karl 19570 4.0 0.3 6982280 64888 pts/1 Sl+ 14:52 0:00 /usr/lib/jvm/java-8-oracle//bin/java -jar /opt/google-cloud-sdk/platform/pubsub-emulator/lib/cloud-pubsub-emulator-0.1-SNAPSHOT-all.jar --host=localhost --port=8085
【问题讨论】:
标签: node.js google-app-engine google-cloud-platform google-cloud-pubsub