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
相关产品推荐
相关产品推荐

