我该如何编写Google Cloud Function来接收HTTP请求,然后将HTTP POST请求发送到其他端点?
例如
我可以将HTTP触发器发送到我的云函数(https://us-central1-plugin-check-xxxx.cloudfunctions.net/test)。我正在使用exports.test = function helloWorld(req, res){}
处理收到的数据。
然后我想将具有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)
});
}
答案 0 :(得分:0)
使用Websocket SOCKET.IO是最佳选择。 https://socket.io/
但是,不可能在云功能中使用它。因为它分布在不同的机器上。因此,保持跟踪是不可能的。
答案 1 :(得分:0)
在用Node.js编写的Cloud Function中,您可以使用可通过NPM访问的任何软件包。使用Google搜索查找此类软件包显示:
您通常选择哪种口味取决于口味。我个人的选择是使用能胜任且最受欢迎的一种。我将受欢迎程度等同于不断提供支持和更新。
答案 2 :(得分:0)
正如@RenaudTarnec在评论中提到的那样,问题是我的结算帐户未配置。
Google不允许没有有效账单信息的外部服务器的出站请求,以防止任何恶意活动。
配置计费帐户后,我可以发出出站请求,问题中提到的所有节点模块都可以工作。