【发布时间】: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