Para ler um blob que está na camada de arquivos, primeiro é preciso reidratá-lo para uma camada online (frequente, esporádico ou frio). Você pode reidratar um blob de uma dessas duas maneiras:
Copiando-o para um novo blob na camada de acesso frequente, esporádico ou frio com a operação Copiar Blob.
Alterando a camada de arquivos para frequente, esporádico ou frio com a operação Definir Camada de Blob.
Ao reidratar um blob, é possível especificar a prioridade da operação como padrão ou alta. Uma operação de reidratação de prioridade padrão poderá levar até 15 horas para ser concluída. Uma operação de prioridade alta tem preferência em relação às solicitações de prioridade padrão e poderá ser concluída em menos de uma hora para objetos com tamanho menor do que 10 GB. É possível alterar a prioridade de reidratação de Padrão para Alta enquanto a operação está pendente.
Você pode configurar a Grade de Eventos do Azure disparar um evento quando a reidratação for 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, confira Executar uma Função do Azure em resposta a um evento de reidratação de blob.
Para reidratar um blob da camada de arquivos copiando-o para uma camada online, use o portal do Azure, o PowerShell, a CLI do Azure ou uma das bibliotecas de cliente do Armazenamento do Azure. Tenha em mente 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 tem suporte na mesma conta de armazenamento. A partir da versão de serviço 2021-02-12, é possível copiar um blob na camada de arquivos em uma conta de armazenamento diferente, desde que a conta de destino esteja na mesma região que a conta de origem.
Depois que a operação de cópia for concluída, o blob de destino aparecerá na camada de acesso aos arquivos. Em seguida, o blob de destino é reidratado para a camada online que você especificou na operação de cópia. Quando o blob de destino é 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 na camada de arquivos para um blob na camada de acesso frequente 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.
Acesse o contêiner em que deseja colocar o blob reidratado e selecione o botão Colar.
A caixa de diálogo Colar blob de arquivos é exibida.
Observação
Se você selecionar o botão Colar enquanto estiver no mesmo local que o blob de origem, o nome padrão exibido no campo Nome do blob de destino conterá um sufixo numérico. Isso garante que os blobs de origem e destino tenham nomes diferentes. Você poderá 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 arquivos, escolha uma camada de acesso e uma prioridade de reidratação. Em seguida, selecione Colar para reidratar o blob.
Importante
Não exclua 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 colchetes 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
N/D
Reidratar um blob para uma conta de armazenamento diferente na mesma região
Os exemplos a seguir mostram como copiar um blob na camada de arquivos para um blob na camada de acesso frequente em uma conta de armazenamento diferente.
Observação
As contas de destino e origem devem 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.
Acesse a conta de armazenamento de destino e, no painel de navegação, selecione Navegador de armazenamento.
Acesse o contêiner em que deseja colocar o blob reidratado e selecione o botão Colar.
A caixa de diálogo Colar blob de arquivos é exibida.
Na caixa de diálogo Colar blob de arquivos, escolha uma camada de acesso e uma prioridade de reidratação. Em seguida, selecione Colar para reidratar o blob.
Importante
Não exclua o blob de origem enquanto ele estiver reidratando.
Para copiar um blob na camada de arquivos 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 a camada online de destino e a prioridade de reidratação. Você deve especificar uma SAS (assinatura de acesso compartilhado) com permissões de leitura para o blob de origem arquivado.
O exemplo a seguir mostra como copiar um blob arquivado para a camada de acesso frequente 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 na camada de arquivos 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 SAS (assinatura de acesso compartilhado) com permissões de leitura para o blob de origem arquivado.
O exemplo a seguir mostra como copiar um blob arquivado para a camada de acesso frequente em uma conta de armazenamento diferente. Lembre-se de substituir os espaços reservados entre colchetes 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
N/D
Reidratar de uma região secundária
Se você tiver configurado sua conta de armazenamento para usar o RA-GRS (armazenamento com redundância geográfica com acesso de leitura), poderá copiar um blob arquivado localizado em uma região secundária para uma camada online em uma conta de armazenamento diferente para uma conta de armazenamento localizada nessa mesma região secundária.
Para reidratar de uma região secundária, use as mesmas diretrizes apresentadas na seção anterior (reidratar um blob para uma conta de armazenamento diferente na mesma região). Acrescente o sufixo -secondary ao nome da conta do ponto de extremidade de origem. Por exemplo, se o ponto de extremidade primário para o blob de armazenamento for myaccount.blob.core.windows.net, seu ponto de extremidade secundário será myaccount-secondary.blob.core.windows.net. As chaves de acesso para o seu armazenamento são as mesmas para os pontos de extremidade primário e secundário.
Para reidratar um blob alterando a respectiva camada de arquivos para acesso frequente ou esporádico, use o portal do Azure, o PowerShell ou a CLI do Azure.
Para alterar a camada de um blob de arquivos para frequente ou esporádica no portal do Azure, siga estas etapas:
Localize o blob a ser reidrato no portal do Azure.
Selecione o botão Mais do lado direito da página.
Selecione Alterar camada.
Selecione a camada de acesso de destino no menu suspenso Camada de acesso.
No menu suspenso Reidratar prioridade, 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 arquivos para acesso frequente ou esporádico com o PowerShell, use a propriedade BlobClient do blob para retornar uma referência do .NET para o blob, depois execute uma chamada ao 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 arquivos para frequente ou esporádica com a CLI do Azure, chame o comando az storage blob set-tier. Lembre-se de substituir os espaços reservados entre colchetes 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 arquivos para acesso frequente ou esporádico com o AzCopy, use o comando azcopy set-properties e defina o parâmetro -block-blob-tier para a camada desejada e para --rehydrate-priority a standard ou high. Por padrão, esse parâmetro é definido como standard. Para saber mais sobre as compensações de cada opção, confira a Prioridade de reidratação.
Importante
A capacidade de alterar a camada de um blob usando o AzCopy está atualmente em VERSÃO PRÉVIA.
Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.
Observação
Este exemplo inclui argumentos de caminho com aspas simples (''). Use aspas simples em todos os shells de comando, exceto pelo shell de comando do Windows (cmd.exe). Se você estiver usando um shell de comando do Windows (cmd.exe), coloque os argumentos de caminho entre 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 o Microsoft Entra ID. Confira o artigo Introdução ao AzCopy para aprender de que maneiras você pode fornecer credenciais de autorização para o serviço de armazenamento.
Para reidratar blobs arquivados em um contêiner ou pasta para a camada de acesso frequente ou esporádico, enumere os blobs e chame a operação Definir Camada de Blob em cada um deles. O exemplo abaixo mostra como você pode executar essa operação:
Para reidratar um grande número de blobs de uma vez, chame a operação Lote de Blobs para chamar Definir Camada de Blobs como uma operação em massa.
Para ver um exemplo de código que mostra como executar a operação em lote, confira AzBulkSetBlobTier.
Verificar o status 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 reidratate-pending-to-hot ou reidratate-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 sondar repetidamente o status do blob para determinar se a reidratação que foi concluída é ineficiente. Usar a Grade de Eventos do Azure para capturar o evento que é disparado quando a reidratação é concluída oferece melhor desempenho e otimização de custo. Para saber como executar uma Função do Azure quando um evento dispara na reidratação de blob, confira Executar uma Função do Azure em resposta a um evento de reidratação de blob.
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 for concluída, você poderá ver no portal do Azure que o blob totalmente reidratado agora aparece na camada online de alvo.
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:
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 do rehydratePriority do blob de destino. Lembre-se de substituir os espaços reservados entre colchetes angulares pelos seus próprios valores:
Alterar a prioridade de reidratação de uma operação pendente
Embora uma operação de reidratação de prioridade padrão esteja pendente, é possível alterar a configuração da prioridade de reidratação para um blob de Padrão para Alta a fim de reidratá-lo de modo mais rápido.
A configuração de prioridade de reidratação não pode ser alterada de Alta para Padrão em uma operação pendente. Lembre-se também de que alterar a prioridade de reidratação poderá ter um impacto na cobrança. Para obter mais informações, confira Reidratação de blob da camada de arquivos.
Alterar a prioridade de reidratação para uma operação pendente Definir Camada de Blob
Para alterar a prioridade de reidratação enquanto uma operação Definir Camada de Blob de prioridade padrão está pendente, use o portal do Azure, o PowerShell, a CLI do Azure ou uma das bibliotecas de clientes do Armazenamento do Azure.
A fim de alterar a prioridade de reidratação para uma operação pendente com o portal do Azure, siga estas etapas:
Acesse o blob para o qual você deseja alterar a prioridade de reidratação e selecione-o.
Clique no botão Alterar camada.
Na caixa de diálogo Alterar camada, defina a camada de acesso como a camada de acesso online de destino para o blob de reidratação (camada de acesso frequente ou esporádico). O campo Status de arquivos exibe a camada online de destino.
Na lista suspensa Reidratar prioridade, defina a prioridade como Alta.
Selecione Salvar.
Para alterar a prioridade de reidratação para uma operação pendente com o PowerShell, verifique se você instalou o módulo Az.Storage, versão 3.12.0 ou posterior. Em seguida, obtenha as propriedades do blob do serviço. Essa 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 do .NET para o blob, depois execute uma chamada ao 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 para uma operação pendente com a CLI do Azure, primeiro verifique se você instalou a CLI do Azure, versão 2.29.2 ou posterior. Para obter informações sobre como instalar a CLI do Azure, confira Instalar a CLI do Azure.
Em seguida, chame o comando az storage blob set-tier com o parâmetro --rehydrate-priority definido como Alto. A camada de destino (acesso frequente ou esporádico) deverá ser a mesma camada especificada originalmente na operação de reidratação. Lembre-se de substituir os espaços reservados entre colchetes 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
N/D
Alterar a prioridade de reidratação para uma operação pendente Copiar Blob
Ao reidratar um blob copiando o blob arquivado para uma camada online, o Armazenamento do Azure cria de modo imediato o blob de destino na camada de arquivos. O blob de destino depois será reidratado na camada de destino com a prioridade indicada na operação de cópia. Para obter mais informações sobre como reidratar um blob arquivado com uma operação de cópia, confira como Copiar um blob arquivado para uma camada online.
Para executar a operação de cópia da camada de arquivos para uma camada online com prioridade Padrão, use o PowerShell, a CLI do Azure ou uma das bibliotecas de clientes do Armazenamento do Azure. Para obter mais informações, confira como Reidratar a blob com uma operação de cópia. Em seguida, para alterar a prioridade de reidratação de Padrão para Alta para a reidratação pendente, execute uma chamada à operação Definir Camada de Blob no blob de destino, depois especifique a camada de destino.
Após iniciar a operação de cópia, você verá no portal do Azure que os blobs de origem e destino estão na camada de arquivos. O blob de destino está se reidratando com prioridade Padrão.
Para alterar a prioridade de reidratação do blob de destino, siga estas etapas:
Selecione o blob de destino.
Clique no botão Alterar camada.
Na caixa de diálogo Alterar camada, defina a camada de acesso como a camada de acesso online de destino para o blob de reidratação (camada de acesso frequente ou esporádico). O campo Status de arquivos exibe a camada online de destino.
Na lista suspensa Reidratar prioridade, defina a prioridade como Alta.
Selecione Salvar.
A página de propriedades do blob de destino agora mostra que ele está reidratando com prioridade Alta.
Após 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 arquivos, bem como reidratando 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, execute uma chamada ao método SetAccessTier por meio do 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 Definir Camada de Blob. A camada de destino (acesso frequente ou esporádico) deverá ser a mesma camada especificada originalmente na operação de reidratação. Verifique as propriedades de novo para confirmar se o blob agora está reidratando com prioridade Alta.
Após 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 arquivos, bem como reidratando com prioridade Padrão.
Em seguida, execute uma chamada ao comando az storage blob set-tier com o parâmetro --rehydrate-priority definida como Alta, conforme descrido em Alterar a prioridade de reidratação para uma operação pendente Definir Camada de Blob. A camada de destino (acesso frequente ou esporádico) deverá ser a mesma camada especificada originalmente na operação de reidratação. Verifique as propriedades de novo para confirmar se o blob agora está reidratando com prioridade Alta.