首页 > 解决方案 > Google App Engine 应用程序和 Google Cloud Engine 实例之间的通信

问题描述

查看 GCE 实例,您可以看到 IP 地址有两种主要类型(内部一种和外部一种)。

现在,如果我有一个 Google App Engine 应用程序(flex env)和一个在 Google Compute Engine 实例中运行的后端。两个应用程序都在同一个 GCP 项目中运行。应用引擎应用程序是否可以使用其内部 IP 地址请求 GCE 后端应用程序?我猜想,在同一个项目中运行的应用程序也在同一个 VPC 中运行。

由于我使用的是 GAE flex env,我可以 ssh GAE 实例,并且通过对 GCE 实例的内部 IP 地址的 curl 请求,我得到了回复,但是当我尝试在应用程序中请求 GCE 后端时(axios例如请求)它不起作用,我没有得到任何数据,我可以在 GCE 实例中看到请求没有转发到服务器。

知道如何使用 GCE 实例的内部 IP 地址与在同一项目中运行的 GAE 应用程序进行通信吗?

标签: google-app-enginegoogle-cloud-platformgoogle-compute-engine

解决方案


好吧,只是回答我自己的问题,经过大量尝试和搜索,与内部服务通信的最佳方式是创建一个内部负载均衡器(tcp),因为它没有意义(至少对于我的用例)连接到一个实例,毕竟我希望我的应用程序能够扩展。所以我做了什么,我在内部实例前面创建了一个 TCP 负载均衡器(它们无论如何都作为实例组运行),然后我得到一个静态内部 ip 并将其分配给内部负载均衡器,在 GAE 中使用该静态 ip 和它工作。

我根据实例组模板确保防火墙规则正确。最终一切都奏效了。


推荐阅读