google-cloud-platform - Terraform 覆盖远程后端上的状态文件
问题描述
很可能我做错了什么或在这里遗漏了一些东西。
这就是我的 terraform 模板的样子:
locals {
credentials_file_path = "~/gcp-auth/account.json"
}
terraform {
backend "gcs" {
bucket = "somebucket-tf-state"
prefix = "terraform/state/"
credentials = "~/gcp-auth/account.json"
}
}
provider "google" {
region = "${var.region}"
credentials = "${file(local.credentials_file_path)}"
}
module "project" {
source = "../modules/gcp-project/"
project_name = "${var.project_name}"
billing_account = "${var.billing_account}"
org_id = "${var.org_id}"
}
当我使用不同的参数多次运行它时,它会覆盖以前的状态文件。
这是我在桶中看到的:
Buckets/somebucket-tf-state/terraform/state/default.tfstate
有没有办法可以为每个运行模板的项目创建不同的状态文件?
解决方案
更好的选择是使用 GitOps。您应该为每个分支创建一个环境,并为每个环境在存储桶名称中注入正确的值。
推荐阅读
- unit-testing - GNU Prolog 中的单元测试
- python - 尝试 tf.image.resize 数据集时,Google Colab 内存不足(12GB)
- python - Python Pandas Dataframe:如何从现有数据框列中获取趋势线数据?
- java - 如何在没有浏览器登录 OAuth 2.0 的情况下使用 YouTube Data API for Java 插入评论?
- healpy - HEALpy - 从像素、l 和 m 的函数中获取球面谐波
- go - 构建不包括测试模块
- c# - Winform 验证标签文本长度
- c - 使用 C 动态清除字符串
- sql - 使用 Group By 和 3 列查看
- keycloak - 允许使用 keycloak 进行匿名请求