다음을 통해 공유


Azure CLI를 사용하여 대규모로 리소스를 삭제하는 방법

Azure 리소스 관리자는 이전 환경을 삭제할 때 여러 Azure 리소스를 삭제해야 하는 경우가 많습니다. 일부 CLI devTest 환경에는 주기적인 클린 필요하므로 더 오래 남아 있는 임시 Azure 리소스에 대한 요금이 발생하지 않습니다.

이 Azure CLI 샘플에서는 다음을 알아봅니다.

  • 스크립트에서 여러 Azure 리소스 삭제
  • 로컬 TXT 파일에 스크립트 진행률 기록

이 샘플 스크립트는 Bash 환경의 Azure Cloud Shell 에서 테스트되었습니다. 이 스크립트는 Windows 터미널 사용하여 Ubuntu 22.04.3 LTS에서도 성공적으로 테스트되었습니다.

이름으로 필터링하는 Azure 리소스 삭제

이 스크립트를 사용하여 지정된 단어로 시작하는 리소스 그룹을 나열하고 삭제합니다.

# 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

생성 날짜별로 Azure 리소스 필터링 삭제

이 스크립트를 사용하여 날짜 범위 내에서 만든 스토리지 계정을 나열하고 삭제합니다.

# 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

형식의 모든 Azure 리소스 삭제

리소스 그룹의 모든 Virtual Machines 삭제

# Set your resource group variable
rgName=<msdocs-rg-0000000>

az group delete -n $rgName --force-deletion-types Microsoft.Compute/virtualMachines

참고 항목