这里是 Terraform 的新手。我正在尝试使用 Terraform 创建多个项目(在 Google Cloud 中)。问题是我必须执行多个资源才能完全建立一个项目。我试过count
,但是如何使用顺序绑定多个资源count
?以下是我需要为每个项目执行的以下资源:
- 使用创建项目
resource "google_project"
- 使用启用 API 服务
resource "google_project_service"
- 使用以下命令将服务项目附加到宿主项目
resource "google_compute_shared_vpc_service_project"
(我使用的是共享VPC)
如果我想创建一个项目,这很有效。但是,如果我传递一个项目列表作为输入,如何按顺序执行该列表中每个项目的所有上述资源?
Eg.
Input
project_list=["proj-1","proj-2"]
依次执行以下命令:
resource "google-project" for "proj-1"
resource "google_project_service" for "proj-1"
resource "google_compute_shared_vpc_service_project" for "proj-1"
resource "google-project" for "proj-2"
resource "google_project_service" for "proj-2"
resource "google_compute_shared_vpc_service_project" for "proj-2"
我正在使用 Terraform 0.11 版本,它不支持for
loops
在 Terraform 中,您可以使用以下方法来完成此操作count
和两个插值函数,element()
and length()
.
首先,您将为模块提供一个输入变量:
variable "project_list" {
type = "list"
}
然后,你会得到类似的东西:
resource "google_project" {
count = "${length(var.project_list)}"
name = "${element(var.project_list, count.index)}"
}
resource "google_project_service" {
count = "${length(var.project_list)}"
name = "${element(var.project_list, count.index)}"
}
resource "google_compute_shared_vpc_service_project" {
count = "${length(var.project_list)}"
name = "${element(var.project_list, count.index)}"
}
当然,您还将在这些资源声明中拥有其他配置。
请注意,此模式在中进行了描述Terraform 启动并运行 https://www.terraformupandrunning.com,第 5 章,还有其他使用示例count.index
在文档中here https://www.terraform.io/docs/configuration-0-11/resources.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)