HTTP POST Google Cloud Functions NodeJS

时间:2019-04-24 18:13:07

标签: node.js http post google-cloud-functions webhooks

我该如何编写Google Cloud Function来接收HTTP请求,然后将HTTP POST请求发送到其他端点?

例如

到目前为止,我尝试使用 node-webhooks,request&restler 模块发送HTTP POST,但它们似乎都不起作用。是因为这些模块与 exports.test 一起使用?

我的问题与this问题有关,但是答案并没有帮助我。

要发送到终结点的数据位于 json 内容类型:application / json

var request = require('request'); //also tried for node-webhook, restler modules

exports.test = function(req, res) {
 //processing of received json data from source A. 
}

function sendToEndpoint(processed_data) {

  let abc = processed_data;   //send processed data to source B 

  request.post({
      uri: 'https://example.com',
      headers: {'Content-Type': 'application/json'},
      body: JSON.stringify(abc)
  }); 

}

3 个答案:

答案 0 :(得分:0)

使用Websocket SOCKET.IO是最佳选择。 https://socket.io/

但是,不可能在云功能中使用它。因为它分布在不同的机器上。因此,保持跟踪是不可能的。

答案 1 :(得分:0)

在用Node.js编写的Cloud Function中,您可以使用可通过NPM访问的任何软件包。使用Google搜索查找此类软件包显示:

您通常选择哪种口味取决于口味。我个人的选择是使用能胜任且最受欢迎的一种。我将受欢迎程度等同于不断提供支持和更新。

答案 2 :(得分:0)

正如@RenaudTarnec在评论中提到的那样,问题是我的结算帐户未配置。

Google不允许没有有效账单信息的外部服务器的出站请求,以防止任何恶意活动。

配置计费帐户后,我可以发出出站请求,问题中提到的所有节点模块都可以工作。