Share via


Tutorial: Bereinigen von Ressourcen

Wenn Sie die Tutorials zu Analysen auf Cloudebene durcharbeiten, können möglicherweise Probleme bei der Bereitstellung auftreten. Verwenden Sie die folgenden Skripts, um Tutorialressourcen zu entfernen, die Sie in Ihrem Azure-Abonnement erstellt haben.

Sie können die Skripts auch verwenden, um alle Tutorialressourcen zu entfernen, die Sie in Ihrem Abonnement erstellt haben, wenn Sie alle Schritte in den Tutorials abgeschlossen haben.

Warnung

In den folgenden Skripts identifiziert und entfernt ein Filter die Ressourcengruppen, die Sie in den Tutorials erstellt haben. Das Entfernen von Ressourcengruppen mithilfe dieser Skripts ist eine Aktion, die nicht rückgängig gemacht werden kann. Achten Sie darauf, dass Sie in den Skripts das richtige Präfix eingeben. In den Tutorials werden diese Platzhalter z. B. verwendet, um auf die von Ihnen bereitgestellten Tutorialressourcen zu verweisen:

  • <DMLZ-prefix> bezieht sich auf das Präfix, das Sie eingegeben haben, als Sie Ihre Bereitstellung für die Zielzone für die Datenverwaltung erstellt haben.
  • <DLZ-prefix> bezieht sich auf das Präfix, das Sie eingegeben haben, als Sie Ihre Bereitstellung für die Zielzone für Daten erstellt haben.
  • <DP-prefix> bezieht sich auf das Präfix, das Sie eingegeben haben, als Sie Ihre Bereitstellung für Ihr Datenprodukt erstellt haben.

Verwenden von PowerShell für die Bereinigung einer einzelnen Ressourcengruppe

# Clean up PowerShell resources.

$prefix = '<your prefix>'
$subscriptionId = '<subscription ID>'

# Set the subscription.
Set-AzContext -SubscriptionId $subscriptionId

# List all resource groups that will be removed.
Get-AzResourceGroup | ? ResourceGroupName -match $prefix | Select-Object ResourceGroupName

# Remove the resource groups shown in the preceding command.
Get-AzResourceGroup | ? ResourceGroupName -match $prefix | Remove-AzResourceGroup -AsJob -Force

Verwenden von Bash in der Azure CLI für die Bereinigung einer einzelnen Ressourcengruppe

# Clean up resources for Azure Cloud Shell, macOS, and Linux.

prefix='<prefix>'  
subscription='<subscription ID>'

# Set the subscription.
az account set --subscription $subscription

# Review the query to ensure the resource groups match the specified prefix.
az group list -o tsv  --query "[?contains(@.name, '$prefix')==\`true\`].name"

# Delete resource groups that match the prefix.
for rg in $(az group list -o tsv --query "[?contains(@.name, '$prefix')==\`true\`].name");
do
    az group delete --name $rg -y --no-wait;
done

Verwenden von PowerShell für die Bereinigung mehrerer Ressourcengruppen

# PowerShell commands that use the Azure CLI to remove multiple resource groups that have a common prefix.

# Make sure you're in the correct subscription.
az account show

# Change the subscription, if needed.
az account set -s "<the correct subscription ID>"

# Define the wildcard expression to use to filter your cloud-scale analytics resource groups.
$filter = "*-dev-*"

# Get all resource groups and filter by your prefix.
# Print a list of resource groups to ensure you delete the correct resource groups.
$groups = az group list | ConvertFrom-Json
$groups = $groups | where{$_.name -like $filter}
[array]::Reverse($groups)
$message =  "`n`nThe following resource groups will be deleted:`n"
Foreach ($group in $groups) {
    $message += "   - $($group.name)`n"
}
$message += "`n`n"
Write-Host -ForegroundColor yellow $message

# Delete all peerings for the virtual networks you'll delete.
$subs = az account list | ConvertFrom-Json
$all_vnets = az network vnet list | ConvertFrom-Json
$del_vnets = $all_vnets | where{$_.resourceGroup -like $filter}
$del_vnet_ids = $del_vnets | ForEach-Object { $_.id }
Foreach ($sub in $subs) {
    Write-Host "Looking for vnet peerings in subscription `"$($sub.name)`"..."
    $all_vnets = az network vnet list --subscription $($sub.id) 2> $null | ConvertFrom-Json
    Foreach ($vnet in $all_vnets) {
        $linked_peerings = $vnet.virtualNetworkPeerings | where{$del_vnet_ids.Contains($_.remoteVirtualNetwork.id)}
        Foreach ($peering in $linked_peerings) {
            Write-Host -ForegroundColor red "`tDeleting peering `"$($peering.name)`" for VNet $($vnet.name)"
            az network vnet peering delete --ids $peering.id
        }
    }
}

# Delete all self-hosted integration runtimes from data factories you'll delete.
$factories = az datafactory list --only-show-errors | ConvertFrom-Json
$factories = $factories | where{$_.resourceGroup -like $filter}
Foreach ($factory in $factories) {
    $shirs = az datafactory integration-runtime list --resource-group $factory.resourceGroup --factory-name $factory.name --only-show-errors | ConvertFrom-Json
    $shirs = $shirs | where{$_.properties.type -eq "SelfHosted"}
    Foreach ($shir in $shirs) {
        Write-Host -ForegroundColor red "Deleting SHIR for `"$($factory.name)`" in RG $($factory.resourceGroup)"
        az datafactory integration-runtime delete --resource-group $factory.resourceGroup --factory-name $factory.name --name $shir.name --yes --only-show-errors
    }
}

# Delete the identified resource groups.
Foreach ($group in $groups) {
    Write-Host -ForegroundColor red "Deleting $($group.name)"
    az group delete --name $group.name --yes --no-wait
}

# Check for the resource groups to verify they were deleted.
$allGroups = az group list | ConvertFrom-Json
$allGroups | Where-Object { $groups.name -contains $_.name } | Select-Object name, @{Name="State"; Expression={$_.properties.provisioningState }}

Nächste Schritte