【发布时间】:2021-07-13 18:37:10
【问题描述】:
我想让我的 Google Cloud Run 服务通过非 HTTP 和/或无需在我的代码中添加不记名身份验证相互私下通信。
我知道this documentation from Google 描述了如何在服务之间进行经过身份验证的访问,尽管它显然仅适用于 HTTP。
我想我大概知道什么是必要的:
- 为我的项目创建自定义 VPC
- 启用Serverless VPC Connector
我不太清楚的是:
- 这些有必要吗?同一项目中的 Cloud Run 服务是否可以相互看到?
- 在此之后服务如何相互寻址?
- 我是否能够使用更简单的按惯例 DNS 名称?例如,我是否可以在我的 VPC 上将 Cloud Run 清单中的每个服务作为一个单一的一级 DNS 名称,如
apione和apitwo,而不是我必须通过我的部署提示的更大的 DNS 名称? - 如果没有,是否有任何机制让服务发现名称?
- 我是否能够使用更简单的按惯例 DNS 名称?例如,我是否可以在我的 VPC 上将 Cloud Run 清单中的每个服务作为一个单一的一级 DNS 名称,如
- 如果我将托管的 Cloud SQL postgres 数据库放在此网络上,我可以控制其 DNS 名称吗?
最后,我还有什么其他需要注意的问题吗?您可以假设我的用例非常简单,Cloud Run 上有两个或更多长期服务,进行非 HTTP TCP/UDP 通信。
我还发现了一个potentially related Google Cloud Run feature request,如果目前无法做到这一点,值得点赞。
【问题讨论】:
-
非http通信我不清楚?是调用 Cloud Run 吗?还是 Cloud Run 发起的与您的 VPC 中运行的服务的通信?另外,如果使用 DNS,什么会在 DNS 中创建条目?你在期待什么?
-
如云运行服务之间的非http。对于 DNS,我不知道,这就是我要问的问题。同一个区域、同一个项目中的云运行服务是否相互可见?
标签: google-cloud-platform google-cloud-run google-cloud-networking