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

Como criar um Storage Account no Azure com Bicep

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

Um Storage Account é a base de quase tudo o que se faz com dados na Azure: guardar ficheiros, blobs, tabelas e filas. Criar um Storage Account no Azure com Bicep permite descrever essa infraestrutura como código, guardá-la no Git e recriá-la sempre igual em qualquer ambiente, sem cliques manuais no portal. Este guia mostra como fazer isso, passo a passo, com o Azure CLI.

Pré-requisitos

  • Uma subscrição Azure ativa e permissões para criar recursos.
  • O Azure CLI instalado — o Bicep já vem incluído.
  • Um editor de texto; o VS Code com a extensão Bicep ajuda com sugestões e validação.
  • O nome de um resource group onde vais criar o Storage Account.

Passo 1: Confirmar que o Bicep está disponível

Antes de escrever código, confirma que o Azure CLI e o Bicep estão prontos. Abre um terminal e corre estes dois comandos:

az version
az bicep version

Se o segundo devolver um número de versão, está tudo pronto. Caso contrário, instala o Bicep com az bicep install e volta a tentar.

Passo 2: Criar o ficheiro Bicep

Cria um ficheiro chamado storage.bicep. Começa pelos parâmetros — os valores que podes mudar sem tocar no resto do template, o que torna o ficheiro reutilizável:

@description('Nome único do Storage Account (3-24 caracteres, só minúsculas e números)')
param storageAccountName string

@description('Localização dos recursos')
param location string = resourceGroup().location

@allowed([
  'Standard_LRS'
  'Standard_GRS'
  'Standard_ZRS'
])
param sku string = 'Standard_LRS'

O parâmetro location usa por omissão a localização do resource group, e sku só aceita os valores da lista, evitando erros de escrita.

O nome do Storage Account tem de ser único em toda a Azure e não pode conter maiúsculas nem símbolos. Um prefixo curto (ex.: st) mais o nome do projeto costuma resultar bem.

Passo 3: Definir o recurso Storage Account

Agora acrescenta o recurso ao mesmo ficheiro. A palavra storage logo a seguir a resource é apenas um nome simbólico para te referires ao recurso dentro do Bicep:

resource storage 'Microsoft.Storage/storageAccounts@2023-01-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: sku
  }
  kind: 'StorageV2'
  properties: {
    minimumTlsVersion: 'TLS1_2'
    allowBlobPublicAccess: false
    supportsHttpsTrafficOnly: true
  }
}

output primaryBlobEndpoint string = storage.properties.primaryEndpoints.blob

Escolhemos kind igual a StorageV2, o tipo mais comum, e reforçámos a segurança: TLS 1.2 no mínimo, sem acesso público a blobs e só tráfego HTTPS. O output no fim devolve o endereço do serviço de blobs assim que o deploy terminar.

Passo 4: Pré-visualizar com what-if

Antes de criar seja o que for, vê o que vai acontecer. O modo what-if compara o template com o que já existe na Azure e mostra-te as diferenças:

az deployment group what-if --resource-group rg-tutorial --template-file storage.bicep --parameters storageAccountName=stbconceptsdemo01

Deves ver uma linha com o sinal + a indicar que um recurso novo vai ser criado. Se aparecer um erro de nome já em uso, escolhe outro nome mais único.

Passo 5: Fazer o deploy

Se a pré-visualização estiver como esperavas, executa o deploy real com o mesmo comando, trocando apenas what-if por create:

az deployment group create --resource-group rg-tutorial --template-file storage.bicep --parameters storageAccountName=stbconceptsdemo01

Ao fim de alguns segundos o comando termina e mostra os outputs definidos, incluindo o primaryBlobEndpoint.

Verificar o resultado

Para confirmar que o Storage Account ficou mesmo ativo, pergunta o estado do aprovisionamento:

az storage account show --name stbconceptsdemo01 --resource-group rg-tutorial --query "provisioningState" -o tsv

Se a resposta for Succeeded, o recurso está criado. Também o podes ver no portal da Azure, dentro do resource group que indicaste.

Conclusão

Com poucas linhas de Bicep criaste um Storage Account seguro e repetível, pronto a guardar no Git e a reutilizar noutros ambientes. O próximo passo natural é transformar este template num módulo e chamá-lo a partir de outros ficheiros, ou acrescentar um contentor de blobs no mesmo deploy. Que outro recurso gostarias de descrever como código a seguir?