将GCP云与terraform一起使用时,可以自动启用API吗?

时间:2019-11-26 16:28:39

标签: google-cloud-platform terraform terraform-provider-gcp

我对使用terraform的GCP非常陌生,我想使用集中式工具部署所有模块。

有什么方法可以取消每次启用google API的步骤,以使部署不会中断?

3 个答案:

答案 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
}