我有以下代码,它不会让我进入天蓝色策略定义,我想做的是制定一个定义策略,其中如果 blob 层 30 天没有修改,则转到酷层,如果它180中没有被修改过就成为层级存档。
{
"mode": "All",
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Storage/storageAccounts"
},
{
"field": "kind",
"equals": "BlobStorage"
},
{
"field": "Microsoft.Storage/storageAccounts/accessTier",
"equals": "hot"
}
]
},
"then": {
"effect": "append",
"details": [
{
"field": "Microsoft.Storage/storageAccounts/managementPolicies",
"value": {
"rules": [
{
"enabled": true,
"name": "exampleRule",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"tierToCool": {"daysAfterModificationGreaterThan": 30}
}
}
}
}
]
}
}
]
}
},
"parameters": {}
}
Microsoft.Storage/storageAccounts/managementPolicies
不存在于 Microsoft.Storage
中创建 Azure Policy
或者,您可以使用
StorageAccountPolicy
创建一个 PowerShell
,将 Blob 移动到 'Cool' 层(如果它们在 30 天内没有修改过),并将它们转换到 'Archive' 层(如果180天没有修改过。
$rgName = "<RG_Name>"
$accountName = "<Storage-Account-Name>"
$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToCool -daysAfterModificationGreaterThan 30
Add-AzStorageAccountManagementPolicyAction -InputObject $action `
-BaseBlobAction TierToArchive `
-daysAfterModificationGreaterThan 180
$filter = New-AzStorageAccountManagementPolicyFilter -PrefixMatch blobprefix1,blobprefix2
$rule1 = New-AzStorageAccountManagementPolicyRule -Name "storage-policy" -Action $action -Filter $filter
Set-AzStorageAccountManagementPolicy -ResourceGroupName $rgName -StorageAccountName $accountName -Rule $rule1
输出:
运行上述代码后,已在 Azure 门户中为特定存储帐户创建存储帐户策略。
参考:配置生命周期管理策略