【问题标题】:getting 401 with terraform 0.13.5 and digitalocean使用 terraform 0.13.5 和 digitalocean 获得 401
【发布时间】:2020-11-30 01:41:13
【问题描述】:

我之前可以将 terraform 0.11 与 digitalocean 一起使用。此后,我将 terraform 版本更新为 0.13.5 并更新了 digitalocean 提供程序。但是,在此更改之后,我无法配置任何资源,因为我从 digitalocean 收到 401 错误。我什至尝试过使用新的身份验证令牌,但结果相同。

Error: Error creating droplet: POST https://api.digitalocean.com/v2/droplets: 401 Unable to authenticate you

我已修改 TF_LOG 值,但未提供任何其他详细信息来帮助调试问题。有关如何进一步解决此问题的任何想法?

令牌有效,因为我可以将它与 curl 一起使用,但不能与 terraform 0.13.5 和 digitalocean provider 2.2.0 一起使用。

【问题讨论】:

    标签: terraform digital-ocean


    【解决方案1】:

    可能发生的情况是,升级后,您没有正确加载变量。 因此,terraform 将一个空令牌传递给提供者。然后,提供者尝试使用空/错误的令牌进行身份验证,但失败并导致 401。

    如果您提供默认值,要确认问题,请尝试删除默认值,并改为询问您。

    试试Following this example

    #Set the variable value in *.tfvars file
    # or using -var="do_token=..." CLI option
    variable "do_token" {}
    
    # Configure the DigitalOcean Provider
    provider "digitalocean" {
      token = var.do_token
    }
    
    # Create a web server
    resource "digitalocean_droplet" "web" {
      # ...
    }
    

    并确保将文件命名为 whatever.auto.tfvarsauto.tfvars 是关键),并使用如下令牌:

    do_token = ua0uhk0a0ka0k7a0o90ia0oekadho0eka9
    

    它应该可以工作,或者要求你提供一个令牌。

    【讨论】:

    • 谢谢,但这并没有解决问题。我在 CLI 请求时复制了 pwd,但结果仍然是 401 响应(我已在 terraform 之外验证了提供程序的代码,并且确实成功通过了身份验证)/
    • 当我创建一个新的 ssh 密钥,将公钥添加到 digitalocean 并将其用于部署时,问题得到了解决。
    猜你喜欢
    • 1970-01-01
    • 2021-06-01
    • 2021-04-19
    • 1970-01-01
    • 2023-03-11
    • 2020-08-26
    • 2020-10-20
    • 1970-01-01
    • 2019-07-04
    相关资源
    最近更新 更多