This article shows you how to create or manage an Azure Blob Storage lifecycle management policy.
You can use lifecycle management policies to transition blobs to cost-efficient access tiers based on their use patterns or delete them entirely at the end of their lifecycle. To learn more, see Azure Blob Storage lifecycle management overview.
Note
A lifecycle management policy must be read or written in full. Partial updates are not supported.
Create or manage a policy
In the Azure portal, navigate to your storage account.
Under Data management, select Lifecycle Management to view or change lifecycle management policies.
Select the List View tab.
Select Add a rule and name your rule on the Details form. You can also set the Rule scope, Blob type, and Blob subtype values. The following example sets the scope to filter blobs. This causes the Filter set tab to be added.
- Select Base blobs to set the conditions for your rule. In the following example, blobs are moved to cool storage if they haven't been modified for 30 days.
The Last accessed option is available only if you have enabled access time tracking and you've selected Block blobs as the blob type. See Enable access time tracking.
- If you selected Limit blobs with filters on the Details page, select Filter set to add an optional filter. The following example filters on blobs whose name begins with log in a container called sample-container.
If you encounter unexpected results, see the following FAQ entry: The blob prefix match string didn't apply the policy to the expected blobs.
- Select Add to add the new policy.
Manage a policy by using the code view.
You can also define a policy by adding JSON code directly in the Code View tab.
The following screenshot shows JSON in the Code View tab. This JSON defines a lifecycle policy that moves a block blob whose name begins with log to the cool tier if it has been more than 30 days since the blob was modified.
To add a lifecycle management policy with PowerShell, use these commands:
The following example shows how to use each of these commands to create a lifecycle policy. Remember to replace placeholder values in angle brackets with your own values:
# Initialize the following variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
# Create a new action object.
$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete `
-daysAfterModificationGreaterThan 180
Add-AzStorageAccountManagementPolicyAction -InputObject $action `
-BaseBlobAction TierToArchive `
-daysAfterModificationGreaterThan 90
Add-AzStorageAccountManagementPolicyAction -InputObject $action `
-BaseBlobAction TierToCool `
-daysAfterModificationGreaterThan 30
Add-AzStorageAccountManagementPolicyAction -InputObject $action `
-SnapshotAction Delete `
-daysAfterCreationGreaterThan 90
Add-AzStorageAccountManagementPolicyAction -InputObject $action `
-BlobVersionAction TierToArchive `
-daysAfterCreationGreaterThan 90
# Create a new filter object.
$filter = New-AzStorageAccountManagementPolicyFilter -PrefixMatch ab,cd `
-BlobType blockBlob
# Create a new rule object.
$rule1 = New-AzStorageAccountManagementPolicyRule -Name sample-rule `
-Action $action `
-Filter $filter
# Create the policy.
Set-AzStorageAccountManagementPolicy -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-Rule $rule1
To add a lifecycle management policy with Azure CLI, write the policy to a JSON file, then call the az storage account management-policy create command to create the policy.
The following example shows how to use each of these commands to create a lifecycle policy. Remember to replace placeholder values in angle brackets with your own values:
az storage account management-policy create \
--account-name <storage-account> \
--policy @policy.json \
--resource-group <resource-group>
Enable access time tracking
Enable access tracking if you want to include an action based on the time that the blob was last accessed with a read or write operation. To learn about the behavior of this capability, see Access time tracking.
Navigate to your storage account in the Azure portal.
In the Data management section, select Lifecycle management.
Check the checkbox "Enable access tracking"
To enable last access time tracking with PowerShell, call the Enable-AzStorageBlobLastAccessTimeTracking command, as shown in the following example. Remember to replace placeholder values in angle brackets with your own values:
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
Enable-AzStorageBlobLastAccessTimeTracking -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-PassThru
To enable last access time tracking with Azure CLI, call the az storage account blob-service-properties update command, as shown in the following example. Remember to replace placeholder values in angle brackets with your own values:
az storage account blob-service-properties update \
--resource-group <resource-group> \
--account-name <storage-account> \
--enable-last-access-tracking true
See also