Terraform技术问题:如何通过文件夹名称获取GCP文件夹ID
通过Terraform根据名称获取GCP文件夹ID的解决方案
直接使用google_folder或google_active_folder数据源无法通过名称获取文件夹ID,因为它们要求传入已知的文件夹ID格式参数。你可以使用google_search_folder数据源来实现按名称搜索文件夹的需求:
示例代码
# 配置Google Provider(确保版本足够新,支持google_search_folder) terraform { required_providers { google = { source = "hashicorp/google" version = ">= 4.0.0" } } } provider "google" { project = "your-project-id" } # 通过名称搜索文件夹,指定父资源(组织或父文件夹) data "google_search_folder" "target_folder" { display_name = "你的目标文件夹名称" parent = "orgs/你的组织ID" # 若目标文件夹在某个父文件夹下,可改为"folders/父文件夹ID" } # 输出获取到的文件夹ID output "folder_id" { value = data.google_search_folder.target_folder.folder_id }
关键说明
google_search_folder会在指定的parent资源范围内,搜索匹配display_name的文件夹,请确保目标文件夹名称在该范围内唯一,避免返回多个结果。- 需确保Terraform Google Provider版本足够新(建议4.0.0及以上),旧版本可能不支持该数据源。
- 如果搜索结果不唯一,可以添加
filter参数进一步过滤,比如结合文件夹的其他属性缩小范围。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

