[英]How to reference an existing organization folder, or other resources, in Terraform (For GCP)
我是 Terraform 的新手,如果这个问题有一个明显的答案我很抱歉,我很抱歉。
我正在尝试为现有组织创建一个 terraform 配置文件。 除了该组织中已经存在的Shared
文件夹外,我能够提供下面概述的main.tf
中的所有内容。
相关 github 问题:
以下是我遵循的步骤:
Shared
文件夹。Shared
文件夹的根目录下手动创建一个Terraform 管理项目<redacted-project-name>
。terraform@<redacted-project-name>
的服务帐户terraform@<redacted-project-name>
服务帐户创建、下载并安全地存储密钥。cloudresourcemanager.googleapis.com
管理项目中的 cloudresourcemanager.googleapis.com、 cloudbilling.googleapis.com
、 iam.googleapis.com
、 serviceusage.googleapis.com
main.tf
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "3.85.0"
}
}
}
provider "google" {
credentials = file(var.credentials_file)
region = var.region
zone = var.zone
}
data "google_organization" "org" {
organization = var.organization.id
}
resource "google_folder" "shared" {
display_name = "Shared"
parent = data.google_organization.org.name
}
resource "google_folder" "ddm" {
display_name = "Data and Digital Marketing"
parent = data.google_organization.org.name
}
resource "google_folder" "dtl" {
display_name = "DTL"
parent = google_folder.ddm.name
}
我收到的错误:
Error: Error creating folder 'Shared' in 'organizations/<redacted-org-id>': Error waiting for creating folder: Error code 9, message: Folder reservation failed for parent [organizations/<redacted-org-id>], folder [] due to constraint: The folder operation violates display name uniqueness within the parent.
如何在 terraform 配置文件中包含现有资源?
main.tf
中声明或导入terraform 管理项目?terraform apply
为了在 terraform 模板中包含已经存在的资源,请使用import
语句。
在 google_folder 的Terraform 文档中:
# Both syntaxes are valid
$ terraform import google_folder.department1 1234567
$ terraform import google_folder.department1 folders/1234567
所以对于上面的例子,
gcloud alpha resource-manager folders list --organization=<redacted_org_id>
获取文件夹ID。main.tf
中的资源resource "google_folder" "shared" { display_name = "Shared" parent = data.google_organization.org.name }
terraform import google_folder.shared folders/<redacted_folder_id>
。 你应该得到一个 output 像google_folder.shared: Import prepared!
terraform plan
更新。 No changes. Your infrastructure matches the configuration. Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.