地形计划原因:
错误:依赖锁定文件不一致
lock文件中记录的以下依赖选择与当前配置不一致: 提供程序registry.terraform.io/hashicorp/get:此配置需要但未选择版本
要更新锁定的依赖项选择以匹配更改的配置,请运行: terraform 初始化 - 升级
运行 terraform init -upgrade 会出现此错误:
错误:无法查询可用的提供程序包
无法检索提供商 hashicorp/get 的可用版本列表:提供商注册表registry.terraform.io 没有提供商
命名为registry.terraform.io/hashicorp/get所有模块都应指定其 required_providers,以便外部消费者在使用模块时获得正确的提供者。看看哪个
模块当前依赖于 hashcorp/get,运行以下命令: 地形提供商
terraform 提供商提供
provider[registry.terraform.io/hashicorp/get] as one of the providers
这个提供商是什么?为什么突然出现? 这是一个广泛的 hashcorp 错误吗?
我按照控制台中的 terraform 提示操作,但没有成功。 希望能帮到你
已修复 都是我的错,原因是这样的:
data "get_caller_identity" "current" {}
代替:
data "aws_caller_identity" "current" {}
为了向后兼容尚未支持自动安装第三方提供程序的更旧版本的 Terraform,Terraform 有一些启发式方法来猜测当您未在
required_providers
块中声明提供程序依赖项时的含义:
resource
块的 provider
块都会选择本地名称与资源类型名称的第一部分(直到第一个下划线)匹配的提供程序的默认实例。required_providers
块中声明的提供程序本地名称关联,Terraform 会猜测您打算使用具有该名称的 hashicorp/
命名空间提供程序,因为这就是旧版本 Terraform(之前的版本)的方式根本没有任何命名空间)会表现得很好。您已经写了
data "get_caller_identity" "current" {}
,所以:
provider
参数,因此从您的资源类型名称中获取 get
前缀,并假设您打算编写 provider = get
。get
块中没有 required_providers
条目,因此 Terraform 假设您正在尝试使用 hashicorp/get
。我猜您可能打算使用来自 aws_caller_identity
提供商的
hashicorp/aws
数据源。在这种情况下,您需要在
data
块中正确拼写其类型名称:
data "aws_caller_identity" "current" {}
然后启发式方法将正常工作:
provider
参数,并且资源类型名称以“aws”开头,因此 Terraform 假定为 provider = aws
。required_providers
块不包含本地名称为aws
的条目,因此 Terraform 猜测您的意思是hashicorp/aws
。