以编程方式在模拟器中调用gcloud后台函数

时间:2018-03-10 18:05:47

标签: google-cloud-platform google-cloud-functions google-cloud-pubsub serverless

我在模拟器中部署了一个gcloud后台函数(pubsub)。

从命令行

成功调用它
functions call helloPubSub --data='{"message":"Hello World"}'

如何从本地服务器代码调用gcloud本地函数?

= = =

以下是我在服务器端发布到主题

的代码
pubsub
  .topic(topicName)
  .publisher()
  .publish(dataBuffer)
  .then(results => {
    const messageId = results[0];
    console.log(`Message ${messageId} published.`);
    res.status(200)
    res.send({hello:'world'})

  })
  .catch(err => {
    console.error('ERROR:', err);
    res.status(200)
    res.send({err:err})
  });    

我收到以下错误消息

{"err":{"code":7,"metadata":{"_internal_repr":{}},"note":"Exception occurred in retry method that was not classified as transient"}}

1 个答案:

答案 0 :(得分:1)

official docs中声明:

  

注意:这些服务不会调用在模拟器中部署的功能,如云存储或云发布/订阅等非HTTP触发器。模拟器仅用作开发环境,因此您需要手动调用这些函数以调用它们。

因此,如果您使用Cloud Pub / Sub触发器在本地部署了一个函数,则调用它的唯一方法是使用命令行命令:

functions call [your-function]