我以前可以在digitalocean上使用terraform 0.11。我已经将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一起使用。
发布于 2020-12-07 08:13:32
可能发生的情况是,在升级之后,您没有正确地加载变量。所以terraform向提供者传递了一个空的令牌。然后,提供者尝试使用空/错误的令牌进行认证,并且失败,从而导致步骤401。
如果您提供的是默认值,要确认此问题,请尝试删除默认值,并让它转而询问您。
#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.tfvars (auto.tfvars是关键字):
do_token = ua0uhk0a0ka0k7a0o90ia0oekadho0eka9它应该可以工作,或者向你索要一个令牌。
https://stackoverflow.com/questions/65067089
复制相似问题