terraform config_error ai_generated true

Error: Duplicate resource "aws_instance" configuration: a resource with the address "module.ec2.aws_instance.web" already exists

ID: terraform/duplicate-resource-name-in-module

Also available as: JSON · Markdown · 中文
90%Fix Rate
85%Confidence
1Evidence
2024-01-25First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
Terraform v1.5.0 active
Terraform v1.6.0 active
Terraform v1.7.0 active

Root Cause

Two or more resource blocks with the same resource type and name exist within the same module, causing a duplicate definition.

generic

中文

同一模块中存在两个或更多具有相同资源类型和名称的资源块,导致重复定义。

Official Documentation

https://developer.hashicorp.com/terraform/language/resources/syntax

Workarounds

  1. 95% success Remove or rename one of the duplicate resource blocks in the module configuration file. For example, change `resource "aws_instance" "web"` to `resource "aws_instance" "web2"` and update references.
    Remove or rename one of the duplicate resource blocks in the module configuration file. For example, change `resource "aws_instance" "web"` to `resource "aws_instance" "web2"` and update references.
  2. 90% success Use a single resource block with count or for_each if multiple instances are needed: `resource "aws_instance" "web" { count = 2 ... }`
    Use a single resource block with count or for_each if multiple instances are needed: `resource "aws_instance" "web" { count = 2 ... }`

中文步骤

  1. Remove or rename one of the duplicate resource blocks in the module configuration file. For example, change `resource "aws_instance" "web"` to `resource "aws_instance" "web2"` and update references.
  2. Use a single resource block with count or for_each if multiple instances are needed: `resource "aws_instance" "web" { count = 2 ... }`

Dead Ends

Common approaches that don't work:

  1. Add count or for_each to the duplicate resource block 85% fail

    Count/for_each creates multiple instances but doesn't resolve duplicate block definitions.

  2. Rename the module call in the root module 75% fail

    The duplicate is within the same module, not at the call site.

  3. Delete the .terraform directory and re-run init 90% fail

    The config file itself has duplicates; init doesn't fix config errors.