gpt4 book ai didi

Azure 策略创建日期标签

转载 作者:行者123 更新时间:2023-12-03 06:10:08 25 4
gpt4 key购买 nike

我正在尝试创建一个 Azure 策略,该策略为具有正确日期和时间的给定范围内的所有资源创建一个名为“CreatedDate”的标记。

如果我们要更新资源(使用 IaC/PowerShell/CLI/Portal),则不应修改 CreatedDate 的值

以下是Azure策略的定义

"policyRule": {
"if": {
"allOf": [
{
"field": "tags['CreatedDate']",
"exists": false
}
]
},
"then": {
"effect": "append",
"details": [
{
"field": "tags['CreatedDate']",
"value": "[concat(substring(utcNow(),5,2),'/', substring(utcNow(),8,2),'/',substring(utcNow(),0,4),'-',substring(utcNow(),11,8))]"
}
]
}
}
}

该策略正在为具有正确日期和时间的所有资源创建 CreatedDate 标记。但是,当资源更新时,DateTime 也会更新,这不是预期的。

下面是它现在的行为方式

资源创建时间:2023 年 8 月 15 日上午 10:30

使用 Bicep/ARM/Terraform 修改资源并于 2023 年 8 月 20 日 11:50 重新部署

期望创建日期标记包含 2023 年 8 月 15 日上午 10:30。但是,Creted Date 标签的值已更新为 August 20th 2023 11:50

非常感谢任何帮助。

最佳答案

The policy is creating the CreatedDate tag for all the resources with proper Date and Time. However the DateTime is getting updated when the resource is updated which is not expected.

效果类型append会在CreatedDate标签不存在时附加该标签。这意味着每次更新或修改资源时,该策略都会将新的时间戳附加到CreatedDate标记中。

您可以将效果设置更改为修改,并指定单个修改操作。仅当 CreatedDate 标记尚不存在时,才会对其进行设置,并且一旦设置,即使将来资源更新,它也将保持不变。

{
"mode": "All",
"policyRule": {
"if": {
"allOf": [
{
"field": "tags['CreatedDate']",
"exists": false
}
]
},
"then": {
"effect": "modify",
"details": {
"operations": [
{
"operation": "add",
"field": "tags['CreatedDate']",
"value": "[concat(substring(utcNow(), 5, 2), '/', substring(utcNow(), 8, 2), '/', substring(utcNow(), 0, 4), '-', substring(utcNow(), 11, 8))]"
}
],
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608"
]
}
}
},
"parameters": {}
}

将策略分配到特定范围后,CreatedDate 标记已成功添加到资源。

回应:

enter image description here

关于Azure 策略创建日期标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76889586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com