使用推送订阅测试 Google Cloud PubSub 模拟器
Test Google Cloud PubSub emulator with a push subscription
我正在尝试设置适用于推送类型订阅的 GCP PubSub 服务。然而,在开发阶段创建一个是不可能的,而我没有可访问的端点。
我假设 emulator 允许我指定一个本地端点,以便该服务 运行 在本地完美无缺。
然而,在设置之后,我无法在Node.js pubsub library中找到创建订阅的方法,同时指定它的选项,没有这方面的例子。
这是创建简单的默认拉取订阅的非常简单的方法:
await pubsub.topic(topicName).createSubscription(subscriptionName);
这里是关于如何设置推送订阅的 example。如果您是 运行 在实际 Pub/Sub 环境中,这与您的设置方式相同。将“pushEndpoint”指定为您的本地端点。当 运行 在模拟器上时,它不需要对您的端点进行身份验证。
您可以执行以下操作:
// Imports the Google Cloud client library
const {PubSub} = require('@google-cloud/pubsub');
// Creates a client
const pubsub = new PubSub();
const options = {
pushConfig: {
// Set to your local endpoint.
pushEndpoint: `your-local-endpoint`,
},
};
await pubsub.topic(topicName).createSubscription(subscriptionName, options);
您应该有一个名为“PUBSUB_EMULATOR_HOST”的环境变量,它指向模拟器主机。
我的本地 pubsub 模拟器具有以下 url - http://pubsub:8085 所以我将以下环境变量添加到连接它的服务中:
export PUBSUB_EMULATOR_HOST=http://pubsub:8085
以下代码应该有效:
const projectId="your-project-id";
// Creates a client. It will recognize the env variable automatically
const pubsub = new PubSub({
projectId
});
pubsub.topic(topicName).createSubscription(subscriptionName);
我正在尝试设置适用于推送类型订阅的 GCP PubSub 服务。然而,在开发阶段创建一个是不可能的,而我没有可访问的端点。
我假设 emulator 允许我指定一个本地端点,以便该服务 运行 在本地完美无缺。
然而,在设置之后,我无法在Node.js pubsub library中找到创建订阅的方法,同时指定它的选项,没有这方面的例子。
这是创建简单的默认拉取订阅的非常简单的方法:
await pubsub.topic(topicName).createSubscription(subscriptionName);
这里是关于如何设置推送订阅的 example。如果您是 运行 在实际 Pub/Sub 环境中,这与您的设置方式相同。将“pushEndpoint”指定为您的本地端点。当 运行 在模拟器上时,它不需要对您的端点进行身份验证。
您可以执行以下操作:
// Imports the Google Cloud client library
const {PubSub} = require('@google-cloud/pubsub');
// Creates a client
const pubsub = new PubSub();
const options = {
pushConfig: {
// Set to your local endpoint.
pushEndpoint: `your-local-endpoint`,
},
};
await pubsub.topic(topicName).createSubscription(subscriptionName, options);
您应该有一个名为“PUBSUB_EMULATOR_HOST”的环境变量,它指向模拟器主机。
我的本地 pubsub 模拟器具有以下 url - http://pubsub:8085 所以我将以下环境变量添加到连接它的服务中:
export PUBSUB_EMULATOR_HOST=http://pubsub:8085
以下代码应该有效:
const projectId="your-project-id";
// Creates a client. It will recognize the env variable automatically
const pubsub = new PubSub({
projectId
});
pubsub.topic(topicName).createSubscription(subscriptionName);