Sha*_*dow 1 amazon-web-services terraform terraform-provider-aws
我在 terraform 模块中定义了自定义资源:
resource "aws_alb_target_group" "whatever"
{
....
}
Run Code Online (Sandbox Code Playgroud)
事实证明whatever这个名字不好,我需要更新它。
经典的方法是登录到每个环境并执行terraform state mv,但是我有很多环境,并且没有自动化执行此类操作。
如何在不手动移动状态的情况下更改资源名称(仅通过编辑 terraform 模块和应用计划)?
根据问题中的解释,我猜你最好的选择是使用块moved[1]。例如,在您的情况下,这将是:
resource "aws_alb_target_group" "a_much_better_whatever"
{
....
}
moved {
from = aws_alb_target_group.whatever
to = aws_alb_target_group.a_much_better_whatever
}
Run Code Online (Sandbox Code Playgroud)
编辑:正如 @Matt Schuchard 指出的,该moved块仅适用于 Terraform 版本>=1.1.0。
编辑2:根据@Martin Atkins的评论,将资源名称更改为移动到而不是从移动的资源的名称。
[1] https://www.terraform.io/language/modules/develop/refactoring#moved-block-syntax
| 归档时间: |
|
| 查看次数: |
2129 次 |
| 最近记录: |