Riattivare un BLOB archiviato in un livello online
Articolo
Per leggere un BLOB incluso nel livello archivio, è prima necessario riattivare il BLOB in un livello online (ad accesso frequente, sporadico o saltuario). È possibile riattivare un BLOB in due modi:
Copiandolo in un nuovo BLOB nel livello ad accesso frequente, sporadico o saltuario con l'operazione Copia BLOB.
Modificandone il livello da archivio a livello ad accesso frequente, sporadico o saltuario con l'operazione Imposta livello BLOB.
Quando si riattiva un BLOB, è possibile specificare la priorità per l'operazione impostando la priorità standard o alta. Il completamento di un'operazione di riattivazione con priorità standard può richiedere fino a 15 ore. Un'operazione con priorità alta ha la priorità rispetto alle richieste con priorità standard e può essere completata in meno di un'ora per gli oggetti di dimensioni inferiori a 10 GB. È possibile modificare la priorità di riattivazione da Standard ad Alta quando l'operazione è in sospeso.
È possibile configurare Griglia di eventi di Azure in modo da generare un evento al termine della riattivazione ed eseguire il codice dell'applicazione in risposta. Per informazioni su come gestire un evento che esegue una funzione di Azure al termine dell'operazione di riattivazione del BLOB, vedere Eseguire una funzione di Azure in risposta a un evento di riattivazione di un BLOB.
Riattivazione di un BLOB con un'operazione di copia
Per riattivare un BLOB dal livello archivio copiandolo in un livello online, usare il portale di Azure, PowerShell, l'interfaccia della riga di comando di Azure o una delle librerie client di Archiviazione di Azure. Tenere presente che quando si copia un BLOB archiviato in un livello online, i BLOB di origine e di destinazione devono avere nomi diversi.
La copia di un BLOB archiviato in un livello di destinazione online è supportata all'interno dello stesso account di archiviazione. A partire dalla versione del servizio 2021-02-12, è possibile copiare un BLOB archiviato in un account di archiviazione diverso, purché l'account di destinazione si trovi nella stessa area dell'account di origine.
Al termine dell'operazione di copia, il BLOB di destinazione viene visualizzato nel livello archivio. Il BLOB di destinazione viene quindi riattivato nel livello online specificato durante l'operazione di copia. Quando il BLOB di destinazione è completamente riattivato, diventa disponibile nel nuovo livello online.
Riattivazione di un BLOB nello stesso account di archiviazione
Gli esempi seguenti illustrano come copiare un BLOB archiviato in un BLOB nel livello ad accesso frequente nello stesso account di archiviazione.
Passare all'account di archiviazione di origine nel portale di Azure.
Nel pannello di navigazione per l'account di archiviazione selezionare Browser archiviazione.
Nel browser archiviazione passare al percorso del BLOB archiviato, selezionare la casella di controllo visualizzata accanto al BLOB e quindi selezionare il pulsante Copia.
Passare al contenitore in cui si vuole posizionare il BLOB riattivato e quindi selezionare il pulsante Incolla.
Viene visualizzata la finestra di dialogo Incolla BLOB di archivio.
Nota
Se si seleziona il pulsante Incolla mentre ci si trova nello stesso percorso del BLOB di origine, il nome predefinito visualizzato nel campo Nome BLOB di destinazione contiene un suffisso numerico. In questo modo si garantisce che i BLOB di origine e di destinazione abbiano nomi diversi. È possibile modificare il nome se si vuole, purché questo sia diverso dal nome del BLOB di origine.
Nella finestra di dialogo Incolla BLOB di archivio scegliere un livello di accesso e una priorità di riattivazione. Selezionare quindi Incolla per riattivare il BLOB.
Importante
Non eliminare il BLOB di origine durante la riattivazione.
Per copiare un BLOB archiviato in un livello online con PowerShell, chiamare il comando Start-AzStorageBlobCopy e specificare il livello di destinazione e la priorità di riattivazione. Ricordare di sostituire i valori dei segnaposto tra parentesi angolari con valori personalizzati:
# 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
Per copiare un BLOB archiviato in un livello online con l'interfaccia della riga di comando di Azure, chiamare il comando az storage blob copy start e specificare il livello di destinazione e la priorità di riattivazione. Ricordare di sostituire i valori dei segnaposto tra parentesi angolari con valori personalizzati:
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
N/D
Riattivazione di un BLOB in un account di archiviazione diverso nella stessa area
Gli esempi seguenti illustrano come copiare un BLOB archiviato in un BLOB nel livello ad accesso frequente in un diverso account di archiviazione.
Nota
Gli account di destinazione e di origine devono trovarsi nella stessa area.
Passare all'account di archiviazione di origine nel portale di Azure.
Nel pannello di navigazione per l'account di archiviazione selezionare Browser archiviazione.
Nel browser archiviazione passare al percorso del BLOB archiviato, selezionare la casella di controllo visualizzata accanto al BLOB e quindi selezionare il pulsante Copia.
Passare all'account di archiviazione di destinazione e nel pannello di navigazione selezionare Browser archiviazione.
Passare al contenitore in cui si vuole posizionare il BLOB riattivato e quindi selezionare il pulsante Incolla.
Viene visualizzata la finestra di dialogo Incolla BLOB di archivio.
Nella finestra di dialogo Incolla BLOB di archivio scegliere un livello di accesso e una priorità di riattivazione. Selezionare quindi Incolla per riattivare il BLOB.
Importante
Non eliminare il BLOB di origine durante la riattivazione.
Per copiare un BLOB archiviato in un BLOB in un livello online in un account di archiviazione diverso con PowerShell, assicurarsi di aver installato il modulo Az.Storage, versione 4.4.0 o successiva. Chiamare quindi il comando Start-AzStorageBlobCopy e specificare il livello online di destinazione e la priorità di riattivazione. È necessario specificare una firma di accesso condiviso con autorizzazioni di lettura per il BLOB di origine archiviato.
L'esempio seguente illustra come copiare un BLOB archiviato nel livello ad accesso frequente in un diverso account di archiviazione. Ricordare di sostituire i valori dei segnaposto tra parentesi angolari con valori personalizzati:
$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
Per copiare un BLOB archiviato in un BLOB di un livello online in un account di archiviazione diverso con l'interfaccia della riga di comando di Azure, assicurarsi di aver installato la versione 2.35.0 o successiva. Chiamare quindi il comando az storage blob copy start e specificare il livello online di destinazione e la priorità di riattivazione. È necessario specificare una firma di accesso condiviso con autorizzazioni di lettura per il BLOB di origine archiviato.
L'esempio seguente illustra come copiare un BLOB archiviato nel livello ad accesso frequente in un diverso account di archiviazione. Ricordare di sostituire i valori dei segnaposto tra parentesi angolari con valori personalizzati:
# 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
N/D
Riattivazione da un'area secondaria
Se l'account di archiviazione è stato configurato per l'uso dell'archiviazione con ridondanza geografica e accesso in lettura (RA-GRS), è possibile copiare un BLOB archiviato che si trova in un'area secondaria in un livello online di un account di archiviazione diverso che si trova nella stessa area secondaria.
Per eseguire la riattivazione da un'area secondaria, usare le stesse indicazioni presentate nella sezione precedente (Riattivazione di un BLOB in un account di archiviazione diverso nella stessa area). Aggiungere il suffisso -secondary al nome dell'account dell'endpoint di origine. Se ad esempio l'endpoint primario per l'archiviazione BLOB è myaccount.blob.core.windows.net, l'endpoint secondario sarà myaccount-secondary.blob.core.windows.net. Le chiavi di accesso per l'account di archiviazione sono identiche per gli endpoint primario e secondario.
Riattivazione di un BLOB mediante modifica del livello
Per riattivare un BLOB modificandone il livello da archivio a livello ad accesso frequente o sporadico, usare il portale di Azure, PowerShell o l'interfaccia della riga di comando di Azure.
Per modificare il livello di un BLOB da archivio a livello ad accesso frequente o sporadico nel portale di Azure, seguire questa procedura:
Individuare il BLOB da riattivare nel portale di Azure.
Selezionare il pulsante Altro sul lato destro della pagina.
Selezionare Modifica livello.
Selezionare il livello di accesso di destinazione dall'elenco a discesa Livello di accesso.
Nell'elenco a discesa Priorità di riattivazione selezionare la priorità di riattivazione desiderata. Tenere presente che impostando la priorità di riattivazione su Alta in genere la riattivazione è più rapida, ma comporta anche un costo maggiore.
Selezionare il pulsante Salva.
Per modificare il livello di un BLOB da archivio al livello ad accesso frequente o sporadico con PowerShell, usare la proprietà BlobClient del BLOB per restituire un riferimento .NET al BLOB, quindi chiamare il metodo SetAccessTier su tale riferimento. Ricordare di sostituire i valori dei segnaposto tra parentesi angolari con valori personalizzati:
# 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")
Per modificare il livello di un BLOB da archivio a livello ad accesso frequente o sporadico con l'interfaccia della riga di comando di Azure, chiamare il comando az storage blob set-tier. Ricordare di sostituire i valori dei segnaposto tra parentesi angolari con valori personalizzati:
az storage blob set-tier \
--account-name <storage-account> \
--container-name <container> \
--name <archived-blob> \
--tier Hot \
--rehydrate-priority Standard \
--auth-mode login
Per modificare il livello di un BLOB da archivio al livello ad accesso frequente o sporadico con AzCopy, usare il comando azcopy set-properties e impostare il parametro -block-blob-tier sul livello desiderato e --rehydrate-priority su standard o high. Per impostazione predefinita, il parametro è impostato su standard. Per altre informazioni sui vantaggi e gli svantaggi di ogni opzione, vedere Priorità di riattivazione.
Importante
La possibilità di modificare il livello di un BLOB usando AzCopy è attualmente disponibile in ANTEPRIMA.
Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.
Nota
In questo esempio gli argomenti path vengono racchiusi con virgolette singole (''). Usare virgolette singole in tutte le shell dei comandi, ad eccezione della Shell dei comandi di Windows (cmd.exe). Se si usa una Shell dei comandi di Windows (cmd.exe), racchiudere gli argomenti path con virgolette doppie ("") anziché virgolette singole (''). Questo esempio non contiene anche un token di firma di accesso condiviso perché presuppone che siano state fornite le credenziali di autorizzazione usando Microsoft Entra ID. Vedere l'articolo Introduzione ad AzCopy per informazioni sui modi in cui è possibile fornire le credenziali di autorizzazione al servizio di archiviazione.
Per riattivare i BLOB archiviati in un contenitore o in una cartella al livello ad accesso frequente o sporadico, enumerarli e chiamare l'operazione Imposta livello BLOB su ognuno di essi. L'esempio seguente illustra come eseguire questa operazione:
Per riattivare un numero elevato di BLOB contemporaneamente, chiamare l'operazione Batch su BLOB per chiamare Imposta livello BLOB come operazione in blocco.
Per un esempio di codice che illustra come eseguire l'operazione batch, vedere AzBulkSetBlobTier.
Controllare lo stato di un'operazione di riattivazione
Durante la riattivazione di un BLOB, è possibile controllarne lo stato e la priorità di riattivazione usando il portale di Azure, PowerShell o l'interfaccia della riga di comando di Azure. La proprietà status può restituire rehydrate-pending-to-hot o rehydrate-pending-to-cool, a seconda del livello di destinazione per l'operazione di riattivazione. La proprietà della priorità di riattivazione restituisce Standard o High.
Tenere presente che la riattivazione di un BLOB archiviato può richiedere fino a 15 ore ed è inutile eseguire ripetutamente il polling dello stato del BLOB per determinare se la riattivazione è stata completata. L'uso di Griglia di eventi di Azure per acquisire l'evento generato quando la riattivazione è completa offre prestazioni migliori e ottimizzazione dei costi. Per informazioni su come eseguire una funzione di Azure quando si attiva un evento alla riattivazione del BLOB, vedere Eseguire una funzione di Azure in risposta a un evento di riattivazione di un BLOB.
Per controllare lo stato e la priorità di un'operazione di riattivazione in sospeso nel portale di Azure, visualizzare la finestra di dialogo Modifica livello per il BLOB:
Al termine della riattivazione, è possibile vedere che, nel portale di Azure, il BLOB completamente riattivato ora viene visualizzato nel livello online di destinazione.
Per controllare lo stato e la priorità di un'operazione di riattivazione in sospeso con PowerShell, chiamare il comando Get-AzStorageBlob e controllare le proprietà ArchiveStatus e RehydratePriority del BLOB. Se la riattivazione è un'operazione di copia, controllare queste proprietà nel BLOB di destinazione. Ricordare di sostituire i valori dei segnaposto tra parentesi angolari con valori personalizzati:
Per controllare lo stato e la priorità di un'operazione di riattivazione in sospeso con l'interfaccia della riga di comando di Azure, chiamare il comando az storage blob show e controllare le proprietà rehydrationStatus e rehydratePriority del BLOB di destinazione. Ricordare di sostituire i valori dei segnaposto tra parentesi angolari con valori personalizzati:
Modificare la priorità di riattivazione di un'operazione in sospeso
Quando un'operazione di riattivazione con priorità standard è in sospeso, è possibile modificare l'impostazione della priorità di riattivazione per un BLOB da Standard ad Alta per riattivare più rapidamente il BLOB.
L'impostazione della priorità di riattivazione non può essere abbassata da Alta a Standard per un'operazione in sospeso. Tenere inoltre presente che la modifica della priorità di riattivazione può avere un impatto sulla fatturazione. Per altre informazioni, vedere Riattivazione di un BLOB dal livello archivio.
Modificare la priorità di riattivazione per un'operazione Imposta livello BLOB in sospeso
Per modificare la priorità di riattivazione quando un'operazione Imposta livello BLOB è in sospeso, usare il portale di Azure, PowerShell, l'interfaccia della riga di comando di Azure o una delle librerie client di Archiviazione di Azure.
Per modificare la priorità di riattivazione per un'operazione in sospeso con il portale di Azure, seguire questa procedura:
Passare al BLOB per il quale si vuole modificare la priorità di riattivazione e selezionarlo.
Selezionare il pulsante Modifica livello.
Nella finestra di dialogo Modifica livello impostare il livello di accesso sul livello di accesso online di destinazione per il BLOB di riattivazione (ad accesso frequente o sporadico). Il campo Stato archivio mostra il livello online di destinazione.
Nell'elenco a discesa Priorità di riattivazione impostare la priorità su Alta.
Seleziona Salva.
Per modificare la priorità di riattivazione per un'operazione in sospeso con PowerShell, assicurarsi di aver installato il modulo Az.Storage, versione 3.12.0 o successiva. Ottenere quindi le proprietà del BLOB dal servizio. Questo passaggio è necessario per assicurarsi di avere un oggetto con le impostazioni delle proprietà più recenti. Infine, usare la proprietà BlobClient del BLOB per restituire un riferimento .NET al BLOB, quindi chiamare il metodo SetAccessTier su tale riferimento.
# 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."
}
}
Per modificare la priorità di riattivazione per un'operazione in sospeso con l'interfaccia della riga di comando di Azure, assicurarsi di aver installato l'interfaccia della riga di comando di Azure, versione 2.29.2 o successiva. Per altre informazioni sull'installazione dell'interfaccia della riga di comando di Azure, vedere Come installare l'interfaccia della riga di comando di Azure.
Chiamare quindi il comando az storage blob set-tier con il parametro --rehydrate-priority impostato su Alta. Il livello di destinazione (ad accesso frequente o sporadico) deve essere lo stesso livello originariamente specificato per l'operazione di riattivazione. Ricordare di sostituire i valori dei segnaposto tra parentesi angolari con valori personalizzati:
# 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
N/D
Modificare la priorità di riattivazione per un'operazione Copia BLOB in sospeso
Quando si riattiva un BLOB copiando il BLOB archiviato in un livello online, Archiviazione di Azure crea immediatamente il BLOB di destinazione nel livello archivio. Il BLOB di destinazione viene quindi riattivato nel livello di destinazione con la priorità specificata nell'operazione di copia. Per altre informazioni sulla riattivazione di un BLOB archiviato con un'operazione di copia, vedere Copiare un BLOB archiviato in un livello online.
Per eseguire l'operazione di copia dal livello archivio a un livello online con priorità Standard, usare PowerShell, l'interfaccia della riga di comando di Azure o una delle librerie client di Archiviazione di Azure. Per altre informazioni, vedere Riattivazione di un BLOB con un'operazione di copia. Successivamente, per modificare la priorità di riattivazione da Standard ad Alta per la riattivazione in sospeso, chiamare Imposta livello BLOB nel BLOB di destinazione e specificare il livello di destinazione.
Dopo aver avviato l'operazione di copia, nel portale di Azure si noterà che sia il BLOB di origine che quello di destinazione si trovano nel livello archivio. Il BLOB di destinazione viene riattivato con priorità Standard.
Per modificare la priorità di riattivazione per il BLOB di destinazione, seguire questa procedura:
Selezionare il BLOB di destinazione.
Selezionare il pulsante Modifica livello.
Nella finestra di dialogo Modifica livello impostare il livello di accesso sul livello di accesso online di destinazione per il BLOB di riattivazione (ad accesso frequente o sporadico). Il campo Stato archivio mostra il livello online di destinazione.
Nell'elenco a discesa Priorità di riattivazione impostare la priorità su Alta.
Seleziona Salva.
La pagina delle proprietà del BLOB di destinazione mostra ora che la riattivazione ha priorità Alta.
Dopo aver avviato l'operazione di copia, controllare le proprietà del BLOB di destinazione. Si noterà che il BLOB di destinazione si trova nel livello di archivio e la riattivazione ha priorità 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
Chiamare quindi il metodo SetAccessTier tramite PowerShell per modificare la priorità di riattivazione per il BLOB di destinazione su Alta, come descritto in Modificare la priorità di riattivazione per un'operazione Imposta livello BLOB in sospeso. Il livello di destinazione (ad accesso frequente o sporadico) deve essere lo stesso livello originariamente specificato per l'operazione di riattivazione. Controllare di nuovo le proprietà per verificare che il BLOB venga riattivato con priorità Alta.
Dopo aver avviato l'operazione di copia, controllare le proprietà del BLOB di destinazione. Si noterà che il BLOB di destinazione si trova nel livello di archivio e la riattivazione ha priorità Standard.
Chiamare quindi il comando az storage blob set-tier con il parametro --rehydrate-priority impostato su Alta, come descritto in Modificare la priorità di riattivazione per un'operazione Imposta livello BLOB in sospeso. Il livello di destinazione (ad accesso frequente o sporadico) deve essere lo stesso livello originariamente specificato per l'operazione di riattivazione. Controllare di nuovo le proprietà per verificare che il BLOB venga riattivato con priorità Alta.