我正试图将Terraform与谷歌云存储后端一起使用,但在CI管道中执行时遇到了一些问题。
我已经将GOOGLE_APPLICATION_CREDENTIALS设置为我的服务帐户JSON密钥文件,但每当我尝试初始化Terraform时,我都会收到以下错误:
Error loading state: 2 errors occurred:
* writing "gs://[my bucket name]/state/default.tflock" failed: googleapi: Error 403: Access denied., forbidden
* storage: object doesn't exist
我已经尝试了所有记录在案的身份验证方法,但仍然没有成功。
事实证明,只有第二个错误实际上是相关的,而且根本不存在身份验证问题。
我的远程后端只包含我的自定义工作区状态文件,没有默认状态。由于terraform init
需要在切换到工作空间之前执行,因此它正在查找不存在的default.tflock
/default.tfstate
文件。
在我的本地工作站上,我初始化了默认工作区,它创建了Terraform正在查找的文件。
我浪费了好几个小时试图调试一个不存在的服务帐户身份验证问题。我希望这个答案能把别人从兔子洞里救出来。。。