我有一个使用Cloud Functions的Google Assistant Action,在该Action中,我需要向我的私人服务器发送GET/POST请求。
我们使用Thingworx平台进行开发,它托管在防火墙后面的私有云上。
我也尝试过Postman发送这些请求,它工作得很好,但是当我在我的Google Assistant Action上使用同样的方法时,它就不起作用了,我得到的只是一个空的响应。
我的请求代码如下:
function callMeAPI(agent) {
var request = require("request");
var options = { method: 'GET',
url: 'https://{IP:Port}/Thingworx/Things/{Path}',
qs: { appKey: 'AppKey Used Here' },
headers:
{ 'cache-control': 'no-cache',
Accept: 'application/json' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
agent.add("body");
});那么,是否有任何端口和IP/URL我们需要添加到我们的防火墙规则,以添加来自云函数的请求,以通过防火墙到我们的Thingworx应用程序?
发布于 2019-04-17 14:21:01
请不要对云函数的出流量IP地址做任何假设。原始IP可能会随着时间的推移而变化,这取决于Google基础设施,也取决于您的功能所部署到的区域。
如果您需要确保对网络的访问源自您的函数,则应该在请求中实现某种类型的身份验证,以便您自己的应用程序可以验证请求。通常,存在一些只有双方都知道的共享秘密,这表明它们知道对方。
https://stackoverflow.com/questions/55720935
复制相似问题