问题描述
我有一个在计算实例中运行的服务,可以使用这样的私有IP地址进行访问(https://172.31.93.233/proxy.php)。我想从云功能发出https请求以访问此服务,所以我创建了一个IP地址范围为172.30.0.0/16的VPC连接器(IP范围:172.31.0.0/28),并且该连接器具有Ingress设置(允许所有流量)和出口设置(通过VPC连接器路由所有流量)。但是我的函数以某种方式无法完成请求,并在日志中指出:“函数执行耗时60002毫秒,状态为:“超时” VPC和功能都在同一区域(us-central1)
其他附加信息: 实际上,主要的https服务部署在AWS端,并且我正在使用Site to Site VPN b / w AWS to GCP来通过GCP访问此服务。我可以确认可以在与VPN连接的同一VPC上的GCP计算实例上访问此服务。
我在创建功能时通过Web控制台创建了无服务器连接器。在IAM中,我可以看到以下服务帐户权限:
1::无服务器VPC访问服务代理(无服务器VPC访问管理,无服务器VPC访问服务代理)
2 :Google云功能服务代理(云功能服务代理,无服务器VPC访问管理员)
3 :我自己的帐户,来自我的GCP测试功能(编辑者,所有者,无服务器VPC访问管理员)
还有其他服务帐户,但我认为它们与测试功能等无关或有趣。
这是我的示例功能代码:
var http = require('https');
exports.helloWorld = (req,res) => {
http
.get('https://172.31.93.233/proxy.php?api=catalogos_direcciones',resp => {
let data = ''
resp.on('data',chunk => {
data += chunk
})
resp.on('end',() => {
let peopleData = JSON.parse(data)
console.log(peopleData);
res.status(200).json(peopleData);
})
})
};
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)