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

Rom*_*aza 3 terraform terraform-provider-aws

Terraform 从版本0.11.14升级到0.13.7后出现错误:

错误:资源名称无效

在 .terraform/modules/tflib/alb/main.tf 第 53 行,资源“aws_alb_listener”“443”中:53:资源“aws_alb_listener”“443”{

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

所以我将其重命名为resource "aws_alb_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"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我该如何修复它?

Pet*_*eda 5

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

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

terraform state replace-provider 'registry.terraform.io/-/aws' 'registry.terraform.io/hashicorp/aws'
Run Code Online (Sandbox Code Playgroud)