BLOB のバージョン管理を有効にして管理する
- [アーティクル]
-
-
BLOB ストレージのバージョン管理を有効にすると、BLOB が変更または削除されたときに、以前のバージョンを自動的に維持できます。 BLOB のバージョン管理が有効になっていると、データが誤って変更または削除された場合に、以前のバージョンの BLOB を復元して復旧できます。
この記事では、Azure portal または Azure Resource Manager テンプレートを使用してストレージ アカウントの BLOB のバージョン管理を有効または無効にする方法について説明します。 BLOB のバージョン管理については、BLOB のバージョン管理に関するページをご覧ください。
BLOB のバージョン管理を有効にする
これは、Azure portal、PowerShell、Azure CLI、または Azure Resource Manager テンプレートでの BLOB のバージョン管理を有効にできます。
Azure portal でストレージ アカウントの BLOB のバージョン管理を有効にするには、次のようにします。
ポータルでストレージ アカウントに移動します。
[データ管理] で [データ保護] を選びます。
[追跡] セクションで [BLOB のバージョン管理を有効にする] を選び、すべてのバージョンを保持するか、一定期間後に削除するかを選びます。
重要
[後にバージョンを削除する] オプションを設定すると、ストレージ アカウントのライフサイクル管理ポリシーに規則が自動的に追加されます。 その規則が追加されると、[データ保護] 構成ページには [Delete versions after] (後にバージョンを削除する) オプションが表示されなくなります。
そのオプションを [データ保護] ページに再表示させるには、規則を削除します。 ライフサイクル管理ポリシーにバージョンを削除する他の規則が含まれている場合は、[後にバージョンを削除する] オプションが再び表示される前に、それらの規則も削除する必要があります。
PowerShell を使用してストレージ アカウントの BLOB のバージョン管理を有効にするには、まず、Az.Storage モジュールのバージョン 2.3.0 以降をインストールします。 その後、次の例に示すように、Update-AzStorageBlobServiceProperty コマンドを呼び出して、バージョン管理を有効にします。 山かっこ内の値は、実際の値に置き換えてください。
# Set resource group and account variables.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
# Enable versioning.
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-IsVersioningEnabled $true
Azure CLI を使用してストレージ アカウントの BLOB のバージョン管理を有効にするには、まず、Azure CLI バージョン 2.2.0 以降をインストールします。 その後、次の例に示すように、az storage account blob-service-properties update コマンドを呼び出して、バージョン管理を有効にします。 山かっこ内の値は、実際の値に置き換えてください。
az storage account blob-service-properties update \
--resource-group <resource_group> \
--account-name <storage-account> \
--enable-versioning true
テンプレートを使用して BLOB のバージョン管理を有効にするには、IsVersioningEnabled プロパティを true にしてテンプレートを作成します。 次の手順は、Azure portal でテンプレートを作成する方法について説明しています。
Azure portal で、 [リソースの作成] を選択します。
[Marketplace を検索] で「template deployment」と入力し、Enter キーを押します。
[テンプレートのデプロイ] 、 [作成] 、 [エディターで独自のテンプレートを作成する] の順に選択します。
テンプレート エディターで、次の JSON を貼り付けます。 <accountName>
プレースホルダーは、実際のストレージ アカウントの名前に置き換えます。
テンプレートを保存します。
アカウントのリソース グループを指定してから [購入] ボタンを選択して、テンプレートをデプロイし、BLOB のバージョン管理を有効にします。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts/blobServices",
"apiVersion": "2019-06-01",
"name": "<accountName>/default",
"properties": {
"IsVersioningEnabled": true
}
}
]
}
Azure portal でテンプレートを使用してリソースをデプロイする方法の詳細については、Azure portal を使用したリソースのデプロイに関するページを参照してください。
BLOB バージョンをリストに表示する
BLOB のバージョンを表示するには、Azure portal、PowerShell、または Azure CLI を使用します。 Blob Storage SDK のいずれかを使用して、BLOB のバージョンを一覧表示することもできます。
Azure portal で BLOB のバージョンを一覧表示するには:
ポータルでストレージ アカウントに移動した後、BLOB を含むコンテナーに移動します。
バージョンを一覧表示する BLOB を選択します。
[バージョン] タブを選択して、BLOB のバージョンを表示します。
[削除されたバージョンの表示] ボタンを切り替えて、論理的に削除されたバージョンを表示します。 ストレージ アカウントで BLOB の論理的な削除が有効になっている場合は、論理的に削除されたバージョンのうち、論理的な削除の保持期間内にあるものが一覧に表示されます。
PowerShell を使用して BLOB のバージョンを一覧表示するには、-IncludeVersion
パラメーターを指定して Get-AzStorageBlob コマンドを呼び出します。
$account = Get-AzStorageAccount -ResourceGroupName <resource-group> -Name <storage-account>
$ctx = $account.Context
$container = "<container-name>"
$blobs = Get-AzStorageBlob -Container $container -Prefix "ab" -IncludeVersion -Context $ctx
foreach($blob in $blobs)
{
Write-Host $blob.Name
Write-Host $blob.VersionId
Write-Host $blob.IsLatestVersion
}
Azure CLI を使用して BLOB のバージョンを一覧表示するには、--include v
パラメーターを指定して az storage blob list コマンドを呼び出します:
storageAccount="<storage-account>"
containerName="<container-name>"
az storage blob list \
--container-name $containerName \
--prefix "ab" \
--query "[[].name, [].versionId]" \
--account-name $storageAccount \
--include v \
--auth-mode login \
--output tsv
次のステップ