在HTTP触发的函数中发布主题

时间:2018-08-07 09:19:06

标签: google-cloud-functions publish-subscribe google-cloud-pubsub

我已经在GCP中编写了一个HTTP触发函数,它按预期方式计算了一些数据,在计算之后,我想将结果发布到MQTT主题上。 我添加了以下代码段,但触发了错误:

Error: Error: Cannot find module '@google-cloud/pubsub'

下面是添加的代码

//decoding worked
const PubSub = require('@google-cloud/pubsub'); 
// Your Google Cloud Platform project ID
const projectId = 'XXXXX';

// Instantiates a client
const pubsubClient = new PubSub({
  projectId: projectId
});

// The name for the new topic
const topicName = 'XXXX';

// Creates the new topic
pubsubClient
  .createTopic(topicName)
  .then(results => {
    const topic = results[0];
    console.log(`Topic ${topic.name} created.`);
  })
  .catch(err => {
    console.error('ERROR:', err);
  });

如果摆脱了库的导入,我就会得到

 Error: ReferenceError: PubSub is not defined

所以-如何在gcp中通过HTTP触发的函数发布主题?

1 个答案:

答案 0 :(得分:2)

您需要安装@google-cloud/pubsub库作为依赖项,以便您的Cloud Function可以成功导入它。您可以通过在本地运行以下命令来做到这一点:

npm install --save @google-cloud/pubsub

这将在您使用功能代码上传的package.json文件中包含该库。

如果直接从开发者控制台编写函数,则需要将以下内容添加到package.json文件中:

"dependencies": {
    "@google-cloud/pubsub": "^0.19.0"
}