升级到Terraform v0.13.4后未能验证已安装的提供程序

升级到Terraform v0.13.4后未能验证已安装的提供程序,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我最近将Terraform升级到了v0.13.4,现在在启动工作区时遇到了一个问题 我已尝试在此处指出所需的提供者: terraform { required_providers { archive = { source = "hashicorp/archive" version = "1.3.0" } aws = { region = "us-ea

我最近将Terraform升级到了v0.13.4,现在在启动工作区时遇到了一个问题

我已尝试在此处指出所需的提供者:

terraform {
  required_providers {
    archive = {
      source = "hashicorp/archive"
      version = "1.3.0"
    }
    aws = {
      region                  = "us-east-2"
      #profile                 = "arm-sandbox"
    }
}

有什么想法吗?

可能是以前安装的
存档
提供程序版本(1.3.0)在Terraform 0.13+中未得到正确支持,或者安装不正确或可能损坏

考虑更新到提供商的最新版本,该提供商随后也将下载最新版本。与以前的版本相比,0.13+中对提供者的处理方式有所不同,因此最好在您的工作区上运行
terraform upgrade0.13
,以确保所有内容都能正确转换并格式化为terraform 0.13+

terraform {
  required_providers {
    archive = {
      source  = "hashicorp/archive"
      version = "2.1.0"
    }
  }
}

正如@martin atkins正确指出的,aws
区域不能在
所需的\u提供者
块中指定,但应在提供者块中:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "3.37.0"
    }
  }
}

provider "aws" {
  region = "us-east-2"
}

以前安装的
存档
提供程序版本(1.3.0)可能未在Terraform 0.13+中得到正确支持,或者安装不正确或可能损坏

考虑更新到提供商的最新版本,该提供商随后也将下载最新版本。与以前的版本相比,0.13+中对提供者的处理方式有所不同,因此最好在您的工作区上运行
terraform upgrade0.13
,以确保所有内容都能正确转换并格式化为terraform 0.13+

terraform {
  required_providers {
    archive = {
      source  = "hashicorp/archive"
      version = "2.1.0"
    }
  }
}

正如@martin atkins正确指出的,aws
区域不能在
所需的\u提供者
块中指定,但应在提供者块中:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "3.37.0"
    }
  }
}

provider "aws" {
  region = "us-east-2"
}

由于输出包含消息“使用以前安装的hashicorp/archive”,我怀疑您的工作目录中的提供程序缓存中存在该提供程序的损坏版本。如果是这样,删除
.terraform
目录(terraform缓存这些目录),然后重新运行
terraform init
可能会修复它,或者至少可以就包无效的原因向您提供一些更好的反馈。这与您的问题没有直接关系,但我还想指出,
区域
配置文件
参数不属于该位置;它们属于配置中的其他位置。由于输出包含消息“使用以前安装的hashicorp/archive”,我怀疑您的工作目录中的提供程序缓存中存在该提供程序的损坏版本。如果是这样,删除
.terraform
目录(terraform缓存这些目录),然后重新运行
terraform init
可能会修复它,或者至少可以就包无效的原因向您提供一些更好的反馈。这与您的问题没有直接关系,但我还想指出,
区域
配置文件
参数不属于该位置;它们属于配置中的其他位置。