Terraform:错误:提供程序配置不存在
在Terraform从版本0.11.14升级到0.13.7后,我遇到了一个错误: 错误:无效的资源名称 在参考资料中的.terraform/modules/tflib/alb/main.tf行53上 aws_alb_侦听器“443”:53:资源“aws_alb_侦听器”443{ 名称必须以字母或下划线开头,并且只能包含 字母、数字、下划线和破折号 因此,我将其重命名为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
资源“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升级。这可以为您节省大量潜在问题。这是在的升级指南中含糊不清地介绍了。在您的情况下,这并非总是明确的根本原因,因此通过指向此文档解决的其他问题很难搜索。