跨项目连接 Google Cloud Functions

跨项目连接 Google Cloud Functions

我正在使用 Google Cloud Functions,并且有多个带有云函数的项目,它们需要相互通信。我的问题是,只有当函数的 Ingress 设置设置为“允许所有流量”时,它们才能相互通信。一旦我将其更改为所需的设置,即“仅允许内部流量”,项目 B 就无法与项目 A 通信。这两个项目是 Firebase 项目,它们配置了 VPC 网络以及无服务器 VPC,以便与后端数据库进行通信。

据我所知,Google 表示我应该创建一个 VPC SC Perimeter,其中包含所有需要相互通信的项目,这是为了解决问题。我已经这样做了,但如果设置为“仅允许内部流量”,我仍然会遇到访问问题

我还尝试设置具有静态私有 IP 地址的 vpc 网络。然后,我尝试从 projectB 通过私有 IP 与 ProkectA 进行通信,但出现了超时错误。

projectA 和 projectB 都设置了具有内部私有 IP 的 vpc。

我也尝试在项目之间使用 VPC 对等,但仍然出现超时问题。

有人能提供一些建议吗?

答案1

确实,根据这个文档

仅允许内部流量:仅允许来自同一项目或 VPC Service Controls 边界内的 VPC 网络的请求。所有其他请求都将被拒绝并出现 403 错误。

为了能够通过“仅允许内部流量”与云功能进行通信,您需要:

1- 包括 VPC 服务控制范围内的所有项目。

2- 通过您的 VPC 网络路由调用功能出口。

您可以参考这个例子用例了解更多详细信息。

答案2

不幸的是,我从未解决这个问题,我不得不让它保持打开状态才能使连接正常工作。从那时起,我就已经开始在 AWS 上工作,所以没有再遇到这个问题。

相关内容