![](/img/trans.png)
[英]Azure blob storage life cycle management - set filter at container level
[英]skip rule creation if parameter is empty in Azure Storage life cycle management
如果 parameter.json 文件提供的参数在 ARM 模板中为空,我想跳过创建删除规则。 如何实现?
"rules": [
{
"name": "ruleDefault",
"enabled": true,
"type": "Lifecycle",
"definition": {
"filters": {
"blobTypes": [ "blockBlob" ],
"prefixMatch": [ "container1/foo" ]
},
"actions": {
"baseBlob": {
"tierToCool": {
"daysAfterModificationGreaterThan": "[parameters('tierToCool')]"
},
"tierToArchive": {
"daysAfterModificationGreaterThan": "[parameters('tierToArchive')]"
},
"delete": {
"daysAfterModificationGreaterThan": "[parameters('delete')]"
}
},
"snapshot": {
"delete": { "daysAfterCreationGreaterThan": "[parameters('snapshot')]" }
}
}
}
}
]
有两种类型的条件逻辑。
第一个也是最常见的是condition
键。 该键位于一个资源块中,该资源块提供了一个可以评估为真或假的值。 如果满足条件,将创建资源。 如果不是,那么它将被跳过。
"condition": "[not(empty(parameters('delete')))]"
第二种称为内联条件逻辑,它非常强大,语法简单易用:
[if(condition, true value, false value)]
内联逻辑在条件键之外使用。 内联逻辑将检查“delete”参数是否为空,如果是,则将 json 设置为 null,这基本上忽略了该值。 如果“delte”参数不为空,它会将规则分配给daysAfterModificationGreaterThan
。
"daysAfterModificationGreaterThan": "[if(equals(parameters('delete'), ''), json('null'),parameters('delete'))]"
有关更多详细信息,您可以参考这篇关于ARM 模板 - 条件逻辑和这个的文章。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.