この記事では、Azure Blob Storage ライフサイクル管理ポリシーを作成または管理する方法について説明します。
ライフサイクル管理ポリシーを使用すると、BLOB を使用パターンに基づいてコスト効率の高いアクセス層に移行したり、ライフサイクルの終了時に完全に削除したりできます。 詳細については、 Azure Blob Storage ライフサイクル管理の概要に関するページを参照してください。
注
ライフサイクル管理ポリシーは、その全体の読み取りまたは書き込みを行う必要があります。 部分的な更新はサポートされません。
ポリシーを作成または管理する
Azure Portal のストレージ アカウントに移動します。
[データ管理] で、 [ライフサイクル管理] を選択してライフサイクル管理ポリシーを表示または変更します。
[リスト ビュー] タブを選択します。
[ルールの追加] を選択し、 [詳細] フォームでルールに名前を付けることができます。 また、 [規則のスコープ] 、 [BLOB の種類] 、 [BLOB のサブタイプ] の各値を設定することもできます。 次の例では、BLOB をフィルター処理するスコープを設定します。 これにより、 [フィルター セット] タブが追加されます。
-
[Base blobs](ベース BLOB) を選択して、ルールの条件を設定します。 次の例では、BLOB が 30 日間変更されない場合、BLOB はクール ストレージに移動されます。
[最終アクセス] オプションは、アクセス時間の追跡が有効で、BLOB の種類に [ブロック BLOB] を選んでいる場合にのみ使用できます。
「アクセス時間の追跡を有効にする」を参照してください。
-
[詳細] ページで [フィルターを使用して BLOB を制限する] を選択した場合は、 [フィルター セット] を選択して省略可能なフィルターを追加します。 次の例では、sample-container という名前のコンテナー内の、名前が log で始まる BLOB にフィルターを適用しています。
予期しない結果が発生した場合は、次の FAQ エントリを参照してください。 BLOB プレフィックスの一致文字列は、想定される BLOB にポリシーを適用しませんでした。
-
[追加] を選択して新しいポリシーを追加します。
コード ビューを使用してポリシーを管理します。
[ コード ビュー ] タブで JSON コードを直接追加して、ポリシーを定義することもできます。
次のスクリーンショットは、[ コード ビュー ] タブの JSON を示しています。この JSON は、BLOB が変更されてから 30 日を超えた場合に 、ログ で始まる名前のブロック BLOB をクール層に移動するライフサイクル ポリシーを定義します。
PowerShell を使用してライフサイクル管理ポリシーを追加するには、以下のコマンドを使用します。
次の例は、これらの各コマンドを使用してライフサイクル ポリシーを作成する方法を示しています。 山かっこ内のプレースホルダーをお客様独自の値に置き換えてください。
# 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
Azure CLI を使用してライフサイクル管理ポリシーを追加するには、そのポリシーを JSON ファイルに書き込んでから、az storage account management-policy create コマンドを呼び出してポリシーを作成します。
次の例は、これらの各コマンドを使用してライフサイクル ポリシーを作成する方法を示しています。 山かっこ内のプレースホルダーをお客様独自の値に置き換えてください。
az storage account management-policy create \
--account-name <storage-account> \
--policy @policy.json \
--resource-group <resource-group>
アクセス時間の追跡を有効にする
BLOB が読み取りまたは書き込み操作で最後にアクセスされた時刻に基づいてアクションを含める場合は、アクセス追跡を有効にします。 この機能の動作については、「 アクセス時間の追跡」を参照してください。
Azure Portal のストレージ アカウントに移動します。
[データ管理] セクションで、[ライフサイクル管理] を選択します。
[アクセス追跡を有効にする] チェック ボックスをオンにします
PowerShell で最終アクセス時刻の追跡を有効にするには、次の例に示すように、Enable-AzStorageBlobLastAccessTimeTracking コマンドを呼び出します。 山かっこ内のプレースホルダーをお客様独自の値に置き換えてください。
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
Enable-AzStorageBlobLastAccessTimeTracking -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-PassThru
Azure CLI で最終アクセス時刻の追跡を有効にするには、次の例に示すように、az storage account blob-service-properties update コマンドを呼び出します。 山かっこ内のプレースホルダーをお客様独自の値に置き換えてください。
az storage account blob-service-properties update \
--resource-group <resource-group> \
--account-name <storage-account> \
--enable-last-access-tracking true
関連項目