嘗試創建 DLM(資料生命周期管理)策略以每 12 小時拍攝一次 ebs 快照。AWS UI 允許指定多個目標標簽以將多個實體組合到一個策略中。
嘗試使用 terraform 創建相同的內容,https: //registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/dlm_lifecycle_policy#target_tags
target_tags 似乎沒有采用多個地圖值 -
target_tags = {
Name = "g1n1",
Name = "g1n2"
}
Terraform 計劃正在獲取串列中的最后一個地圖值 -
# aws_dlm_lifecycle_policy.example has changed
~ resource "aws_dlm_lifecycle_policy" "example" {
id = "policy-0719fc4b498671592"
tags = {}
# (5 unchanged attributes hidden)
~ policy_details {
~ target_tags = {
~ "Name" = "g1n1" -> "g1n2"
}
# (1 unchanged attribute hidden)
# (1 unchanged block hidden)
}
}
為了克服這個問題,我為每個實體創建了 2 個策略,但是有沒有辦法為多個實體創建單個策略?
resource "aws_dlm_lifecycle_policy" "DLM_g1n1" {
description = "DLM_g1n1"
execution_role_arn = "AWSDataLifecycleManagerDefaultRole"
policy_details {
resource_types = ["INSTANCE"]
schedule {
name = "snapshot-every12hours"
create_rule {
interval = 12
interval_unit = "HOURS"
times = ["04:30"]
}
retain_rule { count = 28 }
copy_tags = false
}
target_tags = {
Name = "g1n1"
}
}
}
resource "aws_dlm_lifecycle_policy" "DLM_g1n2" {
description = "DLM_g1n2"
execution_role_arn = "AWSDataLifecycleManagerDefaultRole"
policy_details {
resource_types = ["INSTANCE"]
schedule {
name = "cedcas-snapshot-every12hours"
create_rule {
interval = 12
interval_unit = "HOURS"
times = ["04:30"]
}
retain_rule { count = 28 }
copy_tags = false
}
target_tags = {
Name = "g1n2"
}
}
}
uj5u.com熱心網友回復:
TF中似乎沒有可能。aws_dlm_lifecycle_policy但是,您可以使用countor ,而不是創建完全獨立的for_each:
variable "tags" {
default = [{Name = "g1n1"}, {Name = "g1n2"}]
}
resource "aws_dlm_lifecycle_policy" "DLM_g1" {
count = length(var.tags)
description = "DLM_g1n${count.index}"
execution_role_arn = "AWSDataLifecycleManagerDefaultRole"
policy_details {
resource_types = ["INSTANCE"]
schedule {
name = "snapshot-every12hours"
create_rule {
interval = 12
interval_unit = "HOURS"
times = ["04:30"]
}
retain_rule { count = 28 }
copy_tags = false
}
target_tags = var.tags[count.index]
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/443935.html
