当代码移动到模块时,Terraform正在破坏AWS资源
最初我使用Terraform脚本创建CloudWatch日志组当代码移动到模块时,Terraform正在破坏AWS资源,terraform,amazon-cloudwatch,terraform-provider-aws,Terraform,Amazon Cloudwatch,Terraform Provider Aws,最初我使用Terraform脚本创建CloudWatch日志组 resource "aws_cloudwatch_log_group" "main_server_log_group" { name = "server_name" retention_in_days = 60 } 我应用了它,后来我将它移动到专用模块并重命名 resource "aws_cloudwatch_log_group" "server_log_group" { name
resource "aws_cloudwatch_log_group" "main_server_log_group" {
name = "server_name"
retention_in_days = 60
}
我应用了它,后来我将它移动到专用模块并重命名
resource "aws_cloudwatch_log_group" "server_log_group" {
name = "${var.server_name}"
retention_in_days = 60
}
并在main.tf
module "main_server" {
source = "./modules/server"
server_name = "${local.main_server_name}"
}
现在Terrafrom apply正在摧毁原来的CloudWatch组并创建一个新组
module.main_server.aws_cloudwatch_log_group.main_server_log_group[0]: Creating...
aws_cloudwatch_log_group.main_server_log_group: Destroying... [id=xxxx]
我想这是因为地形资源的名称已经改变了,不是吗?
这是预料不到的。CW组的名称尚未更改
重构Terraform代码时是否有保留现有资源的方法?找到了解决方案,显然可以将资源移动到模块中。州文件需要更新- 更新 移动状态对我不起作用。但移除状态和导入状态成功了
terraform state rm 'my_resource'
terraform import ...