我对使用terraform的GCP非常陌生,我想使用集中式工具部署所有模块。
有什么方法可以取消每次启用google API的步骤,以使部署不会中断?
答案 0 :(得分:3)
是的,您可以使用google_project_service
资源来一次启用一个API。您可以使用count或其他循环方法来启用多个API。您将需要项目编辑/所有者角色来完成此操作。
您可以在此处找到示例https://github.com/CloudNativeTech/gdg-terraform-gcp-workshop/blob/master/03-project/project.tf#L23
答案 1 :(得分:2)
有一个名为“ google_project_service”的Terraform资源定义,该资源定义允许启用服务(API)。记录在google_project_service。
用法示例如下:
resource "google_project_service" "project" {
project = "your-project-id"
service = "iam.googleapis.com"
}
答案 2 :(得分:1)
除了使用@pradeep 建议的 count
之外,您还可以循环使用相关服务:
variable "gcp_service_list" {
description ="The list of apis necessary for the project"
type = list(string)
default = [
"cloudresourcemanager.googleapis.com",
"serviceusage.googleapis.com"
]
}
resource "google_project_service" "gcp_services" {
for_each = toset(var.gcp_service_list)
project = "your-project-id"
service = each.key
}