Gerenciar a expiração do armazenamento de Blob do Azure na Rede de Entrega de Conteúdo do Azure
Importante
O Azure CDN Standard da Microsoft (clássico) será desativado em 30 de setembro de 2027. Para evitar qualquer interrupção do serviço, é importante migrar o Azure CDN Standard dos perfis Microsoft (clássicos) para o Azure Front Door Standard ou Premium até 30 de setembro de 2027. Para obter mais informações, consulte Azure CDN Standard da aposentadoria (clássica) da Microsoft.
A CDN do Azure de Edgio será aposentada em 15 de janeiro de 2025. Você deve migrar sua carga de trabalho para o Azure Front Door antes dessa data para evitar a interrupção do serviço. Para obter mais informações, consulte CDN do Azure das Perguntas frequentes sobre aposentadoria do Edgio.
O serviço de armazenamento de Blob no Armazenamento do Azure é uma das várias origens baseadas no Azure integradas com a Rede de Entrega de Conteúdo do Azure. Qualquer conteúdo de blob acessível publicamente pode ser armazenado em cache na Rede de Entrega de Conteúdo do Azure até que seu tempo de vida (TTL) termine. O TTL é determinado pelo Cache-Control
cabeçalho na resposta HTTP do servidor de origem. Este artigo descreve várias maneiras de definir o Cache-Control
cabeçalho em um blob no Armazenamento do Azure.
Você também pode controlar as configurações de cache no portal do Azure definindo regras de cache de rede de entrega de conteúdo. Se você criar uma regra de cache e definir seu comportamento de cache como Substituir 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 o cache funciona.
Gorjeta
Você pode optar por não definir TTL em um blob. Nesse caso, a Rede de Entrega de Conteúdo do Azure aplica automaticamente um TTL padrão de sete dias, a menos que você tenha configurado regras de cache no portal do Azure. Este TTL padrão aplica-se apenas a otimizações gerais de entrega na Web. Para otimizações de arquivos grandes, o TTL padrão é de um dia e, para otimizações de streaming de mídia, o TTL padrão é de um ano.
Para obter mais informações sobre como a Rede de Entrega de Conteúdo do Azure funciona para acelerar o acesso a blobs e outros arquivos, consulte Visão geral da Rede de Entrega de Conteúdo do Azure.
Para obter mais informações sobre o armazenamento de Blob do Azure, consulte Introdução ao armazenamento de Blob.
Definindo cabeçalhos de Controle de Cache usando regras de cache de rede de entrega de conteúdo
O método preferencial para definir o cabeçalho de Cache-Control
um blob é usar regras de cache no portal do Azure. Para obter mais informações sobre regras de cache de rede de entrega de conteúdo, consulte Controlar o comportamento de cache da Rede de Entrega de Conteúdo do Azure com regras de cache.
Nota
As regras de cache estão disponíveis apenas para o Azure CDN Standard a partir de perfis Edgio . Para perfis CDN Premium do Azure a partir de Edgio, você deve usar o mecanismo de regras da Rede de Entrega de Conteúdo do Azure no portal Gerenciar para obter funcionalidade semelhante.
Para navegar até a página de regras de cache da CDN:
No portal do Azure, selecione um perfil de rede de entrega de conteúdo e, em seguida, selecione o ponto de extremidade para o blob.
No painel esquerdo, em Definições, selecione Regras de colocação em cache.
É apresentada a página Regras de colocação em cache.
Para definir os cabeçalhos Cache-Control de um serviço de armazenamento de Blob usando regras de cache global:
Em Regras globais de cache, defina Comportamento de cache de cadeia de caracteres de consulta como Ignorar cadeias de caracteres de consulta e defina Comportamento de cache como Substituir.
Para Duração da expiração do cache, digite 3600 na caixa Segundos ou 1 na caixa Horas.
Esta regra de cache global define uma duração de cache de uma hora e afeta todas as solicitações para o ponto de extremidade. Ele substitui qualquer
Cache-Control
cabeçalho HTTP queExpires
é enviado pelo servidor de origem especificado pelo ponto de extremidade.Selecione Guardar.
Para definir os cabeçalhos Cache-Control de um arquivo de blob usando regras de cache personalizadas:
Em Regras de cache personalizadas, crie duas condições de correspondência:
A. Para a primeira condição de correspondência, defina Condição de correspondência como Caminho e insira
/blobcontainer1/*
para Valor de correspondência. Defina o comportamento de cache como Substituir e digite 4 na caixa Horas .B. Para a segunda condição de correspondência, defina Condição de correspondência como Caminho e insira
/blobcontainer1/blob1.txt
para Valor de correspondência. Defina o comportamento de cache como Substituir e digite 2 na caixa Horas .A primeira regra de cache personalizada define uma duração de cache de quatro horas para todos os
/blobcontainer1
arquivos de blob na pasta no servidor de origem especificado pelo seu ponto de extremidade. A segunda regra substitui a primeira regra apenas para oblob1.txt
arquivo de blob e define uma duração de cache de duas horas para ele.Selecione Guardar.
Definindo cabeçalhos de Controle de Cache usando o Azure PowerShell
Nota
Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
O Azure PowerShell é uma das maneiras mais rápidas e poderosas de administrar seus serviços do Azure. Use o Get-AzStorageBlob
cmdlet para obter uma referência ao blob e defina a .ICloudBlob.Properties.CacheControl
propriedade.
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()
Gorjeta
Você também pode usar o PowerShell para gerenciar seus perfis e pontos de extremidade da rede de entrega de conteúdo.
Definindo cabeçalhos de controle de cache usando o .NET
Para especificar o cabeçalho de Cache-Control
um blob usando o código .NET, use a Biblioteca de Cliente de 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" });
}
}
Gorjeta
Há mais exemplos de código .NET disponíveis em Exemplos de Armazenamento de Blob do Azure para .NET.
Definindo cabeçalhos Cache-Control usando outros métodos
Explorador de Armazenamento do Azure
Com o Gerenciador de Armazenamento do Azure, 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 Azure:
- Selecione um blob e, em seguida, selecione Propriedades no menu de contexto.
- Role para baixo até a propriedade CacheControl .
- Introduza um valor e, em seguida, selecione Guardar.
A CLI do Azure
Você pode gerenciar recursos de blob do Azure a partir da linha de comando por meio da CLI do Azure. Para definir o cabeçalho cache-control quando você carrega um blob com a CLI do Azure, defina a propriedade cacheControl usando a -p
opção. 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 de armazenamento do Azure
Você pode usar a API REST dos serviços de Armazenamento do Azure para definir explicitamente a propriedade x-ms-blob-cache-control usando as seguintes operações em uma solicitação:
Testando o cabeçalho Cache-Control
Você pode verificar facilmente as configurações de TTL de seus blobs. Com as ferramentas de desenvolvedor do navegador, teste se o blob inclui o cabeçalho de Cache-Control
resposta. Você também pode usar uma ferramenta como Wget ou Fiddler para examinar os cabeçalhos de resposta.