繁体   English   中英

如果 Azure 存储生命周期管理中的参数为空,则跳过规则创建

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM