Para ler um blob que está na camada de arquivo, tem de primeiro reidratar o blob para uma camada online (quente, fresca ou fria). Você pode reidratar uma bolha de duas maneiras:
- Copiando-o para um novo blob na camada quente, fria ou fria com a operação Copiar Blob .
- Alterando sua camada de arquivo para quente, frio ou frio com a operação Definir camada de Blob .
Ao reidratar um blob, pode-se especificar a prioridade para a operação como sendo de prioridade padrão ou alta. Uma operação de reidratação de prioridade padrão pode levar até 15 horas para ser concluída. Uma operação de alta prioridade é priorizada em relação às solicitações de prioridade padrão e pode ser concluída em menos de uma hora para objetos com menos de 10 GB de tamanho. Você pode alterar a prioridade de reidratação de Standard para High enquanto a operação estiver pendente.
Você pode configurar a Grade de Eventos do Azure para disparar um evento quando a reidratação estiver concluída e executar o código do aplicativo em resposta. Para saber como manipular um evento que executa uma Função do Azure quando a operação de reidratação de blob é concluída, consulte Executar uma Função do Azure em resposta a um evento de reidratação de blob.
Para obter mais informações sobre como reidratar um blob, consulte Reidratação de blob da camada de arquivamento.
Reidratar um 'blob' com uma operação de cópia
Para reidratar um blob da camada de arquivamento através da cópia para uma camada online, utilize o portal do Azure, PowerShell, Azure CLI ou uma das bibliotecas de cliente do Armazenamento do Azure. Lembre-se de que, quando você copia um blob arquivado para uma camada online, os blobs de origem e de destino devem ter nomes diferentes.
A cópia de um blob arquivado para uma camada de destino online é suportada na mesma conta de armazenamento. A partir da versão de serviço 2021-02-12, você pode copiar um blob arquivado para uma conta de armazenamento diferente, desde que a conta de destino esteja na mesma região da conta de origem.
Após a conclusão da operação de cópia, o blob de destino aparece na camada de arquivamento. O blob de destino é então reidratado para a camada online especificada na operação de cópia. Quando o blob de destino está totalmente reidratado, ele fica disponível na nova camada online.
Reidratar um blob para a mesma conta de armazenamento
Os exemplos a seguir mostram como copiar um blob arquivado para um blob na camada quente na mesma conta de armazenamento.
Navegue até a conta de armazenamento de origem no portal do Azure.
No painel de navegação da conta de armazenamento, selecione Navegador de armazenamento.
No navegador de armazenamento, navegue até o local do blob arquivado, marque a caixa de seleção que aparece ao lado do blob e selecione o botão Copiar .
Navegue até o recipiente onde deseja colocar o blob reidratado e selecione o botão Colar .
A caixa de diálogo Colar bloco de arquivo é exibida.
Observação
Se você selecionar o botão Colar enquanto estiver no mesmo local do blob de origem, o nome padrão que aparece no campo Nome do blob de destino conterá um sufixo numérico. Isso garante que os blobs de origem e de destino tenham nomes diferentes. Você pode alterar esse nome se desejar, desde que o nome seja diferente do nome do blob de origem.
Na caixa de diálogo Colar blob de arquivo de arquivamento, escolha uma camada de acesso e uma prioridade de reidratação. Em seguida, selecione Colar para reidratar a bolha.
Importante
Não elimine o blob de origem enquanto ele estiver reidratando.
Para copiar um blob arquivado para uma camada online com o PowerShell, chame o comando Start-AzStorageBlobCopy e especifique a camada de destino e a prioridade de reidratação. Lembre-se de substituir os espaços reservados entre colchetes angulares pelos seus próprios valores:
# 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
Para copiar um blob arquivado para uma camada online com a CLI do Azure, chame o comando az storage blob copy start e especifique a camada de destino e a prioridade de reidratação. Lembre-se de substituir os espaços reservados entre parênteses angulares pelos seus próprios valores.
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
Reidratar um blob para uma conta de armazenamento diferente na mesma região
Os exemplos a seguir mostram como copiar um blob arquivado para um blob na camada quente numa conta de armazenamento diferente.
Observação
A conta de destino e de origem deve estar na mesma região.
Navegue até a conta de armazenamento de origem no portal do Azure.
No painel de navegação da conta de armazenamento, selecione Navegador de armazenamento.
No navegador de armazenamento, navegue até o local do blob arquivado, marque a caixa de seleção que aparece ao lado do blob e selecione o botão Copiar .
Navegue até a conta de armazenamento de destino e, no painel de navegação, selecione Navegador de armazenamento.
Navegue até o contentor onde pretende colocar o blob reidratado e, em seguida, selecione o botão Colar.
A caixa de diálogo Colar blob de arquivo é exibida.
Na caixa de diálogo Colar blob de arquivo , escolha uma camada de acesso e uma prioridade de reidratação. Em seguida, selecione Colar para reidratar a bolha.
Importante
Não apague o blob de origem enquanto ele estiver a reidratar.
Para copiar um blob arquivado para um blob em uma camada online em uma conta de armazenamento diferente com o PowerShell, verifique se você instalou o módulo Az.Storage , versão 4.4.0 ou superior. Em seguida, chame o comando Start-AzStorageBlobCopy e especifique o nível online de destino e a prioridade de reidratação. Você deve especificar uma assinatura de acesso compartilhado (SAS) com permissões de leitura para o blob de origem arquivado.
O exemplo a seguir mostra como copiar um blob arquivado para o hot tier em uma conta de armazenamento diferente. Lembre-se de substituir os espaços reservados entre colchetes angulares pelos seus próprios valores:
$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
Para copiar um blob arquivado para um blob em uma camada online em uma conta de armazenamento diferente com a CLI do Azure, verifique se você instalou a versão 2.35.0 ou superior. Em seguida, chame o comando az storage blob copy start e especifique a camada online de destino e a prioridade de reidratação. Você deve especificar uma assinatura de acesso compartilhado (SAS) com permissões de leitura para o blob de origem arquivado.
O exemplo a seguir mostra como copiar um blob arquivado para o hot tier em uma conta de armazenamento diferente. Lembre-se de substituir os espaços reservados em parênteses angulares pelos seus próprios valores.
# 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
Reidratar a partir de uma região secundária
Se você configurou sua conta de armazenamento para usar armazenamento com redundância geográfica de acesso de leitura (RA-GRS), poderá copiar um blob arquivado localizado em uma região secundária para uma camada online em uma conta de armazenamento diferente localizada nessa mesma região secundária.
Para reidratar a partir de uma região secundária, use a mesma orientação apresentada na seção anterior (Reidratar um blob para uma conta de armazenamento diferente na mesma região). Anexe o sufixo -secondary
ao nome da conta do ponto de extremidade de origem. Por exemplo, se o ponto de extremidade principal para armazenamento de Blob for myaccount.blob.core.windows.net
, o ponto de extremidade secundário será myaccount-secondary.blob.core.windows.net
. As chaves de acesso da sua conta de armazenamento são as mesmas para os pontos de extremidade principal e secundário.
Para saber mais sobre como obter acesso de leitura a regiões secundárias, consulte Acesso de leitura a dados na região secundária.
Reidrate uma bolha alterando sua camada
Para reidratar um blob alterando sua camada de arquivo morto para quente ou frio, use o portal do Azure, o PowerShell ou a CLI do Azure.
Para alterar a camada de um blob de arquivo morto para quente ou frio no portal do Azure, siga estas etapas:
Localize o blob para reidratar no portal do Azure.
Selecione o botão Mais no lado direito da página.
Selecione Alterar camada.
Selecione a camada de acesso de destino na lista suspensa Camada de acesso .
Na lista suspensa Prioridade de reidrate , selecione a prioridade de reidratação desejada. Tenha em mente que definir a prioridade de reidratação como Alta normalmente resulta em uma reidratação mais rápida, mas também incorre em um custo maior.
Selecione o botão Salvar.
Para alterar a camada de um blob de archive para hot ou cool com o PowerShell, use a propriedade BlobClient do blob para retornar uma referência .NET ao blob e, em seguida, chame o método SetAccessTier nessa referência. Lembre-se de substituir os espaços reservados entre colchetes angulares pelos seus próprios valores:
# 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")
Para alterar a camada de um blob de archive para hot or cool com a CLI do Azure, chame o comando az storage blob set-tier . Lembre-se de substituir os marcadores de posição entre parênteses angulares pelos seus próprios valores.
az storage blob set-tier \
--account-name <storage-account> \
--container-name <container> \
--name <archived-blob> \
--tier Hot \
--rehydrate-priority Standard \
--auth-mode login
Para alterar a camada de um blob de archive para hot ou cool com AzCopy, use o comando azcopy set-properties, defina o parâmetro -block-blob-tier
para a camada desejada e ajuste --rehydrate-priority
para standard
ou high
. Por padrão, esse parâmetro é definido como standard
. Para saber mais sobre as compensações de cada opção, consulte Prioridade de reidratação.
Observação
Este exemplo delimita argumentos de caminho com aspas simples (''). Use aspas simples em todos os shells de comando, exceto no Shell de Comando do Windows (cmd.exe). Se você estiver usando um Shell de Comando do Windows (cmd.exe), coloque argumentos de caminho com aspas duplas ("") em vez de aspas simples ('').
Este exemplo também não contém nenhum token SAS porque pressupõe que você forneceu credenciais de autorização usando a ID do Microsoft Entra. Consulte o artigo Introdução ao AzCopy para saber mais sobre as maneiras de fornecer credenciais de autorização para o serviço de armazenamento.
azcopy set-properties 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>' --block-blob-tier=hot --rehydrate-priority=high
Reidratar a granel um conjunto de bolhas
Para reidratar blobs arquivados num contentor ou diretório para a camada quente ou fria, percorra os blobs e chame a operação Configurar Camada do Blob em cada um. O exemplo a seguir mostra como executar essa operação:
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$containerName = "<container>"
$folderName = "<folder>/"
$ctx = (Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName).Context
$blobCount = 0
$Token = $Null
$MaxReturn = 5000
do {
$Blobs = Get-AzStorageBlob -Context $ctx -Container $containerName -Prefix $folderName -MaxCount $MaxReturn -ContinuationToken $Token
if($Blobs -eq $Null) { break }
#Set-StrictMode will cause Get-AzureStorageBlob returns result in different data types when there is only one blob
if($Blobs.GetType().Name -eq "AzureStorageBlob")
{
$Token = $Null
}
else
{
$Token = $Blobs[$Blobs.Count - 1].ContinuationToken;
}
$Blobs | ForEach-Object {
if(($_.BlobType -eq "BlockBlob") -and ($_.AccessTier -eq "Archive") ) {
$_.BlobClient.SetAccessTier("Hot", $null, "Standard")
}
}
}
While ($Token -ne $Null)
az storage blob list --account-name $accountName --account-key $key \
--container-name $containerName --prefix $folderName \
--query "[?properties.blobTier == 'Archive'].name" --output tsv \
| xargs -I {} -P 10 \
az storage blob set-tier --account-name $accountName --account-key $key \
--container-name $containerName --tier Hot --name "{}"
Para reidratar um grande número de blobs de uma só vez, utilize a operação Blob Batch para realizar a operação Definir Nível de Blob como um processo em massa.
Para obter um exemplo de código que mostra como executar a operação em lote, consulte AzBulkSetBlobTier.
Verificar o estado de uma operação de reidratação
Enquanto o blob está reidratando, você pode verificar seu status e prioridade de reidratação usando o portal do Azure, o PowerShell ou a CLI do Azure. A propriedade status pode retornar rehydrate-pending-to-hot ou rehydrate-pending-to-cool, dependendo da camada de destino para a operação de reidratação. A propriedade de prioridade de reidratação retorna Standard ou High.
Tenha em mente que a reidratação de um blob arquivado pode levar até 15 horas, e pesquisar repetidamente o status do blob para determinar se a reidratação está completa é ineficiente. Usar a Grade de Eventos do Azure para capturar o evento que é acionado quando a reidratação é concluída oferece melhor desempenho e otimização de custos. Para saber como executar uma Função do Azure em resposta a um evento de reidratação de blobs, consulte Executar uma Função do Azure em resposta a um evento de reidratação de blobs.
Para verificar o status e a prioridade de uma operação de reidratação pendente no portal do Azure, exiba a caixa de diálogo Alterar camada para o blob:
Quando a reidratação estiver concluída, você poderá ver no portal do Azure que o blob totalmente reidratado agora aparece na camada online de destino.
Para verificar o status e a prioridade de uma operação de reidratação pendente com o PowerShell, chame o comando Get-AzStorageBlob e verifique as propriedades ArchiveStatus e RehydratePriority do blob. Se a reidratação for uma operação de cópia, verifique essas propriedades no blob de destino. Lembre-se de substituir os espaços reservados entre colchetes angulares pelos seus próprios valores:
$rehydratingBlob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$rehydratingBlob.BlobProperties.ArchiveStatus
$rehydratingBlob.BlobProperties.RehydratePriority
Para verificar o status e a prioridade de uma operação de reidratação pendente com a CLI do Azure, chame o comando az storage blob show e verifique as propriedades rehydrationStatus e rehydratePriority do blob de destino. Lembre-se de substituir os espaços reservados entre parênteses angulares pelos seus próprios valores:
az storage blob show \
--account-name <storage-account> \
--container-name <container> \
--name <blob> \
--query '[rehydratePriority, properties.rehydrationStatus]' \
--output tsv \
--auth-mode login
Alterar a prioridade de reidratação de uma operação pendente
Enquanto uma operação de reidratação de prioridade Standard estiver pendente, pode alterar a configuração de prioridade de reidratação de um blob de Standard para High para reidratar esse blob mais rapidamente.
A configuração de prioridade de reidratação não pode ser reduzida de Alto para Padrão para uma operação pendente. Tenha também em mente que alterar a prioridade de reidratação pode ter um impacto na faturação. Para obter mais informações, consulte Reidratação de Blobs da camada de arquivo.
Alterar a prioridade de reidratação para uma operação pendente de Definir Camada de Blob
Para alterar a prioridade de reidratação padrão enquanto uma operação padrão de Definir Nível de Blob estiver pendente, use o portal do Azure, o PowerShell, a CLI do Azure ou uma das bibliotecas de cliente de Armazenamento do Azure.
Para alterar a prioridade de reidratação para uma operação pendente com o portal do Azure, siga estas etapas:
Navegue até o blob para o qual você deseja alterar a prioridade de reidratação e selecione o blob.
Selecione o botão Alterar camada .
Na caixa de diálogo Alterar camada, defina a camada de acesso online de destino para o blob em reidratação (quente ou frio). O campo Estado do Arquivo mostra a camada online de destino.
No menu suspenso Prioridade hidratar , defina a prioridade como Alta.
Selecione Guardar.
Para alterar a prioridade de reidratação de uma operação pendente com o PowerShell, certifique-se de que instalou o módulo Az.Storage , versão 3.12.0 ou posterior. Em seguida, obtenha as propriedades do blob do serviço. Esta etapa é necessária para garantir que você tenha um objeto com as configurações de propriedade mais recentes. Finalmente, use a propriedade BlobClient do blob para retornar uma referência .NET ao blob e, em seguida, chame o método SetAccessTier nessa referência.
# 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."
}
}
Para alterar a prioridade de reidratação de uma operação pendente com a CLI do Azure, primeiro certifique-se de que instalou a CLI do Azure, versão 2.29.2 ou posterior. Para obter mais informações sobre como instalar a CLI do Azure, consulte Como instalar a CLI do Azure.
Em seguida, chame o comando az storage blob set-tier com o --rehydrate-priority
parâmetro definido como High. A camada de destino (quente ou fria) deve ser a mesma camada que você especificou originalmente para a operação de reidratação. Lembre-se de substituir os marcadores de posição entre parênteses angulares pelos seus próprios valores.
# 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
Alterar a prioridade de reidratação para uma operação pendente de cópia de Blob
Quando você reidrata um blob copiando o blob arquivado para uma camada online, o Armazenamento do Azure cria imediatamente o blob de destino na camada de arquivamento. O blob de destino é então reidratado para a camada de destino com a prioridade especificada na operação de cópia. Para obter mais informações sobre como reidratar um blob arquivado com uma operação de cópia, consulte Copiar um blob arquivado para uma camada online.
Para executar a operação de cópia da camada de arquivo morto para uma camada online com prioridade Padrão, use o PowerShell, a CLI do Azure ou uma das bibliotecas de cliente do Armazenamento do Azure. Para obter mais informações, consulte Reidratar um blob com uma operação de cópia. Em seguida, para alterar a prioridade de reidratação de Standard para High para a reidratação pendente, chame set Blob Tier no blob de destino e especifique a camada de destino.
Depois de iniciar a operação de cópia, você verá no portal do Azure que o blob de origem e de destino estão na camada de arquivamento. O blob de destino é reidratar com prioridade Padrão.
Para alterar a prioridade de reidratação para o blob de destino, siga estas etapas:
- Selecione o blob de destino.
- Selecione o botão Alterar camada .
- Na caixa de diálogo Alterar camada , defina a camada de acesso para a camada de acesso online de destino para o blob reidratante (quente ou frio). O campo estado do arquivo mostra a camada online de destino.
- No menu suspenso Prioridade hidratar , defina a prioridade como Alta.
- Selecione Guardar.
A página de propriedades do blob de destino agora mostra que ele está reidratando com alta prioridade.
Depois de iniciar a operação de cópia, verifique as propriedades do blob de destino. Você verá que o blob de destino está na camada de arquivo e está a reidratar com prioridade Padrão.
# 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
Em seguida, chame o método SetAccessTier via PowerShell para alterar a prioridade de reidratação do blob de destino para Alta, conforme descrito em Alterar a prioridade de reidratação para uma operação pendente de definição de nível do blob. A camada de destino (quente ou fria) deve ser a mesma camada que você especificou originalmente para a operação de reidratação. Verifique as propriedades novamente para verificar se o blob está agora reidratando com alta prioridade.
Depois de iniciar a operação de cópia, verifique as propriedades do blob de destino. Você verá que o blob de destino está na camada de arquivo morto e está reidratando com prioridade Padrão.
az storage blob show \
--account-name <storage-account> \
--container-name <container> \
--name <blob> \
--query '[rehydratePriority, properties.rehydrationStatus]' \
--output tsv \
--auth-mode login
Em seguida, chame o comando az storage blob set-tier com o parâmetro --rehydrate-priority
definido como High, conforme descrito em Alterar a prioridade de reidratação para uma operação pendente de definição de nível de blob. A camada de destino (quente ou fria) deve ser a mesma camada que você especificou originalmente para a operação de reidratação. Verifique as propriedades novamente para verificar se o blob está agora reidratando com alta prioridade.
Ver também