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

Terraform调用GCP Provider创建VM执行apply时报错

报错原因

这个报错和你给服务账号授予的Compute Admin角色、可用区配置、VM资源定义都没有关系,核心是Terraform使用服务账号凭证换取OAuth2令牌时请求异常中断,属于认证环节故障。

排查解决步骤
  • 优先检查本地credentials.json文件有效性
    90%以上的同类报错都是服务账号密钥文件损坏导致的:要么是从GCP控制台下载时网络不佳文件被截断,要么是手动编辑过文件破坏了JSON格式,要么是文件传输过程不完整。
    直接到GCP控制台对应服务账号的详情页,重新生成一份JSON格式的密钥,覆盖本地旧的credentials.json,不要手动修改文件内的任何内容。覆盖前可以先打开本地旧文件检查,如果内容缺结尾大括号、或者明显只有半截内容,直接替换即可。
  • 确认文件路径和读取权限正常
    你的配置中写的是读取当前执行目录下的credentials.json,先在执行terraform apply的目录运行ls -l credentials.json,确认文件存在、文件名没有写错(比如不要是隐藏后缀的credentials.json.txt),同时当前执行命令的用户对文件有读权限。也可以直接运行cat credentials.json,能正常输出完整JSON内容即可排除这部分问题。
  • 排查网络拦截问题
    如果凭证文件没有问题,检查本地网络是否开启了代理、防火墙规则是否拦截了到GCP OAuth端点的请求,令牌请求被中途截断就会返回unexpected EOF。可以临时关闭系统代理、调整防火墙规则后重试,确认到GCP公共API端点的连通性正常。
  • 升级Google Provider版本
    如果你本地使用的是多年前的旧版Google Terraform Provider,可能存在认证逻辑的兼容bug,执行terraform init -upgrade将Provider升级到稳定版后再重试。

额外说明:你贴的报错日志里显示正在创建的资源是google_compute_instance.vm_creation,但代码中定义的资源名是vm_instance,说明你修改代码后没有重新执行terraform plan刷新状态,解决认证问题后记得重新运行plan确认配置和状态一致,避免后续出现其他问题。

内容的提问来源于stack exchange,提问作者sidharth vijayakumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 23:39:30