Terraform
moved block reference
This topic provides reference information for the moved
block. Use this block to programmatically change the address of a resource. Refer to Refactoring for details about how to use the moved
block in your Terraform configurations.
Configuration model
The moved
block supports the following arguments:
Complete configuration
The following moved
block defines all of the supported built-in arguments you can set:
moved = {
from = <old address for the resource>
to = <new address for the resource>
}
Specification
A moved
block supports the following configuration.
moved
The moved
block specifies the previous address and the new address for the resource. The following table describes the arguments you can set in the moved
block.
Argument | Description | Type | Required |
---|---|---|---|
from | Specifies a resource's previous address. The syntax allows Terraform to select modules, resources, and resources inside child modules. | string | required |
to | Specifies the new address to relocate the resource to. The syntax allows Terraform to select modules, resources, and resources inside child modules. | string | required |
Before creating a new plan for the resource specified in the to
field, Terraform checks the state for an existing object at the address specified in the from
field. Terraform renames existing objects to the string specified in the to
field and then creates a plan. The plan directs Terraform to provision the resource specified in the from
field as the resource specified in the to
field. As a result, Terraform does not destroy the resource during the Terraform run.
Example
The following example moves an AWS instance from address aws_instance.a
to aws_instance.b
:
moved {
from = aws_instance.a
to = aws_instance.b
}