【发布时间】:2022-02-19 04:04:38
【问题描述】:
我目前正在为我的 GCP Cloud Run 服务使用每个微服务一个存储桶的方法。这意味着我拥有的每项服务都有一个 Cloud Storage Bucket,其中包含其 Cloud Run 服务的 default.tfstate 文件。我有多个以开发、暂存或生产为后缀的 GCP 项目环境。在我的三个 GCP 项目环境中,每个 Cloud Run 服务都有自己的变体。例如,我的 foo-service 存在于 GCP 开发(当它正在开发时)、暂存(当我将它合并到 main、部署、测试它等时)和生产中(当我说质量足以实时部署时)生产)。这个服务有三个 GCP 云存储桶,我必须以一种避免与其他桶命名冲突的方式来命名它们。
您可以在下面看到我正在使用的结构。每个存储桶都包含一个用于 Terraform 的 default.tfstate 文件。
GCP 项目名称:my-project-prod
- 存储桶:service-one-prod
- 存储桶:service-two-prod
- 存储桶:service-three-prod
GCP 项目名称:my-project-stag
- 桶:service-one-stag
- 桶:service-two-stag
- 桶:service-three-stag
GCP 项目名称:my-project-dev
- 存储桶:service-one-dev
- 存储桶:service-two-dev
- 存储桶:service-three-dev
每个 GCP 项目环境使用一个 Cloud Storage Bucket 是否有优势,其中包含我的每项服务的子文件夹,如下面的结构?每个文件夹都将包含 Terraform 的 default.tfstate。
GCP 项目名称:my-project-prod
- 存储桶:我的项目产品
- 文件夹:service-one
- 文件夹:服务二
- 文件夹:服务三
GCP 项目名称:my-project-stag
- 存储桶:my-project-stag
- 文件夹:service-one
- 文件夹:服务二
- 文件夹:服务三
GCP 项目名称:my-project-dev
- 存储桶:我的项目开发
- 文件夹:service-one
- 文件夹:服务二
- 文件夹:服务三
我只使用存储桶为我的 Cloud Run 服务存储 Terraform 状态。我要么创建多个存储桶,要么在一个存储桶中创建多个文件夹。
编辑原始帖子以获取下面的更多上下文。
我正处于产品开发的早期阶段,因此在开始扩展之前我正在寻找最佳实践。我目前有五个 Cloud Run 服务,未来还有更多需要开发。所有 Cloud Run 服务都位于 us-central1 区域中,并且每个服务都使用默认的 Compute Engine 服务帐户来确保安全。每个服务都有自己的专用 Cloud Storage Bucket,其中位置设置为 US(多个区域)或 us-central1。我正在使用存储桶来存储 Cloud Run Service 的 default.tfstate,仅此而已。我的服务是简单的 API,可以从多个来源读取/写入数据,例如其他 API、数据库、主题/队列。
我想说这些服务很简单。他们没有突破存储桶或存储桶访问的限制。
【问题讨论】:
标签: google-cloud-platform google-cloud-storage google-cloud-run terraform-provider-gcp