![](/img/trans.png)
[英]Azure Storage Python sdk - get_container_access_policy Not Working
[英]Azure lifecycle policy for container is not working
我已经为容器配置了 azure 生命周期策略,如下所示,
{
"rules": [
{
"enabled": true,
"name": "name",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"delete": {
"daysAfterModificationGreaterThan": 30
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"storageaccount/container"
]
}
}
}
]
}
因此它将删除 30 天之前修改的 blob。 我将备份放入容器中,所以我想删除 30 天前的旧备份。
我在 2 天前配置了此策略。 然而旧的备份文件并没有从容器中删除
我分析并按照以下链接在新策略配置后需要 24 小时才能生效新策略和策略更新
生命周期管理策略不适用于 Azure Data Lake Gen 2
我也找不到很多关于这个问题的文件
我将防火墙和 virtual.networks 配置为“all.networks”。 为什么我提到这个因为根据下面的文件他的解决方案有效,
但是容器中没有更新。 所以有人知道解决这个问题的原因和故障排除吗? 谢谢你!
请检查以下几点是否有帮助:
要检查的事情:
如果为容器启用了版本级不变性支持并且该容器包含一个或多个 blob,那么您必须先删除容器中的所有 blob,然后才能删除该容器,即使该容器或其容器没有生效的不变性策略也是如此斑点。
解决方法:
使用az cli添加生命周期策略以删除容器中最后修改时间超过 30 天的 blob。
注意:(尝试简单地将容器名称指定为 prefixmatch 中的 blob prefixcontainer name 而不是 storageaccount/container)
前政策.json:
"rules": [
{
"name": "expirationRule1",
"enabled": true,
"type": "Lifecycle",
"definition": {
"filters": {
"blobTypes": [ "blockBlob" ],
"prefixMatch": [ "containername" ]
},
"actions": {
"baseBlob": {
"delete": { "daysAfterModificationGreaterThan": 30 }
}
}
}
}
]
}
尝试使用az cli 命令创建此生命周期管理策略 (policy.son):
az storage account management-policy create --account-name youraccountname --policy @policy.json --resource-group myresourcegroup
参考:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.