我正在使用 GCP 托管的 Cloud Run 和 MongoDB Atlas 开发应用程序。如果我允许从任何地方连接 Atlas 的 IP 白名单,Cloud Run 与 MongoDB Atlas 完美配合。但是,我只想限制必要 IP 的连接,但我在云中找不到 Cloud Run 的出站 IP。有什么办法可以知道出站IP吗?
Ahm*_*gle 10
更新(2020 年 10 月): Cloud Run 现已推出VPC 出口功能,可让您为通过 Cloud NAT 的出站请求配置静态 IP。您可以按照文档中的此分步指南配置静态 IP 以将其列入 MongoDB Atlas 的白名单。
在 Cloud Run 开始支持 Cloud NAT 或无服务器 VPC 访问之前,不幸的是,这不受支持。
正如@Steren 所提到的,您可以通过运行ssh客户端来创建 SOCKS 代理,该客户端通过具有静态外部 IP 地址的 GCE VM 实例路由流量。
我在这里写了博客:https : //ahmet.im/blog/cloud-run-static-ip/,您可以在以下位置找到带有工作示例的分步说明:https : //github.com/ ahmetb/cloud-run-static-outbound-ip
Cloud Run 服务不会获取静态 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
Run Code Online (Sandbox Code Playgroud)
使用PROXY包含代理的 IP 或 URL 的环境变量(请参阅此处设置环境变量)
对于此代理,您可以:
我个人使用了第二种解决方案。该服务为我提供了一个包含用户名和密码的 URL,然后我使用上面的代码将其用作代理。
| 归档时间: |
|
| 查看次数: |
7020 次 |
| 最近记录: |