Terraform 后端到 azure blob 存储错误

Sta*_*011 13 azure terraform

我一直在使用以下内容在 Azure 存储中为 terraform 成功创建后端状态文件,但由于某种原因它停止工作。我已经为存储回收了密码,尝试了两个密钥并每次都得到相同的错误

后端.tf

    terraform {
    backend "azurerm" {
        storage_account_name    = "terraformstorage"
        resource_group_name     = "automation"
        container_name          = "terraform" 
        key                     = "testautomation.terraform.tfstate"
        access_key              = "<storage key>"
    }
}
Run Code Online (Sandbox Code Playgroud)

返回错误

terraform init 正在
初始化后端...
成功配置后端“azurerm”!除非后端配置更改,否则 Terraform 将自动使用此后端。
错误刷新状态:存储:服务返回错误:StatusCode=403,ErrorCode=AuthenticationFailed,ErrorMessage=服务器无法验证请求。确保 Authorization 标头的值形成正确,包括签名。RequestId:665e0067-b01e-007a-6084-97da67000000
时间:2018-12-19T10:18:18.7148241Z, RequestInitiated=2018 年 12 月 19 日星期三 10:18:186060707007000000000000000000000000000000008000008G API 版本=, QueryParameterName=, QueryParameterValue=

任何想法我做错了什么?

vga*_*tes 15

对我有用的是删除本地 .terraform 文件夹并重试。


Max*_*lle 11

另一个问题可能是时间分辨率。

我也遇到了这些问题,尝试了上述所有步骤,但没有任何帮助。

我的系统(Windows 10、WSL2)上发生的事情是,WSL 失去了时间同步,而我相隔了几个小时。这种行为在https://github.com/microsoft/WSL/issues/4245 中有描述。

对我来说它有助于

  • 在 WSL ( sudo hwclock -s) 中获得适当的时间和

  • 重新启动 WSL

希望,这也会对其他人有所帮助。

  • 这对我也有用。我只需要运行 hwclock -s,不需要重新启动。当我看到这个命令时,我不得不翻白眼。这也给我的 Apache Airflow 带来了一个问题(通过运行相同的命令解决)——原因是,当我的笔记本电脑进入睡眠状态时,WSL 也会小睡一下,因此浪费了时间。我可能只是在 bash 配置文件中创建一个脚本作为临时修复。 (2认同)

ken*_*orb 8

以下是一些建议:

  • 跑步:terraform init -reconfigure
  • 确认您的“terraform/后端”凭据。
  • 如果您的 Terraform 包含一些“ azurerm_storage_account/network_rules ”以允许某些 IP 地址,或确保您已连接到正确的 VPN 网络。
  • 如果上述不起作用,请运行TF_LOG=TRACE terraform init进一步调试。