Terraform:错误:提供程序配置不存在

Terraform:错误:提供程序配置不存在,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,在Terraform从版本0.11.14升级到0.13.7后,我遇到了一个错误: 错误:无效的资源名称 在参考资料中的.terraform/modules/tflib/alb/main.tf行53上 aws_alb_侦听器“443”:53:资源“aws_alb_侦听器”443{ 名称必须以字母或下划线开头,并且只能包含 字母、数字、下划线和破折号 因此,我将其重命名为资源“aws\u alb\u listener”“https”,但引发了另一个错误: 错误:提供程序配置不存在 要使用module

在Terraform从版本0.11.14升级到0.13.7后,我遇到了一个错误:

错误:无效的资源名称

在参考资料中的.terraform/modules/tflib/alb/main.tf行53上 aws_alb_侦听器“443”:53:资源“aws_alb_侦听器”443{

名称必须以字母或下划线开头,并且只能包含 字母、数字、下划线和破折号

因此,我将其重命名为
资源“aws\u alb\u listener”“https”
,但引发了另一个错误:

错误:提供程序配置不存在

要使用module.tflib.module.alb.aws_alb_listener.443,请使用其原始版本 提供程序[“registry.terraform.io/-/aws”]上的提供程序配置为 必需,但它已被删除。当提供程序 配置在该提供程序创建的对象仍然存在时被删除 状态中存在。请重新添加要销毁的提供程序配置 module.tflib.module.alb.aws_alb_listener.443,之后可以 再次删除提供程序配置

AWS提供程序配置:

provider "aws" {
  region = var.region
}

terraform {
  required_providers {
    aws = {
      version = "~> 3.15"
      source = "hashicorp/aws"
    }
  }
}

如何修复它?

我在将TF从0.11更新到0.13时遇到了这个问题。 正如其他人已经建议的那样,我做了11>12>13,但我还是遇到了同样的问题

我认为发生的情况是,该州有旧的提供程序配置,在本例中是
aws
,但它可以是任何其他的,因此您可以在您的州更新提供程序,以获得新的兼容版本,如下所示

terraform state replace provider'registry.terraform.io/-/aws''registry.terraform.io/hashicorp/aws'

您是否尝试过添加此处指定的
必需的\u提供程序:?还没有!我应该在tflib中进行还是需要在顶层进行?如果我没有弄错的话,应该只在顶层进行。您应该从11->12->13升级,而不是直接从11->13升级。这可以为您节省大量潜在问题。这是在的升级指南中含糊不清地介绍了。在您的情况下,这并非总是明确的根本原因,因此通过指向此文档解决的其他问题很难搜索。