使用Terraform Cloud认证GCP时遇转义序列错误求助
解决Terraform GCP认证路径转义错误
问题根源
Windows系统路径中的反斜杠\在Terraform字符串中属于转义字符,Terraform会尝试解析\U、\p这类序列为特殊字符,但这些并非合法的转义序列,因此触发报错。
解决方案
方案1:利用已配置的环境变量(推荐)
你已经在Terraform Cloud中配置了GOOGLE_CLOUD_KEYFILE_JSON环境变量,Terraform的Google Provider会自动读取该变量完成认证,无需在代码中硬编码credentials路径。修改后的代码如下:
provider "google" { project = "strange-flame-167811" region = "us-east1" // 移除credentials字段,自动读取环境变量 } resource "google_storage_bucket" "test" { name = "my-project-id-test-bucket" location = "us-east1" }
方案2:修复路径转义(硬编码路径时使用)
如果必须在代码中指定本地密钥文件路径,可通过以下两种方式修正转义问题:
- 使用双反斜杠替代单个反斜杠:
provider "google" { project = "strange-flame-167811" region = "us-east1" credentials = "C:\\Users\\palla\\Downloads\\strange-flame-167811-26139c8660b2.json" }
- 使用正斜杠作为路径分隔符(Terraform支持跨平台解析):
provider "google" { project = "strange-flame-167811" region = "us-east1" credentials = "C:/Users/palla/Downloads/strange-flame-167811-26139c8660b2.json" }
内容的提问来源于stack exchange,提问作者Pallab
相关产品推荐
相关产品推荐

