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

Terraform Apply随机出现Unexpected EOF错误求助

Terraform Apply 随机触发 Unexpected EOF 错误(GCP环境,自定义CA证书场景)

问题现象

  • 相同Terraform代码(v1.0.2 windows_amd64)搭配GCP Provider(v4.46.0),在个人笔记本执行terraform apply完全正常
  • 工作笔记本因安全要求,通过gcloud config set core/custom_ca_certs_file配置了自定义证书,执行apply时随机触发Unexpected EOF错误,每次报错的资源不固定(比如有时是ResourcePolicy,有时是Network)
  • 错误示例:
google_compute_health_check.autohealing[0]: Creating...
google_compute_health_check.autohealing[0]: Still creating... [10s elapsed]
google_compute_health_check.autohealing[0]: Creation complete after 11s [id=projects/terraform-101-370721/global/healthChecks/auto-health-check]
╷
│ Error: Error creating ResourcePolicy: unexpected EOF
│
│   with google_compute_resource_policy.daily_backup,
│   on instance_group.tf line 74, in resource "google_compute_resource_policy" "daily_backup":
│   74: resource "google_compute_resource_policy" "daily_backup" {
│
╵
╷
│ Error: Error creating Network: unexpected EOF
│
│   with google_compute_network.network[0],
│   on network.tf line 3, in resource "google_compute_network" "network":
│    3: resource "google_compute_network" "network" {
│
╵

相关代码片段

resource "google_compute_resource_policy" "daily_backup" {
  name   = "every-day-4am"
  region = local.reg
  snapshot_schedule_policy {
    schedule {
      daily_schedule {
        days_in_cycle = 1
        start_time    = "04:00"
      }
    }
  }
}

resource "google_compute_network" "network" {
  count =  var.flip.set_ntw == true ? 1 : 0
  name                    = var.ntw.name
  auto_create_subnetworks = var.ntw.auto_create_sub
  mtu                     = var.ntw.ntw_mtu
}

排查方向与解决方案建议

  • 自定义CA证书兼容性检查
    检查自定义证书文件是否包含完整的根CA+中间CA链,格式是否为PEM编码。也可以尝试绕过gcloud配置,直接通过环境变量给Terraform传递证书:
    Windows环境执行:

    set GOOGLE_API_USE_CLIENT_CERTIFICATE=true
    set GRPC_DEFAULT_SSL_ROOTS_FILE_PATH=C:\path\to\your\custom_ca.crt
    

    类Unix环境执行:

    export GOOGLE_API_USE_CLIENT_CERTIFICATE=true
    export GRPC_DEFAULT_SSL_ROOTS_FILE_PATH=/path/to/your/custom_ca.crt
    
  • 网络稳定性排查
    工作笔记本的防火墙、代理可能随机中断Terraform与GCP API的连接,导致响应截断出现EOF。可以尝试增加Terraform的超时配置:

    provider "google" {
      # 原有配置保留
      timeout {
        create = "5m"
        update = "5m"
        delete = "5m"
      }
    }
    
  • 调整并行执行策略
    Terraform默认并行创建资源,网络不稳定时更容易触发中断。尝试串行执行apply:

    terraform apply -parallelism=1
    
  • 升级Provider版本
    虽然两台设备版本一致,但自定义CA场景下可能存在已知bug,尝试将GCP Provider升级到v4.50.0及以上版本,看是否修复了相关EOF问题

内容的提问来源于stack exchange,提问作者Harman Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 14:55:20