首页 > 解决方案 > 如何诊断简单的 main.tf Terraform/AWS 错误?

问题描述

我正在阅读 Orielly Terraform 书籍 [新手],main.tf 的第一个练习是:

provider "aws"  {
    region = "us-east-1"
}

terraform plan命令生成以下错误:

“aws”的默认(非别名)提供程序配置已在 main-code.tf:1,1-15...

搜索让我无处可去,因为问题可能太简单或太奇怪了。我提供了 AWS_KEYs... 作为 zsh 中的导出,并且我的一般 aws cli 查询在这台机器上运行良好。想法?

标签: amazon-web-servicesterraformterraform-provider-aws

解决方案


似乎您provider "aws"在 tf 文件中放置了多个。删除重复的提供者应该可以解决您的问题。

参考:https ://github.com/hashicorp/terraform/blob/master/configs/module.go#L143-L149

        if existing.Alias == "" {
            diags = append(diags, &hcl.Diagnostic{
                Severity: hcl.DiagError,
                Summary:  "Duplicate provider configuration",
                Detail:   fmt.Sprintf("A default (non-aliased) provider configuration for %q was already given at %s. If multiple configurations are required, set the \"alias\" argument for alternative configurations.", existing.Name, existing.DeclRange),
                Subject:  &pc.DeclRange,
            })

推荐阅读