(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Como criar uma lifecycle policy no Azure Blob Storage

João Barros 07 de July de 2026 4 min de leitura

Guardar todos os blobs no tier Hot é confortável, mas caro: dados que raramente são acedidos continuam a pagar o preço de armazenamento mais alto. Uma lifecycle policy no Azure Blob Storage resolve isto de forma automática, movendo ou apagando blobs consoante a sua idade — sem intervenção manual e sem tocar nas aplicações. Neste guia vai criar, do início ao fim, uma política que arrefece e limpa dados antigos.

Pré-requisitos

  • Uma Storage Account do tipo general-purpose v2 (as lifecycle policies não funcionam em contas Blob clássicas).
  • Permissões de Storage Account Contributor (ou Owner) na conta.
  • Opcional: o Azure CLI instalado, se preferir aplicar a política por linha de comandos.
  • Noções básicas dos access tiers: Hot, Cool, Cold e Archive.

Passo 1: Perceber os access tiers

Antes de escrever regras, convém saber para onde os dados vão. O Azure Blob Storage tem quatro access tiers, do mais caro em armazenamento (mas mais barato a aceder) para o mais barato em armazenamento (mas mais caro e lento a aceder):

  • Hot: dados acedidos com frequência.
  • Cool: dados pouco acedidos, com retenção mínima de 30 dias.
  • Cold: dados raramente acedidos, com retenção mínima de 90 dias.
  • Archive: dados que quase nunca são acedidos; é offline e a reidratação demora horas.

A ideia é simples: à medida que um blob envelhece e deixa de ser usado, deve descer de tier para pagar menos.

Passo 2: Abrir o Lifecycle management no portal

No portal Azure, abra a sua Storage Account e, no menu lateral, dentro de Data management, clique em Lifecycle management. Aqui pode criar regras através de um assistente visual ou colando diretamente o JSON da política. Vamos usar o JSON porque é reutilizável e fácil de versionar.

Passo 3: Escrever a regra em JSON

Uma política é uma lista de regras. Cada regra tem um filter (que blobs abrange) e um conjunto de actions (o que fazer e quando). O exemplo seguinte move os block blobs para Cool ao fim de 30 dias sem modificação, para Archive ao fim de 90 dias, e apaga-os ao fim de 365 dias:

{
  "rules": [
    {
      "enabled": true,
      "name": "arrefecer-e-arquivar",
      "type": "Lifecycle",
      "definition": {
        "filters": {
          "blobTypes": [ "blockBlob" ],
          "prefixMatch": [ "logs/" ]
        },
        "actions": {
          "baseBlob": {
            "tierToCool": { "daysAfterModificationGreaterThan": 30 },
            "tierToArchive": { "daysAfterModificationGreaterThan": 90 },
            "delete": { "daysAfterModificationGreaterThan": 365 }
          }
        }
      }
    }
  ]
}

O prefixMatch limita a regra ao contentor ou pasta que indicar (aqui, tudo o que começa por logs/). Se quiser abranger a conta inteira, basta remover essa linha.

Passo 4: Aplicar a política

No portal, cole este JSON no separador Code view do Lifecycle management e clique em Save. Em alternativa, guarde o JSON num ficheiro policy.json e aplique-o com o Azure CLI:

az storage account management-policy create \
  --account-name aminhaconta \
  --resource-group o-meu-grupo \
  --policy @policy.json

Substitua o nome da conta e do resource group pelos seus. A política passa a correr automaticamente uma vez por dia.

Verificar o resultado

As ações de lifecycle não são instantâneas: o Azure avalia a política uma vez por dia e as primeiras transições podem demorar até 24 a 48 horas a executar. Para confirmar que está tudo bem:

  • No portal, volte a Lifecycle management e confirme que a regra aparece como Enabled.
  • Ao fim de um ou dois dias, abra um contentor e verifique a coluna Access tier dos blobs mais antigos — devem passar a aparecer como Cool ou Archive.
  • Para métricas agregadas, use o Storage Insights no Azure Monitor e observe a distribuição de capacidade por tier ao longo do tempo.

Conclusão

Com uma única regra passou a ter arrefecimento e limpeza automáticos, o que costuma traduzir-se numa fatura de armazenamento bastante mais baixa sem qualquer trabalho recorrente. O próximo passo natural é afinar os limites de dias à realidade dos seus dados e, se ativar o last access time tracking, trocar a condição por daysAfterLastAccessTimeGreaterThan para reagir ao uso real em vez da data de modificação. Que percentagem dos seus blobs continua em Hot sem ter sido tocada no último mês?