我正在开发一个应用程序,使用GCP托管云运行和MongoDB地图集。如果我允许从任何地方连接阿特拉斯的IP白名单,云运行与MongoDB阿特拉斯完美地工作。但是,我只想限制必要的I的连接,但我没有找到云运行的出站I。有办法知道出站IP吗?
发布于 2019-06-26 02:27:10
云运行(与所有可伸缩的无服务器产品一样)不会为您提供已知是传出通信量来源的专用IP地址。另见:可以为Google函数获取静态IP地址吗?
发布于 2019-07-24 20:37:42
更新(2020年10月): Cloud现在启动了VPC出口功能,允许您为通过Cloud的出站请求配置静态IP。您可以按照这是文档中的一步一步的指南将静态IP配置为MongoDB Atlas中的白名单。
在云运行开始支持云NAT或无服务器VPC访问之前,不幸的是,这是不受支持的。
正如@Steren所提到的,您可以通过运行ssh客户端来创建SOCKS代理,该客户端通过具有静态外部IP地址的GCE实例路由通信量。
我在这里写过这样的文章:https://ahmet.im/blog/cloud-run-static-ip/,您可以在:https://github.com/ahmetb/cloud-run-static-outbound-ip中找到一步一步的说明。
发布于 2019-07-11 23:16:07
云运行服务不获取静态IP。
解决方案之一是通过具有静态IP的代理发送出站请求。
例如,在Python中:
import requests
import sys
from flask import Flask
import os
app = Flask(__name__)
@app.route("/")
def hello():
proxy = os.environ.get('PROXY')
proxyDict = {
"http": proxy,
"https": proxy
}
r = requests.get('http://ifconfig.me/ip', proxies=proxyDict)
return 'You connected from IP address: ' + r.text使用包含代理的IP或URL的PROXY环境变量(参见这里的设置环境变量 )
对于此代理,您可以:
我个人使用了第二个解决方案。该服务为我提供一个URL,其中包含用户名和密码,然后我使用上面的代码作为代理。
https://stackoverflow.com/questions/56763967
复制相似问题