Arquivar um blob

A camada de arquivo é uma camada offline para armazenar dados de blobs que raramente são acessados. A camada de arquivo oferece os menores custos de armazenamento, mas custos de recuperação de dados e latência maiores em comparação com as camadas online (quente e frio). Os dados devem permanecer na camada de arquivos por pelo menos 180 dias ou estar sujeitos a uma cobrança de exclusão antecipada. Para mais informações sobre o nível de arquivo, veja Nível de acesso ao Arquivo.

Um blob não pode ser lido nem modificado enquanto estiver na camada de arquivos. Para ler ou baixar um blob na camada de arquivos, você precisa primeiro reidratá-lo para uma camada online, seja a quente ou a fria. Os dados na camada de arquivo podem levar até 15 horas para reidratar, dependendo da prioridade que você especificar para a operação reidratação. Para obter mais informações sobre reidratação de blob, confira Visão geral da reidratação de blob da camada de arquivos.

Caution

Um blob na camada de arquivamento está offline. Ou seja, não pode ser lido ou modificado até ser reidratado. O processo de reidratação pode levar várias horas e tem custos associados. Antes de mover dados para a camada de arquivos, considere se a colocação de dados de blob offline pode afetar seus fluxos de trabalho.

Você pode usar o portal Azure, PowerShell, CLI do Azure ou uma das bibliotecas clientes do Armazenamento do Azure para gerenciar o arquivamento de dados.

Arquivar blobs em upload

Para arquivar um ou mais blobs durante o upload, crie o blob diretamente na camada de arquivamento.

Para arquivar um blob ou conjunto de blobs no upload do portal do Azure, siga estes passos:

  1. Navegue até o contêiner de destino.

  2. Selecione o botão Carregar .

  3. Selecione o arquivo ou os arquivos a serem carregados.

  4. Expanda a seção Avançada e defina o nível de Acesso para Arquivar.

  5. Selecione o botão Carregar .

    Captura de tela mostrando como carregar blobs para a camada de arquivamento no portal do Azure.

Arquivar um blob existente

Você pode mover um blob existente para a camada de arquivo de duas maneiras:

  • Você pode mudar o nível de um blob com a operação Set Blob Tier . Definir camada do blob move um único blob de uma camada para outra.

    Tenha em mente que, quando você move um blob para a camada de arquivamento com Set Blob Tier, você não poderá ler nem modificar os dados do blob até reidratar o blob. Se você precisar ler ou modificar os dados do blob antes que o intervalo de exclusão inicial tenha passado, considere usar uma operação de Copy Blob para criar uma cópia do blob no tier de arquivo.

  • Você pode copiar um blob de uma camada online para a camada de arquivamento com a operação Copy Blob. Você pode invocar a operação Copy Blob para copiar um blob de uma camada de acesso online (quente ou fria) para a camada de arquivamento. O blob fonte permanece na camada online, e você pode continuar a ler ou modificar seus dados na camada online.

Arquive um blob existente mudando seu nível

Use a operação Set Blob Tier para mover um blob da camada Hot ou Cool para a camada de arquivamento. A operação Set Blob Tier é ideal para cenários onde você não precisará acessar os dados arquivados antes do intervalo de exclusão antecipada.

A operação Set Blob Tier altera o nível de um único blob. Para mover um conjunto de blobs para a camada de arquivo com desempenho ideal, a Microsoft recomenda realizar uma operação de arquivo em massa. A operação de arquivamento em massa envia um lote de chamadas de Definir Camada de Blob ao serviço em uma única transação. Para mais informações, veja Arquivo em bloco.

Para mover um blob existente para a camada de arquivo no portal do Azure, siga estes passos:

  1. Navegue até o contêiner do blob.

  2. Selecione o blob para arquivar.

  3. Selecione o botão de Mudar Nível .

  4. Selecione Arquivar no menu suspenso Camada de acesso.

  5. Selecione Salvar.

    Captura de tela mostrando como definir o nível de um blob para Arquivar no portal do Azure

Arquivar um blob existente com uma operação de cópia

Use a operação Copiar Blob para copiar um blob da camada quente ou fria para a camada de arquivamento. O blob de origem permanece no tier hot ou cool, enquanto o blob de destino é criado no tier de arquivo.

Uma operação de Copiar Blob é ideal para cenários em que você pode precisar ler ou modificar os dados arquivados antes que o intervalo de exclusão inicial tenha expirado. Você pode acessar os dados do blob de origem sem precisar reidratar o blob arquivado.

N/A

Arquivo em massa

Para mover blobs para a camada de arquivo em um contêiner ou pasta, enumere blobs e chame a operação Set Blob Tier em cada um. O exemplo abaixo mostra como executar essa operação:

N/A

Ao mover um grande número de blobs para o nível de arquivo, use uma operação em lote para desempenho ideal. Uma operação em lote envia várias chamadas à API para o serviço em uma única solicitação. As suboperações compatíveis com a operação Lote de Blobs incluem Excluir Blob e Definir Camada de Blob.

Para arquivar blobs com uma operação em lote, use uma das bibliotecas cliente do Armazenamento do Azure. O exemplo de código a seguir mostra como executar uma operação básica em lote com a biblioteca de clientes .NET:

static async Task BulkArchiveContainerContents(string accountName, string containerName)
{
    string containerUri = string.Format("https://{0}.blob.core.windows.net/{1}",
                                    accountName,
                                    containerName);

    // Get container client, using Azure AD credentials.
    BlobUriBuilder containerUriBuilder = new BlobUriBuilder(new Uri(containerUri));
    BlobContainerClient blobContainerClient = new BlobContainerClient(containerUriBuilder.ToUri(), 
                                                                      new DefaultAzureCredential());

    // Get URIs for blobs in this container and add to stack.
    var uris = new Stack<Uri>();
    await foreach (var item in blobContainerClient.GetBlobsAsync())
    {
        uris.Push(blobContainerClient.GetBlobClient(item.Name).Uri);
    }

    // Get the blob batch client.
    BlobBatchClient blobBatchClient = blobContainerClient.GetBlobBatchClient();

    try
    {
        // Perform the bulk operation to archive blobs.
        await blobBatchClient.SetBlobsAccessTierAsync(blobUris: uris, accessTier: AccessTier.Archive);
    }
    catch (RequestFailedException e)
    {
        Console.WriteLine(e.Message);
    }
}

Para ver um aplicativo de exemplo aprofundado que mostra como alterar camadas com uma operação em lote, veja AzBulkSetBlobTier.

Use políticas de gerenciamento do ciclo de vida para arquivar blobs

Você pode otimizar custos para dados de blobs que raramente são acessados criando políticas de gerenciamento do ciclo de vida que movem automaticamente os blobs para a camada de arquivo quando eles não foram acessados ou modificados por um período de tempo especificado. Depois que você configura uma política de gerenciamento do ciclo de vida, o Armazenamento do Azure a executa uma vez por dia. Para mais informações sobre políticas de gerenciamento do ciclo de vida, veja Otimizar custos gerenciando automaticamente o ciclo de vida dos dados.

Você pode usar o portal do Azure, PowerShell, CLI do Azure ou um template do Azure Resource Manager para criar uma política de gerenciamento do ciclo de vida. Para simplificar, esta seção mostra como criar uma política de gerenciamento do ciclo de vida apenas no portal do Azure. Para mais exemplos mostrando como criar políticas de gerenciamento do ciclo de vida, veja Configurar uma política de gerenciamento do ciclo de vida.

Caution

Antes de usar uma política de gerenciamento do ciclo de vida para mover dados para a camada de arquivo, verifique se esses dados não precisam ser deletados ou movidos para outro nível por pelo menos 180 dias. Dados que são excluídos ou movidos para outro nível antes do término do período de 180 dias estão sujeitos a uma taxa de exclusão antecipada.

Também tenha em mente que os dados no nível de arquivo precisam ser reidratados antes de poderem ser lidos ou modificados. Reidratar um blob da camada de arquivamento pode levar várias horas e envolve custos.

Para criar uma política de gerenciamento do ciclo de vida para arquivar blobs no portal do Azure, siga estes passos:

Passo 1: Crie a regra e especifique o tipo de blob

  1. Navegue até sua conta de armazenamento no portal.

  2. Em Gerenciamento de Dados, localize as configurações de gerenciamento do ciclo de vida .

  3. Selecione o botão Adicionar uma regra .

  4. Na aba Detalhes , especifique um nome para sua regra.

  5. Especifique o escopo da regra: ou Aplicar a regra a todos os blobs na sua conta de armazenamento, ou Limitar blobs com filtros.

  6. Selecione os tipos de blobs aos quais a regra deve ser aplicada e especifique se deve incluir os snapshots ou as versões dos blobs.

    Captura de tela mostrando como configurar uma política de gerenciamento do ciclo de vida - aba Detalhes.

Passo 2: Adicionar condições de regra

  1. Dependendo das suas escolhas, você pode configurar regras para blobs base (versões atuais), versões anteriores ou snapshots de blobs. Especifique uma de duas condições para verificar:

    • Os objetos foram modificados pela última vez há alguns dias.
    • Os objetos foram criados há alguns dias.
    • Os objetos foram acessados pela última vez há alguns dias.

    Apenas uma dessas condições pode ser aplicada para mover um tipo específico de objeto para a camada de arquivo por regra. Por exemplo, se você definir uma ação que arquive blobs de base se eles não tiverem sido modificados por 90 dias, então também não poderá definir uma ação que arquive blobs de base se eles não tiverem sido acessados por 90 dias. Da mesma forma, você pode definir uma ação por regra com qualquer uma dessas condições para arquivar versões anteriores, e uma para arquivar snapshots.

  2. Em seguida, especifique o número de dias que decorrerão após o objeto ser modificado ou acessado.

  3. Especifique que o objeto deverá ser movido para a camada de arquivamento após o término do intervalo.

    Captura de tela mostrando como configurar uma política de gerenciamento do ciclo de vida - aba Blob base.

  4. Se você optar por limitar os blobs afetados pela regra com filtros, poderá especificar um filtro, seja com um prefixo de blob ou uma combinação de índice de blob.

Etapa 3: verifique se a regra exclui blobs reidratados

Se você reidratar um blob alterando a camada, esta regra moverá o blob de volta para a camada de arquivamento se a hora da última modificação, a hora de criação ou a hora do último acesso ultrapassar o limite definido pela política.

Se você tiver selecionado a condição de regra Modificados por último, poderá impedir que isso aconteça selecionando Ignorar blobs que foram reidratados nos últimos e, em seguida, inserindo o número de dias com que você deseja que um blob reidratado seja excluído dessa regra.

Captura de tela mostrando os blobs ignorados que foram reidratados na última configuração.

Note

Essa opção aparece apenas se você selecionou a condição da regra Última modificada .

Selecione o botão Adicionar para adicionar a regra à política.

Ver a política JSON

Após criar a política de gerenciamento do ciclo de vida, você pode visualizar o JSON da política na página de gerenciamento do ciclo de vida, mudando da visualização de Lista para a visualização de Código.

Aqui está o JSON para a política simples de gerenciamento do ciclo de vida criada nas imagens mostradas acima:

{
  "rules": [
    {
      "enabled": true,
      "name": "sample-archive-rule",
      "type": "Lifecycle",
      "definition": {
        "actions": {
          "baseBlob": {
            "tierToArchive": {
              "daysAfterLastAccessTimeGreaterThan": 90,
              "daysAfterLastTierChangeGreaterThan": 7
            }
          }
        },
        "filters": {
          "blobTypes": [
            "blockBlob"
          ]
        }
      }
    }
  ]
}

Consulte também