首页 > 解决方案 > 我们如何使用与公共互联网隔离的内部通信来实现应用引擎服务来服务通信?

问题描述

我有两个应用引擎服务,我想只使用内部通信从另一个服务调用一个服务。我该怎么做呢?例如,abcproject.service1.appspot.com 调用 abcproject.service2.appspot.com

标签: google-app-enginegoogle-cloud-platformgoogle-cloud-networking

解决方案


正确的问题:内部是什么意思?

首先,内部 IP 是不可能的,因为你没有 IP,但你有 URL。该服务是无服务器的,它可以自动扩展和缩减,他在一个负载均衡器(GFE - Google Front End)后面,负责验证和路由请求。对于您的项目或其他项目中的所有/许多 App Engine 服务,它都是相同的组件。它也是保护 Google 服务(Youtube、Playstore、Gmail...)的同一层

因此,您可以进行内部 URL 通信吗?这里的内部是模糊的:内部是什么?

  • 到你的项目?不,因为 App Engine 实例不在您的项目/VPC 中,而是在您无法管理的 Google 管理的世界中。
  • 到谷歌云?是的,请求保留在 Google Cloud 网络中,永远不会到达公共互联网。请求总是经过身份验证,有时是加密的

背后的问题是:为什么您只想使用内部 IP?我猜是为了安全。因此,您可以使用IAP来让 GFE 在将请求转发到 App Engine 之前检查请求者的身份验证和 IAM 授权。这样,只有经过身份验证和授权的流量才能到达服务。

它不希望您最终想要实现吗?


推荐阅读