Como excluir recursos em escala usando a CLI do Azure
Como um gerenciador de recursos do Azure, você frequentemente precisa excluir vários recursos do Azure ao derrubar um ambiente antigo. Alguns ambientes devTest da CLI também precisam de uma limpeza periódica para que não haja cobranças por recursos temporários do Azure que tenham permanecido por mais tempo.
Neste exemplo de CLI do Azure, você aprenderá o seguinte:
- Excluir vários recursos do Azure de um script
- Registrar o progresso do script em um arquivo TXT local
Este script de exemplo foi testado no Azure Cloud Shell em um ambiente Bash. Este script também foi testado com sucesso no Ubuntu 22.04.3 LTS usando o Windows Terminal.
Excluir recursos do Azure filtrando por nome
Use esse script para listar e excluir grupos de recursos que começam com uma determinada palavra.
# Set your subscription
subscriptionID=00000000-0000-0000-0000-00000000
az account set --subscription $subscriptionID
# Set your log file location
logFileLocation="myLogName.txt"
# Get the name of all resource groups that start with 'msdocs'
az group list --query "[?starts_with(name, 'msdocs') == \`true\`].name" -o table
# Delete resource groups without a confirmation prompt (--yes)
# Do not wait for the operation to finish (--no-wait)
echo "Deleting resource groups">$logFileLocation
for rgList in $(az group list --query "[?starts_with(name, 'msdocs') == \`true\`].name" -o tsv);
do
echo "deleting resource group $rgList">>$logFileLocation
az group delete --name $rgList --yes --no-wait
done
# read your log file with Linux "cat" command
clear
cat $logFileLocation
Excluir recursos do Azure filtrando por data de criação
Use esse script para listar e excluir contas de armazenamento criadas em um intervalo de datas.
# Set your log file location
logFileLocation="myLogName.txt"
# Set your resource group variable
rgName=<msdocs-rg-0000000>
# Get a list of Azure storage accounts that were created in the last 30 days. Return the results as a table.
saDate=$(date +%F -d "-30days")
az storage account list --resource-group $rgName \
--query "[?creationTime >='$saDate'].{saName:name, createdTimeStamp:creationTime}" \
--output table
# Delete storage accounts without a confirmation prompt (--yes).
# Do not wait for the operation to finish (--no-wait)
echo "Deleting storage accounts">$logFileLocation
for saList in $(az storage account list --resource-group $rgName \
--query "[?creationTime >='$saDate'].{saName:name, createdTimeStamp:creationTime}" \
--output tsv);
do
echo "deleting storage account $saList">>$logFileLocation
az storage account delete --ids $saList --yes --no-wait
done
# read your log file with Linux "cat" command
clear
cat $logFileLocation
Excluir todos os recursos do azure de um tipo
Excluir todas as máquinas virtuais em um grupo de recursos
# Set your resource group variable
rgName=<msdocs-rg-0000000>
az group delete -n $rgName --force-deletion-types Microsoft.Compute/virtualMachines