Udostępnij za pośrednictwem


Jak usuwać zasoby na dużą skalę przy użyciu interfejsu wiersza polecenia platformy Azure

Jako usługa Azure Resource Manager często trzeba usuwać wiele zasobów platformy Azure podczas usuwania starego środowiska. Niektóre środowiska devTest interfejsu wiersza polecenia również wymagają okresowego czyszczenia, więc opłaty nie są naliczane dla tymczasowych zasobów platformy Azure, które utrzymywały się dłużej.

W tym przykładzie interfejsu wiersza polecenia platformy Azure poznasz następujące informacje:

  • Usuwanie wielu zasobów platformy Azure ze skryptu
  • Postęp skryptu dziennika w lokalnym pliku TXT

Ten przykładowy skrypt został przetestowany w usłudze Azure Cloud Shell w środowisku powłoki Bash. Ten skrypt został również pomyślnie przetestowany w systemie Ubuntu 22.04.3 LTS przy użyciu Terminal Windows.

Usuwanie filtrowania zasobów platformy Azure według nazwy

Użyj tego skryptu, aby wyświetlić listę i usunąć grupy zasobów rozpoczynające się od danego słowa.

# 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

Usuwanie filtrowania zasobów platformy Azure według daty utworzenia

Użyj tego skryptu, aby wyświetlić listę i usunąć konta magazynu utworzone w zakresie dat.

# 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

Usuwanie wszystkich zasobów platformy Azure typu

Usuwanie wszystkich maszyn wirtualnych w grupie zasobów

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

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

Zobacz też