![]()
Automatizando o Tagueamento de Recursos no Azure com Bash
Você já precisou aplicar tags em massa nos recursos da sua assinatura Azure? E se fosse possível fazer isso com um simples script Bash? Foi exatamente isso que construí com o Azure Resource Tagger, uma solução simples, direta e eficiente para quem trabalha com ambientes cloud e precisa manter a governança em dia.
💡 O Que é o Azure Resource Tagger?
Um script Bash que aplica um conjunto fixo de tags a uma lista de recursos do Azure. Você define os recursos que deseja taguear em um arquivo resources.txt, e o script cuida do resto.
🧰 Pré-requisitos
Antes de rodar o script, certifique-se de ter:
-
Azure CLI instalado e autenticado (
az login) -
Permissões para modificar tags na sua assinatura
-
A variável de ambiente
AZ_SUB_IDcom seu Subscription ID:
export AZ_SUB_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
- Um arquivo
resources.txtcom os IDs completos dos recursos (um por linha):
/subscriptions/<id>/resourceGroups/rg-name/providers/Microsoft.Compute/virtualMachines/vm-name
⚙️ Como Usar
- Exporte seu ID de assinatura:
export AZ_SUB_ID="xxxxx-xxx-xxx-xxxx-XXXXXX"
-
Certifique-se de que
resources.txtestá no mesmo diretório. -
Execute o script:
bash tag.sh
🧾 O Que o Script Faz
-
Lê os IDs dos recursos a partir do
resources.txt -
Remove espaços e quebras de linha extras
-
Aplica as seguintes tags:
status=emuso
env=prd
produto=produto
cliente=cliente
iac=nao
Tudo isso utilizando o comando:
az tag update --operation merge
Ou seja, as tags existentes são mantidas e apenas as novas são adicionadas ou atualizadas.
⚠️ Observações
-
Recursos que não aceitam tags (ex: extensões de VMs desativadas) gerarão erro, mas o script continua rodando.
-
Linhas vazias ou malformadas no
resources.txtsão ignoradas.
📁 Estrutura Esperada do Projeto
.
├── tag.sh # Script principal
└── resources.txt # Lista de IDs dos recursos
✅ Exemplo de Saída
Tagging: /subscriptions/xxx/resourceGroups/my-rg/providers/Microsoft.Compute/virtualMachines/vm01
{
"tags": {
"cliente": "client",
"env": "prd",
"iac": "nao",
"produto": "produto",
"status": "emuso"
}
}
📥 Dica Extra: Gerando o resources.txt Automaticamente
Use o comando abaixo para gerar a lista de IDs diretamente da sua assinatura:
az resource list \
--query "[].id" \
-o tsv > resources.txt
Ou, se quiser mais controle com jq e awk:
az resource list -o json > resources.json
jq -r '.[] | .id' resources.json > resources.txt
🔗 Confira o projeto completo no GitHub:
👉 douglastos/azure-resource-tagger