当 API 仅允许受限 IP 时,如何使用 Google App Engine 或 Cloud Composer 进行 API 调用

How to do API calls with Google App Engine or Cloud Composer when the API only allows restricted IPs

我有作业和 APIs 托管在云作曲家和 App Engine 上,运行良好。但是,对于我的一项工作,我需要调用一个受 IP 限制的 API。

据我了解,我发现 App Engine 和 cloud composer worker 没有固定的 IP,我不知道什么是最好的解决方案。

我考虑创建一个具有固定 IP 的 GCE,该 GCE 将由云作曲家或应用引擎切换 on/off,然后 API 调用将由启动脚本执行。但是,它将此限制为仅异步任务,并且似乎添加了一个不需要的步骤。

有人告诉我可以设置代理,但我不知道该怎么做,而且我没有找到关于它的全面文档。

您对此用例有什么建议吗?

非常感谢您的帮助

这可能超出了您的范围,但您可以通过在 _cloud-netblocks.googleusercontent.com

上执行查找将整个应用引擎 IP 范围列入白名单

在这种情况下,您要将所有 App Engine 应用程序列入白名单,因此请确保此 api 具有另一种授权和良好的安全性。有关 App Engine KB 的更多信息。

我要做的是在 GCE 上安装或实施某种 API 代理。为此类任务配备 24/7 全天候运行的虚拟机真是太可惜了,因此您还可以使用自动缩放器缩放到 0(不确定这个)。

正如您所提到的:您可以在 GCE 中设置一个 TCP 或 UDP 代理作为中继,然后将请求发送到中继(然后将这些请求转发到受 IP 限制的主机)。

但是,这在某些情况下可能有些脆弱(并引入单点故障)。因此,您可以考虑的另一种选择是创建私有 IP Cloud Composer 环境,然后使用 Cloud NAT 进行 public IP 连接。这样,来自 Composer 中 Airflow 的所有请求看起来都像是来自 NAT 网关的 IP 地址。