[英]How to send a HTTP request from Google Cloud Functions (nodeJS)
[英]HTTP POST Google Cloud Functions NodeJS
我该如何编写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,但是它们似乎都不起作用。 是因为这些模块与export.test一起使用?
我的问题与此问题有关,但答案并没有帮助我。
发送到端点的数据为json和Content-type: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)
});
}
正如@RenaudTarnec在评论中提到的那样,问题是我的结算帐户未配置。
Google不允许在没有有效的帐单信息的情况下向外部服务器发出出站请求,以防止任何恶意活动。
配置计费帐户后,我可以发出出站请求,问题中提到的所有节点模块都可以工作。
使用Websockets SOCKET.IO是最佳选择。 https://socket.io/
但是,不可能在云功能中使用它。 因为它分布在不同的机器上。 因此,保持跟踪是不可能的。
在用Node.js编写的Cloud Function中,您可以使用可通过NPM访问的任何软件包。 使用Google搜索查找此类软件包显示:
您选择哪种通常取决于口味。 我个人的选择是使用能胜任且最受欢迎的一种。 我将受欢迎程度等同于不断提供的支持和更新。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.