【问题标题】:Terraform: Error: Provider configuration not presentTerraform:错误:提供程序配置不存在
【发布时间】:2021-08-04 10:49:51
【问题描述】:

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 其原始 provider["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"
    }
  }
}

我该如何解决?

【问题讨论】:

  • 您是否尝试过添加required_providers,就像这里指定的那样:terraform.io/upgrade-guides/…
  • 还没有!我应该在 tflib 中完成还是需要在顶层完成?
  • 如果我没记错的话,应该只在顶层做。
  • 您应该从 11->12->13 升级,而不是直接从 11->13 升级。这可以为您节省很多潜在的问题。
  • terraform.io/upgrade-guides/… 的升级指南中含糊不清地介绍了这一点。并不总是很清楚这是您的情况的根本原因,并且通过指向此文档解决的其他 SO 问题很难搜索。

标签: terraform terraform-provider-aws


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-09-28
    • 2020-02-12
    • 2023-04-02
    • 2021-05-29
    • 1970-01-01
    • 2018-12-14
    • 2020-12-17
    • 2014-06-24
    • 1970-01-01
    相关资源
    最近更新 更多