首页 > 解决方案 > Google Cloud Function:获取请求的区域

问题描述

我正在用 PHP 开发一个 API。我需要知道在哪个区域请求此 api。如果可能的话,使用最低延迟策略(尽管我没有找到任何帮助)。

为此,我在我的云功能中使用了带有 CDN 的全局负载均衡器。

我试图查看请求标头和环境变量,但没有任何东西让我想起带有 CDN 的全局负载均衡器正在缓存 API 的区域。

从现在开始,我非常感谢任何帮助......

标签: google-cloud-platformgoogle-cloud-functionsgoogle-cloud-cdn

解决方案


如果你在处理请求的时候想知道你后端的用户所在的地区,就不能使用CDN。您需要让所有请求转到您的 Cloud Functions。

如果您想获得最低延迟,您可以在 GCP 的多个(全部?)区域中部署相同的功能,并在它们前面放置一个带有无服务器 NEG 的负载均衡器。

这样,请求将在最接近请求者的地方提供服务,您将能够获取请求者的 IP 并从中推断出区域。您还可以依靠 Cloud Functions 区域来了解哪个区域处理用户请求,而无需知道用户 IP 位置的确切位置。


推荐阅读