- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Terraform 为哨兵解决方案部署一些哨兵自动化规则。由于自动化规则的名称需要 UUID,因此我为每个自动化规则使用 random_uuid 资源来生成自动化规则名称的 UUID。代码如下所示。我想知道是否有一种方法可以通过单个 random_uuid 资源或类似的资源为我的自动化规则生成所有随机 UUID 值。
resource "random_uuid" "automation_rule_1" {}
resource "azurerm_sentinel_automation_rule" "automation_rule_1" {
name = random_uuid.automation_rule_1.result
log_analytics_workspace_id = var.log_analytics_workspace_id
display_name = "Automation Rule 1"
order = 1
triggers_on = "Incidents"
triggers_when = "Created"
enabled = true
action_playbook {
logic_app_id = var.logic_app_id
order = 1
tenant_id = var.tenant_id
}
}
resource "random_uuid" "automation_rule_2" {}
resource "azurerm_sentinel_automation_rule" "automation_rule_2" {
name = random_uuid.automation_rule_2.result
log_analytics_workspace_id = var.log_analytics_workspace_id
display_name = "Automation Rule 2"
order = 1
triggers_on = "Incidents"
triggers_when = "Created"
enabled = true
condition_json = jsonencode(
[
{
conditionProperties = {
operator = "Contains"
propertyName = "IncidentRelatedAnalyticRuleIds"
propertyValues = [ var.sentinel_alert_rule_scheduled_id ]
}
conditionType = "Property"
}
]
)
action_incident {
order = 1
status = "Closed"
classification = "BenignPositive_SuspiciousButExpected"
classification_comment = "Sample Comment Goes Here"
owner_id = var.automation_rule_owner_id
}
}
我期望类似以下的内容。有人可以解释一下是否有办法实现这种行为。
resource "random_uuid" "automation_rule_ids" {
keepers = {
"rule_1_id" = "dont know what to put here",
"rule_2_id" = "dont know what to put here"
}
}
最佳答案
random_uuid
的每个实例仅生成一个 UUID,但您可以使用该资源类型的多个实例来生成多个 UUID。
例如:
variable "rules" {
type = set(string)
}
resource "random_uuid" "example" {
for_each = var.rules
}
locals {
rule_uuids = tomap({
for rule_name, obj in random_uuid_example :
rule_name => obj.result
})
}
这将 local.rule_uuids
定义为从规则名称到 UUID 字符串的映射,使用 for_each
和 random_uuid.example
资源来声明多个该资源的动态实例。
例如,如果将 rules
变量设置为 ["a", "b"]
,则 local.rule_uuids
将具有值(value)结构如下:
tomap({
a = "aabbccdd-eeff-0011-2233-445566778899"
b = "ffffffff-ffff-ffff-ffff-ffffffffffff"
})
...当然,实际的 UUID 值会有所不同,因为它们是随机的。
<小时/>上面不包括任何“守护者”,因为您的问题没有定义何时需要重新生成 UUID 的任何规则。使用 for_each
意味着向 var.rules
添加一个新元素将导致 Terraform 建议为该规则键生成一个新的 UUID,同样从var.rules
将使 Terraform 建议丢弃其中一个 UUID。
如果您确实需要某种“守护者”,那么另一种方法是将输入变量设为映射,并使用这些值作为每个对象的“守护者”:
variable "rules" {
type = map(string)
}
resource "random_uuid" "example" {
for_each = var.rules
keepers = {
v = each.value
}
}
# (locals block unchanged)
resource
block 中的
each.value
引用 map 当前元素的值,因此该模块的调用者可能会导致重新生成现有的 UUID通过更改分配给 map 中其元素的值而不更改 map 键。
关于azure - 有没有办法使用 Terraform 中的一个 `random_uuid` 资源生成一组随机 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76093736/
我正在尝试使用 Terraform 为哨兵解决方案部署一些哨兵自动化规则。由于自动化规则的名称需要 UUID,因此我为每个自动化规则使用 random_uuid 资源来生成自动化规则名称的 UUID。
我正在尝试使用 Terraform 为哨兵解决方案部署一些哨兵自动化规则。由于自动化规则的名称需要 UUID,因此我为每个自动化规则使用 random_uuid 资源来生成自动化规则名称的 UUID。
我是一名优秀的程序员,十分优秀!