Gerencie expiração de armazenamento Blob do Azure na Rede de Distribuição de Conteúdo do Microsoft Azure

O Serviço de armazenamento de blobs no Armazenamento do Microsoft Azure é uma das várias origens baseadas no Azure integradas à Rede de Distribuição de Conteúdo do Azure. Qualquer conteúdo de blob publicamente acessível pode ser armazenado em cache na Rede de Distribuição de Conteúdo do Azure até que a vida útil (TTL) tenha decorrido. A TTL é determinada pelo cabeçalho Cache-Control na resposta HTTP do servidor de origem. Este artigo descreve várias maneiras que você pode definir o cabeçalho Cache-Control em um blob no Armazenamento do Azure.

Também é possível controlar as configurações de cache do portal do Azure definindo regras de cache da rede de distribuição de conteúdo. Se você criar uma regra de cache e definir o comportamento de cache para Substituição ou Ignorar cache, as configurações de cache fornecidas pela origem discutidas neste artigo serão ignoradas. Para obter informações sobre conceitos gerais de cache, consulte Como funciona o cache.

Dica

Você pode optar por não definir nenhuma vida útil em um blob. Nesse caso, a Rede de Distribuição de Conteúdo do Azure aplica automaticamente um TTL padrão de sete dias, exceto se você tiver configurado regras de cache no portal do Azure. Esse padrão TTL aplica-se somente para otimizações de entrega da web gerais. Para otimizações de arquivo grande, o TTL padrão é de um dia e para otimizações de streaming de mídia, o TTL padrão é um ano.

Para obter mais informações sobre como a Rede de Distribuição de Conteúdo do Azure trabalha para acelerar o acesso a blobs e outros arquivos, consulte Visão geral da Rede de Distribuição de Conteúdo do Azure.

Para mais informações sobre o Armazenamento de Blobs do Azure, confira Introdução ao armazenamento de Blobs.

Configurar cabeçalhos de controle de cache usando regras de cache da rede de distribuição de conteúdo

O método preferido para configuração do cabeçalho Cache-Control do blob é usar regras de cache no Portal do Azure. Para obter mais informações sobre regras de cache da rede de distribuição de conteúdo, consulte Controlar o comportamento de cache da Rede de Distribuição de Conteúdo do Azure com regras de cache.

Observação

As regras de cache estão disponíveis apenas para perfis da CDN Standard do Azure do Edgio. Para perfis da CDN Premium do Azure do Edgio, é necessário usar o mecanismo de regras da Rede de Distribuição de Conteúdo do Azure no portal Gerenciar para uma funcionalidade semelhante.

Para navegar até a página de regras de cache da CDN:

  1. No portal do Azure, selecione um perfil da rede de distribuição de conteúdo e selecione o ponto de extremidade para o blob.

  2. No painel esquerdo em Configurações, selecione Regras de cache.

    Captura de tela do botão Regras de cache da rede de distribuição de conteúdo.

    A página Regras de cache é exibida.

    Captura de tela da página de cache da rede de distribuição de conteúdo.

Para configurar os cabeçalho de Controle de Cache do serviço de armazenamento de Blobs usando regras de cache globais:

  1. Em Regras de cache globais, defina Comportamento de cache da cadeia de caracteres de consulta para Ignorar cadeias de consulta e defina Comportamento do cache para Substituição.

  2. Para Duração da expiração do cache, insira 3600 na caixa Segundosou 1 na caixa Horas.

    Captura de tela do exemplo de regras de cache globais da rede de distribuição de conteúdo.

    Essa regra de cache global define uma duração de cache de uma hora e afeta todas as solicitações para o ponto de extremidade. Ela substitui todos os cabeçalhos HTTP Cache-Control ou Expires que são enviados pelo servidor de origem especificado pelo ponto de extremidade.

  3. Selecione Salvar.

Para definir os cabeçalhos de Controle de Cache do arquivo de blob usando regras de cache personalizadas:

  1. Em Personalizar regras de cache, crie duas condições de combinação:

    a. Para a primeira condição de correspondência, ajuste Condição de correspondência para Path e insira /blobcontainer1/* para o Valor de correspondência. Defina o Comportamento de cache para Substituição e insira 4 na caixa Horas.

    B. Para a segunda condição de correspondência, ajuste Condição de correspondência para Path e insira /blobcontainer1/blob1.txt para o Valor de correspondência. Defina o Comportamento de cache para Substituição e insira 2 na caixa Horas.

    Captura de tela do exemplo de regras de cache personalizadas da rede de distribuição de conteúdo.

    A primeira regra de cache personalizada estabelece uma duração de cache de quatro horas para qualquer arquivo de blob na pasta /blobcontainer1 no servidor de origem especificado pelo ponto de extremidade. A segunda regra substitui a primeira regra somente para o arquivo de blob blob1.txt e define uma duração de cache de duas horas para isso.

  2. Selecione Salvar.

Configurando cabeçalhos de Cache-Control usando Azure PowerShell

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Azure PowerShell é uma das maneiras mais rápidas e eficientes de administrar os serviços do Azure. Use o cmdlet Get-AzStorageBlob para obter uma referência para o blob, em seguida, defina a propriedade .ICloudBlob.Properties.CacheControl.

Por exemplo:

# Create a storage context
$context = New-AzStorageContext -StorageAccountName "<storage account name>" -StorageAccountKey "<storage account key>"

# Get a reference to the blob
$blob = Get-AzStorageBlob -Context $context -Container "<container name>" -Blob "<blob name>"

# Set the CacheControl property to expire in 1 hour (3600 seconds)
$blob.ICloudBlob.Properties.CacheControl = "max-age=3600"

# Send the update to the cloud
$blob.ICloudBlob.SetProperties()

Configurando cabeçalhos de Cache-Control usando .NET

Para especificar o cabeçalho Cache-Control de um blob usando o código .NET, use a biblioteca de clientes do Armazenamento do Azure para .NET para definir a propriedade BlobHttpHeaders.CacheControl.

Por exemplo:

    class Program
    {
        const string containerName = "<container name>";
        const string blobName = "<blob name>";
        const string connectionString = "<storage connection string>";
        static void Main()
        {
            // Retrieve storage account information from connection string
            BlobContainerClient container = new BlobContainerClient(connectionString, containerName);

            // Create a blob client for interacting with the blob service.
            BlobClient blob = container.GetBlobClient(blobName);

            // Set the CacheControl property to expire in 1 hour (3600 seconds)
            blob.SetHttpHeaders(new BlobHttpHeaders {CacheControl = "max-age=3600" });
        }
    }

Dica

Existem mais exemplos de código .NET disponíveis nos Exemplos de Armazenamento de Blobs do Azure para .NET.

Configurando cabeçalhos de Cache-Control usando outros métodos

Gerenciador de Armazenamento do Azure

Com Azure Storage Explorer, você pode exibir e editar seus recursos de armazenamento de blob, incluindo propriedades, como a propriedade CacheControl.

Para atualizar a propriedade CacheControl de um blob com o Gerenciador de Armazenamento do Microsoft Azure:

  1. Selecione um blob e, em seguida, Propriedades no menu de contexto.
  2. Role para baixo até a propriedade CacheControl.
  3. Insira um valor e, em seguida, selecione Salvar.

Propriedades do Gerenciador do Armazenamento do Microsoft Azure

A CLI do Azure

Com a CLIdo Azure, você pode gerenciar recursos de blob do Azure a partir da linha de comando. Para definir um cabeçalho de cache-control ao carregar um blob com a CLI do Azure, defina a propriedade cacheControl usando a opção -p. O exemplo a seguir mostra como definir o TTL para uma hora (3600 segundos):

azure storage blob upload -c <connectionstring> -p cacheControl="max-age=3600" .\<blob name> <container name> <blob name>

API REST dos serviços do Armazenamento do Microsoft Azure

Você pode usar a API REST de serviços de Armazenamento do Microsoft Azure para definir explicitamente a propriedade x-ms-blob-cache-control usando as seguintes operações em uma solicitação:

Testando o cabeçalho de Controle de Cache

Você pode facilmente verificar as configurações TTL dos seus blobs. Com as ferramentas para desenvolvedores do seu navegador, teste se o blob inclui o cabeçalho de resposta Cache-Control. Você também pode usar uma ferramenta como Wget, Postman ou Fiddler para examinar os cabeçalhos de resposta.

Próximas etapas