Dosazování archivovaného objektu blob do online vrstvy
Článek
Pokud chcete přečíst objekt blob, který je v archivní úrovni, musíte objekt blob nejprve dosadit na online (horkou, studenou nebo studenou). Objekt blob můžete dosadit jedním ze dvou způsobů:
Zkopírováním do nového objektu blob v horké, studené nebo studené vrstvě pomocí operace Kopírování objektu blob .
Při dosazování objektu blob můžete určit prioritu operace na standardní nebo vysokou prioritu. Dokončení operace dosazování podle standardní priority může trvat až 15 hodin. Operace s vysokou prioritou je upřednostněna u požadavků na standardní prioritu a může se dokončit za méně než jednu hodinu pro objekty s velikostí pod 10 GB. Během čekání na operaci můžete změnit prioritu dosazování ze standardu na vysokou .
Azure Event Grid můžete nakonfigurovat tak, aby aktivovalo událost při dokončení dosazování a spustilo kód aplikace v odpovědi. Informace o tom, jak zpracovat událost, která spouští funkci Azure Functions po dokončení operace dosazování objektů blob, najdete v tématu Spuštění funkce Azure Functions v reakci na událost dosazování objektu blob.
K dosazování objektu blob z archivní vrstvy jeho zkopírováním do online vrstvy použijte Azure Portal, PowerShell, Azure CLI nebo některou z klientských knihoven Azure Storage. Mějte na paměti, že při kopírování archivovaného objektu blob do online úrovně musí mít zdrojové a cílové objekty blob různé názvy.
Kopírování archivovaného objektu blob do online cílové úrovně se podporuje ve stejném účtu úložiště. Od verze 2021-02-12 můžete archivovaný objekt blob zkopírovat do jiného účtu úložiště, pokud je cílový účet ve stejné oblasti jako zdrojový účet.
Po dokončení operace kopírování se cílový objekt blob zobrazí v archivní úrovni. Cílový objekt blob se pak rehydruje na online úroveň, kterou jste zadali v operaci kopírování. Když je cílový objekt blob plně rehydrovaný, bude dostupný v nové online vrstvě.
Dosazování objektu blob do stejného účtu úložiště
Následující příklady ukazují, jak zkopírovat archivovaný objekt blob do objektu blob v horké úrovni ve stejném účtu úložiště.
Na webu Azure Portal přejděte ke zdrojovému účtu úložiště.
V navigačním podokně účtu úložiště vyberte Prohlížeč úložiště.
V prohlížeči úložiště přejděte do umístění archivovaného objektu blob, zaškrtněte políčko, které se zobrazí vedle objektu blob, a pak vyberte tlačítko Kopírovat .
Přejděte do kontejneru, do kterého chcete umístit rehydrovaný objekt blob, a pak vyberte tlačítko Vložit .
Zobrazí se dialogové okno Vložit archivní objekt blob .
Poznámka:
Pokud vyberete tlačítko Vložit ve stejném umístění jako zdrojový objekt blob, pak výchozí název, který se zobrazí v poli Název cílového objektu blob, obsahuje číselnou příponu. Tím se zajistí, že zdrojové a cílové objekty blob mají různé názvy. Tento název můžete změnit, pokud se název liší od názvu zdrojového objektu blob.
V dialogovém okně Vložit archivní objekt blob zvolte úroveň přístupu a prioritu dosazování. Pak vyberte Vložit a dosaďte objekt blob.
Důležité
Při dosazování zdrojového objektu blob neodstraňovat.
Pokud chcete zkopírovat archivovaný objekt blob do online vrstvy pomocí PowerShellu, zavolejte příkaz Start-AzStorageBlobCopy a zadejte cílovou úroveň a prioritu dosazování. Nezapomeňte nahradit zástupné symboly v lomených závorkách vlastními hodnotami:
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$srcContainerName = "<source-container>"
$destContainerName = "<dest-container>"
$srcBlobName = "<source-blob>"
$destBlobName = "<dest-blob>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Copy the source blob to a new destination blob in hot tier with Standard priority.
Start-AzStorageBlobCopy -SrcContainer $srcContainerName `
-SrcBlob $srcBlobName `
-DestContainer $destContainerName `
-DestBlob $destBlobName `
-StandardBlobTier Hot `
-RehydratePriority Standard `
-Context $ctx
Pokud chcete pomocí Azure CLI zkopírovat archivovaný objekt blob do online vrstvy, zavolejte příkaz az storage blob copy start a zadejte cílovou úroveň a prioritu dosazování. Nezapomeňte nahradit zástupné symboly v lomených závorkách vlastními hodnotami:
az storage blob copy start \
--source-container <source-container> \
--source-blob <source-blob> \
--destination-container <dest-container> \
--destination-blob <dest-blob> \
--account-name <storage-account> \
--tier hot \
--rehydrate-priority standard \
--auth-mode login
–
Dosazování objektu blob do jiného účtu úložiště ve stejné oblasti
Následující příklady ukazují, jak zkopírovat archivovaný objekt blob do objektu blob v horké vrstvě v jiném účtu úložiště.
Na webu Azure Portal přejděte ke zdrojovému účtu úložiště.
V navigačním podokně účtu úložiště vyberte Prohlížeč úložiště.
V prohlížeči úložiště přejděte do umístění archivovaného objektu blob, zaškrtněte políčko, které se zobrazí vedle objektu blob, a pak vyberte tlačítko Kopírovat .
Přejděte k cílovému účtu úložiště a v navigačním podokně vyberte Prohlížeč úložiště.
Přejděte do kontejneru, do kterého chcete umístit rehydrovaný objekt blob, a pak vyberte tlačítko Vložit .
Zobrazí se dialogové okno Vložit archivní objekt blob .
V dialogovém okně Vložit archivní objekt blob zvolte úroveň přístupu a prioritu dosazování. Pak vyberte Vložit a dosaďte objekt blob.
Důležité
Při dosazování zdrojového objektu blob neodstraňovat.
Pokud chcete zkopírovat archivovaný objekt blob do objektu blob v online vrstvě v jiném účtu úložiště pomocí PowerShellu, ujistěte se, že jste nainstalovali modul Az.Storage verze 4.4.0 nebo vyšší. Dále zavolejte příkaz Start-AzStorageBlobCopy a zadejte cílovou online úroveň a prioritu dosazování. Musíte zadat sdílený přístupový podpis (SAS) s oprávněními ke čtení archivovaného zdrojového objektu blob.
Následující příklad ukazuje, jak zkopírovat archivovaný objekt blob do horké úrovně v jiném účtu úložiště. Nezapomeňte nahradit zástupné symboly v lomených závorkách vlastními hodnotami:
$rgName = "<resource-group>"
$srcAccount = "<source-account>"
$destAccount = "<dest-account>"
$srcContainer = "<source-container>"
$destContainer = "<dest-container>"
$srcBlob = "<source-blob>"
$destBlob = "<destination-blob>"
# Get the destination account context
$destCtx = New-AzStorageContext -StorageAccountName $destAccount -UseConnectedAccount
# Get the source account context
$srcCtx = New-AzStorageContext -StorageAccountName $srcAccount -UseConnectedAccount
# Get the SAS URI for the source blob
$srcBlobUri = New-AzStorageBlobSASToken -Container $srcContainer `
-Blob $srcBlob `
-Permission rwd `
-ExpiryTime (Get-Date).AddDays(1) `
-FullUri `
-Context $srcCtx
# Start the cross-account copy operation
Start-AzStorageBlobCopy -AbsoluteUri $srcBlobUri `
-DestContainer $destContainer `
-DestBlob $destBlob `
-DestContext $destCtx `
-StandardBlobTier Hot `
-RehydratePriority Standard
Pokud chcete zkopírovat archivovaný objekt blob do objektu blob v online vrstvě v jiném účtu úložiště pomocí Azure CLI, ujistěte se, že máte nainstalovanou verzi 2.35.0 nebo vyšší. Dále zavolejte příkaz az storage blob copy start a zadejte cílovou online úroveň a prioritu dosazování. Musíte zadat sdílený přístupový podpis (SAS) s oprávněními ke čtení archivovaného zdrojového objektu blob.
Následující příklad ukazuje, jak zkopírovat archivovaný objekt blob do horké úrovně v jiném účtu úložiště. Nezapomeňte nahradit zástupné symboly v lomených závorkách vlastními hodnotami:
# Specify the expiry interval
end=`date -u -d "1 day" '+%Y-%m-%dT%H:%MZ'`
# Get a SAS for the source blob
srcBlobUri=$(az storage blob generate-sas \
--account-name <source-account> \
--container <source-container> \
--name <archived-source-blob> \
--permissions rwd \
--expiry $end \
--https-only \
--full-uri \
--as-user \
--auth-mode login | tr -d '"')
# Copy to the destination blob in the hot tier
az storage blob copy start \
--source-uri $srcBlobUri \
--account-name <dest-account> \
--destination-container <dest-container> \
--destination-blob <dest-blob> \
--tier Hot \
--rehydrate-priority Standard \
--auth-mode login
–
Dosazování ze sekundární oblasti
Pokud jste nakonfigurovali účet úložiště tak, aby používal geograficky redundantní úložiště jen pro čtení (RA-GRS), můžete zkopírovat archivovaný objekt blob umístěný v sekundární oblasti do online vrstvy v jiném účtu úložiště, který se nachází ve stejné sekundární oblasti.
K dosazování ze sekundární oblasti použijte stejné pokyny, které jsou uvedeny v předchozí části (dosazování objektu blob do jiného účtu úložiště ve stejné oblasti. Připojte příponu -secondary k názvu účtu zdrojového koncového bodu. Pokud je například primární koncový bod pro úložiště myaccount.blob.core.windows.netobjektů blob , pak sekundární koncový bod je myaccount-secondary.blob.core.windows.net. Přístupové klíče účtu pro váš účet úložiště jsou stejné pro primární i sekundární koncové body.
Pokud chcete změnit úroveň objektu blob z archivu na horkou nebo studenou na webu Azure Portal, postupujte takto:
Na webu Azure Portal vyhledejte objekt blob, který se má dosadit.
Vyberte tlačítko Další na pravé straně stránky.
Vyberte Změnit úroveň.
V rozevíracím seznamu Úroveň přístupu vyberte cílovou úroveň přístupu.
V rozevíracím seznamu Priorita dosazování vyberte požadovanou prioritu dosazování. Mějte na paměti, že nastavení priority dosazování na hodnotu High obvykle vede k rychlejšímu dosazování, ale také vyšší náklady.
Vyberte tlačítko Uložit.
Pokud chcete změnit úroveň objektu blob z archivu na horkou nebo studenou pomocí PowerShellu, použijte vlastnost BlobClient objektu blob k vrácení odkazu na objekt blob .NET a pak v této referenci zavolejte metodu SetAccessTier. Nezapomeňte nahradit zástupné symboly v lomených závorkách vlastními hodnotami:
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$containerName = "<container>"
$blobName = "<archived-blob>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Change the blob's access tier to hot with Standard priority.
$blob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$blob.BlobClient.SetAccessTier("Hot", $null, "Standard")
Pokud chcete změnit úroveň objektu blob z archivu na horkou nebo studenou pomocí Azure CLI, zavolejte příkaz az storage blob set-tier . Nezapomeňte nahradit zástupné symboly v lomených závorkách vlastními hodnotami:
az storage blob set-tier \
--account-name <storage-account> \
--container-name <container> \
--name <archived-blob> \
--tier Hot \
--rehydrate-priority Standard \
--auth-mode login
Pokud chcete změnit úroveň objektu blob z archivu na horkou nebo studenou pomocí nástroje AzCopy, použijte příkaz azcopy set-properties a nastavte -block-blob-tier parametr na požadovanou úroveň a --rehydrate-priority na standard hodnotu nebo high. Ve výchozím nastavení je tento parametr nastaven na standard. Další informace o kompromisech jednotlivých možností najdete v tématu Priorita dosazování.
Důležité
Možnost změnit úroveň objektu blob pomocí nástroje AzCopy je aktuálně ve verzi PREVIEW.
Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.
Poznámka:
Tento příklad uzavře argumenty cesty do jednoduchých uvozovek ('' ). Použití jednoduchých uvozovek ve všech příkazových prostředích s výjimkou prostředí Windows Command Shell (cmd.exe). Pokud používáte prostředí Windows Command Shell (cmd.exe), uzavřete argumenty cesty do dvojitých uvozovek ("") místo jednoduchých uvozovek ('' ). Tento příklad také neobsahuje token SAS, protože předpokládá, že jste pomocí ID Microsoft Entra zadali autorizační přihlašovací údaje. Informace o způsobech zadání přihlašovacích údajů pro autorizaci pro službu úložiště najdete v článku Začínáme s nástrojem AzCopy .
Pokud chcete dosadit archivované objekty blob v kontejneru nebo složce na horkou nebo studenou úroveň, vytvořte výčet objektů blob a zavolejte operaci Set Blob Tier na každé z nich. Následující příklad ukazuje, jak provést tuto operaci:
Pokud chcete najednou dosadit velký počet objektů blob, zavolejte operaci Batch objektu blob, která zavolá funkci Set Blob Tier jako hromadnou operaci.
Příklad kódu, který ukazuje, jak provést dávkovou operaci, naleznete v tématu AzBulkSetBlobTier.
Kontrola stavu operace dosazování
Během dosazování objektu blob můžete zkontrolovat její prioritu stavu a dosazování pomocí webu Azure Portal, PowerShellu nebo Azure CLI. Vlastnost stavu může v závislosti na cílové vrstvě operace rehydratace vracet rehydrate-pending-to-cool nebo rehydrate-pending-to-cool. Vlastnost priority dosazování vrátí hodnotu Standard nebo High.
Mějte na paměti, že dosazování archivovaného objektu blob může trvat až 15 hodin a opakované dotazování stavu objektu blob za účelem zjištění, jestli je dosazování dokončené, neefektivní. Použití Azure Event Gridu k zachycení události, která se aktivuje při dosazování, nabízí lepší výkon a optimalizaci nákladů. Informace o tom, jak spustit funkci Azure Functions, když se událost aktivuje při dosazování objektů blob, najdete v tématu Spuštění funkce Azure Functions v reakci na událost dosazování objektů blob.
Pokud chcete zkontrolovat stav a prioritu operace čekání na dosazování na webu Azure Portal, zobrazte dialogové okno Změnit úroveň objektu blob:
Po dokončení dosazování se můžete podívat na webu Azure Portal, že se plně dosazovaný objekt blob nyní zobrazuje v cílové online vrstvě.
Pokud chcete zkontrolovat stav a prioritu operace čekání na dosazování pomocí PowerShellu, zavolejte příkaz Get-AzStorageBlob a zkontrolujte vlastnosti ArchiveStatus a RehydratePriority objektu blob. Pokud je dosazování operace kopírování, zkontrolujte tyto vlastnosti v cílovém objektu blob. Nezapomeňte nahradit zástupné symboly v lomených závorkách vlastními hodnotami:
Pokud chcete pomocí Azure CLI zkontrolovat stav a prioritu operace čekání na dosazování, zavolejte příkaz az storage blob show a zkontrolujte vlastnosti rehydrationStatus a rehydratePriority cílového objektu blob. Nezapomeňte nahradit zástupné symboly v lomených závorkách vlastními hodnotami:
Zatímco operace dosazování podle standardní priority čeká na vyřízení, můžete změnit nastavení priority dosazování objektu blob ze standardu na vysokou , aby se tento objekt blob dosazuje rychleji.
Nastavení priority dosazování nelze snížit z hodnoty High na Standard pro čekající operaci. Mějte také na paměti, že změna priority dosazování může mít vliv na fakturaci. Další informace najdete v tématu Dosazování objektů blob z archivní úrovně.
Změna priority dosazování pro čekající operaci nastavit úroveň objektu blob
Pokud chcete změnit prioritu dosazování, zatímco čeká operace na úrovni blob sady standardní priority, použijte Azure Portal, PowerShell, Azure CLI nebo některou z klientských knihoven Azure Storage.
Pokud chcete změnit prioritu dosazování pro čekající operaci pomocí webu Azure Portal, postupujte takto:
Přejděte do objektu blob, pro který chcete změnit prioritu dosazování, a vyberte objekt blob.
Vyberte tlačítko Změnit úroveň.
V dialogovém okně Změnit úroveň nastavte úroveň přístupu na cílovou online úroveň přístupu pro dosazování objektu blob (horké nebo studené). Pole Stav archivu zobrazuje cílovou online úroveň.
V rozevíracím seznamu Priorita dosazování nastavte prioritu na Hodnotu Vysoká.
Zvolte Uložit.
Pokud chcete změnit prioritu dosazování pro čekající operaci pomocí PowerShellu, ujistěte se, že jste nainstalovali modul Az.Storage verze 3.12.0 nebo novější. V dalším kroku získejte vlastnosti objektu blob ze služby. Tento krok je nezbytný k zajištění, že máte objekt s nejnovějším nastavením vlastnosti. Nakonec použijte vlastnost BlobClient objektu blob k vrácení odkazu .NET na objekt blob a pak volejte metodu SetAccessTier pro tento odkaz.
# Get the blob from the service.
$rehydratingBlob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
# Verify that the current rehydration priority is Standard.
if ($rehydratingBlob.BlobProperties.RehydratePriority -eq "Standard")
{
# Change rehydration priority to High, using the same target tier.
if ($rehydratingBlob.BlobProperties.ArchiveStatus -eq "rehydrate-pending-to-hot")
{
$rehydratingBlob.BlobClient.SetAccessTier("Hot", $null, "High")
"Changing rehydration priority to High for blob moving to hot tier."
}
if ($rehydratingBlob.BlobProperties.ArchiveStatus -eq "rehydrate-pending-to-cool")
{
$rehydratingBlob.BlobClient.SetAccessTier("Cool", $null, "High")
"Changing rehydration priority to High for blob moving to cool tier."
}
}
Pokud chcete změnit prioritu dosazování pro čekající operaci pomocí Azure CLI, nejprve se ujistěte, že jste nainstalovali Azure CLI verze 2.29.2 nebo novější. Další informace o instalaci Azure CLI najdete v tématu Postup instalace Azure CLI.
Dále zavolejte příkaz az storage blob set-tier s parametrem nastaveným --rehydrate-priority na High. Cílová úroveň (horká nebo studená) musí být stejná úroveň, kterou jste původně zadali pro operaci dosazování. Nezapomeňte nahradit zástupné symboly v lomených závorkách vlastními hodnotami:
# Update the rehydration priority for a blob moving to the hot tier.
az storage blob set-tier \
--account-name <storage-account> \
--container-name <container> \
--name <blob> \
--tier Hot \
--rehydrate-priority High \
--auth-mode login
# Show the updated property values.
az storage blob show \
--account-name <storage-account> \
--container-name <container> \
--name <blob> \
--query '[rehydratePriority, properties.rehydrationStatus]' \
--output tsv \
--auth-mode login
–
Změna priority dosazování pro čekající operaci kopírování objektu blob
Když dosazujete objekt blob zkopírováním archivovaného objektu blob do online úrovně, Azure Storage okamžitě vytvoří cílový objekt blob v archivní úrovni. Cílový objekt blob se pak dosadí na cílovou úroveň s prioritou zadanou v operaci kopírování. Další informace o dosazování archivovaného objektu blob pomocí operace kopírování najdete v tématu Kopírování archivovaného objektu blob do online vrstvy.
Pokud chcete provést operaci kopírování z archivní úrovně do online úrovně s prioritou Standard, použijte PowerShell, Azure CLI nebo některou z klientských knihoven Azure Storage. Další informace najdete v tématu Rehydrate objekt blob pomocí operace kopírování. Dále změňte prioritu dosazování ze standardu na vysokou pro čekající dosazování, zavolejte nastavit úroveň objektu blob v cílovém objektu blob a zadejte cílovou úroveň.
Po zahájení operace kopírování se na webu Azure Portal zobrazí zdrojový i cílový objekt blob v archivní úrovni. Cílový objekt blob se dosazuje se standardní prioritou.
Pokud chcete změnit prioritu dosazování cílového objektu blob, postupujte takto:
Vyberte cílový objekt blob.
Vyberte tlačítko Změnit úroveň.
V dialogovém okně Změnit úroveň nastavte úroveň přístupu na cílovou online úroveň přístupu pro dosazování objektu blob (horké nebo studené). Pole Stav archivu zobrazuje cílovou online úroveň.
V rozevíracím seznamu Priorita dosazování nastavte prioritu na Hodnotu Vysoká.
Zvolte Uložit.
Stránka vlastností cílového objektu blob teď ukazuje, že se dosazuje s vysokou prioritou.
Po zahájení operace kopírování zkontrolujte vlastnosti cílového objektu blob. Uvidíte, že cílový objekt blob je v archivní úrovni a že se dosazuje s prioritou Standard.
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$destContainerName = "<container>"
$destBlobName = "<destination-blob>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Get properties for the destination blob.
$destinationBlob = Get-AzStorageBlob -Container $destContainerName `
-Blob $destBlobName `
-Context $ctx
$destinationBlob.BlobProperties.AccessTier
$destinationBlob.BlobProperties.ArchiveStatus
$destinationBlob.BlobProperties.RehydratePriority
Dále pomocí PowerShellu zavolejte metodu SetAccessTier , která změní prioritu dosazování cílového objektu blob na vysokou, jak je popsáno v tématu Změna priority dosazování pro čekající operaci set blob tier. Cílová úroveň (horká nebo studená) musí být stejná úroveň, kterou jste původně zadali pro operaci dosazování. Znovu zkontrolujte vlastnosti a ověřte, že se objekt blob rehydruje s vysokou prioritou.
Po zahájení operace kopírování zkontrolujte vlastnosti cílového objektu blob. Uvidíte, že cílový objekt blob je v archivní úrovni a že se dosazuje s prioritou Standard.
Dále zavolejte příkaz az storage blob set-tier s parametrem --rehydrate-priority nastaveným na Hodnotu Vysoká, jak je popsáno v části Změna priority dosazování pro čekající operaci set Blob Tier. Cílová úroveň (horká nebo studená) musí být stejná úroveň, kterou jste původně zadali pro operaci dosazování. Znovu zkontrolujte vlastnosti a ověřte, že se objekt blob rehydruje s vysokou prioritou.