程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Public Cloud Run Service 与仅限内部的入口 Cloud Run Service 通信大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Public Cloud Run service 与仅限内部的入口 Cloud Run service 通信?

开发过程中遇到Public Cloud Run service 与仅限内部的入口 Cloud Run service 通信的问题如何解决?下面主要结合日常开发的经验,给出你关于Public Cloud Run service 与仅限内部的入口 Cloud Run service 通信的解决方法建议,希望对你解决Public Cloud Run service 与仅限内部的入口 Cloud Run service 通信有所启发或帮助;

我必须进行以下设置:

  • 使用 CIDR 范围“10.8.0.0/28”(已编辑)的 VPC 网络 VV 的 VPC 连接器
  • 以下服务 A 和 B 通过连接器连接到 VPC
  • Cloud Run service A:此服务设置为 ingress=internal 以保护 API。它的 egress 设置为或 private-ranges-only
  • Cloud Run service B:此服务为另一个 service C within the Azure Cloud 提供 API。 B 还需要访问 service A 的 API。 egressingress 设置为 all 以通过 VPC 连接器路由所有传出流量并允许在内部 service A 上成功请求。

当前问题如下:来自 service C -> service B 的请求以 504 网关超时返回。如果 service B 的出口更改为 private-ranges-only,则服务 C 的请求成功,但返回 B 的所有请求 -> A 返回 403 ForbIDden 因为流量不再通过 VPC 连接器路由,因为 Cloud Run不允许私有范围将流量发送到服务 A(afaik)。 Cloud Run 服务对其他 Cloud Run 服务的所有请求当前都发送到“*.run.app”网址。

我想不出可能且方便地修复此设置的想法。有没有解释为什么 egress=all 中的 service B 导致来自服务 C 的请求的网关超时。我尝试跟踪来自 VPC 的日志,但没有看到任何原因。

解决方法

需要进行以下更改才能运行:

  1. 按照此 guide 为服务 B 创建静态出站 IP
  2. 删除之前创建的 VPC 连接器(创建时使用 CIDR 范围而不是指南中的子网)
  3. 更新 Cloud Run service B 以使用在第 1 步中创建的 VPC 连接器

由于删除静态出站 ip 会破坏设置,我假设 azure 服务需要一个静态 ip 进行通信。

大佬总结

以上是大佬教程为你收集整理的Public Cloud Run Service 与仅限内部的入口 Cloud Run Service 通信全部内容,希望文章能够帮你解决Public Cloud Run Service 与仅限内部的入口 Cloud Run Service 通信所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。