You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform部署GCP资源时部分资源出现404错误求助

Terraform部署GCP资源出现404错误(路径重复问题)

问题根因

错误URL中出现重复的organizations/前缀(/v2/organizations/organizations/XXXXXXXXXXX/policies),这是因为在Terraform配置中,你给组织级资源的parent或org_id参数传入了带organizations/前缀的完整路径,而GCP Provider本身会自动为组织资源添加organizations/前缀,导致路径拼接重复,触发404。

解决方案

  1. 检查所有组织级资源的配置(如google_org_policy_policy、google_organization_policy、google_monitoring_notification_channel等),将parent或org_id参数的值改为纯数字组织ID,去掉organizations/前缀:
    错误配置示例:
    resource "google_org_policy_policy" "primary" {
      parent = "organizations/XXXXXXXXXXX"
      # 其他配置项...
    }
    
    正确配置示例:
    resource "google_org_policy_policy" "primary" {
      parent = "XXXXXXXXXXX"
      # 其他配置项...
    }
    
    部分资源支持org_id参数,同样只需传入纯数字ID:
    resource "google_organization_policy" "example" {
      org_id = "XXXXXXXXXXX"
      # 其他配置项...
    }
    
  2. 重新初始化Provider并执行部署:
    terraform init -upgrade
    terraform plan
    terraform apply
    

补充说明

  • 手动创建资源正常是因为GCP控制台或gcloud CLI会自动兼容带前缀的路径格式,但Terraform Provider对参数格式有严格要求,需明确区分纯ID和完整路径。
  • 更换多个Provider版本仍出现问题,是因为该参数的解析逻辑在各版本中保持一致,问题核心并非Provider版本,而是配置格式错误。

错误示例

│   <a href=//www.google.com/><span id=logo aria-label=Google></span></a>
│   <p><b>404.</b> <ins>That’s an error.</ins>
│   <p>The requested URL <code>/v2/organizations/organizations/XXXXXXXXXXX/policies?alt=json</code> was not found on this server.  <ins>That’s all we know.</ins>
│ 
│ 
│   with google_org_policy_policy.primary,
│   on main.tf line 5, in resource "google_org_policy_policy" "primary":
│    5: resource "google_org_policy_policy" "primary" {

内容的提问来源于stack exchange,提问作者Mor Y

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 08:30:51