Reidratar um blob arquivado para uma camada online
Artigo
Para ler um blob que está na camada de arquivo, você deve primeiro reidratar o blob para uma camada online (quente, fria 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, você pode especificar a prioridade para a operação como prioridade padrão ou alta prioridade. 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 reidratar um blob da camada de arquivo morto copiando-o para uma camada online, use o portal do Azure, PowerShell, CLI do Azure 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 é totalmente reidratado, ele fica disponível no novo nível online.
Reidrate um blob para a mesma conta de armazenamento
Os exemplos a seguir mostram como copiar um blob arquivado para um blob na camada de hot 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 blob de arquivo é exibida.
Nota
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, escolha uma camada de acesso e uma prioridade de reidratação. Em seguida, selecione Colar para reidratar a bolha.
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/A
Reidrate 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 de hot em uma conta de armazenamento diferente.
Nota
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 recipiente onde deseja colocar o blob reidratado e 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 exclua o blob de origem enquanto ele estiver reidratando.
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 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 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 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/A
Reidratar a partir de uma região secundária
Se você configurou sua conta de armazenamento para usar o 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 conta para sua conta de armazenamento são as mesmas para os pontos de extremidade primários e secundários.
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 Save.
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 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
A capacidade de alterar a camada de um blob usando AzCopy está atualmente em visualização.
Veja Termos de Utilização Complementares da Pré-visualizações do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão na versão beta, na pré-visualização ou que ainda não foram lançadas para disponibilidade geral.
Nota
Este exemplo inclui 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.
Para reidratar blobs arquivados em um contêiner ou pasta para a camada quente ou fria, enumere através dos blobs e chame a operação Definir Camada de Blob em cada um. O exemplo a seguir mostra como executar essa operação:
Para reidratar um grande número de blobs de uma só vez, chame a operação Lote de Blobs para chamar set Blob Tier como uma operação 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 do nível 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 quando um evento é acionado na reidratação de blob, consulte 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 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:
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 colchetes angulares pelos seus próprios valores:
Alterar a prioridade de reidratação de uma operação pendente
Enquanto uma operação de reidratação de prioridade padrão estiver pendente, você 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 Blob da camada de arquivamento.
Alterar a prioridade de reidratação para uma operação pendente de Definir Camada de Blob
Para alterar a prioridade de reidratação enquanto uma operação Definir Camada de Blob de prioridade padrão estiver pendente, use o portal do Azure, o PowerShell, a CLI do Azure ou uma das bibliotecas de cliente do 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 para a camada de acesso online de destino para o blob reidratante (quente ou frio). O campo Status 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 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/A
Alterar a prioridade de reidratação para uma operação pendente de Blob de cópia
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 Status 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 morto e está 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, chame o método SetAccessTier via PowerShell para alterar a prioridade de reidratação do blob de destino para High, conforme descrito em Alterar a prioridade de reidratação para uma operação pendente set Blob Tier. 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.
Em seguida, chame o comando az storage blob set-tier com o --rehydrate-priorityparâmetro definido como High, conforme descrito em Alterar a prioridade de reidratação para uma operação pendente set Blob Tier. 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.