你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:清理资源
完成云规模分析教程时,可能会遇到部署问题。 若要重新开始,请使用以下脚本删除在 Azure 订阅中创建的教程资源。
还可以使用脚本在完成教程中的所有步骤后删除在订阅中创建的所有教程资源。
警告
在以下脚本中,筛选器会标识和删除在教程中创建的资源组。 使用这些脚本删除资源组是无法撤消的操作。 请确保在脚本中输入正确的前缀。 例如,在教程中,这些占位符用于引用部署的教程资源:
<DMLZ-prefix>
是指在创建数据管理登陆区域部署时输入的前缀。<DLZ-prefix>
是指在创建数据登陆区域部署时输入的前缀。<DP-prefix>
是指在创建数据产品部署时输入的前缀。
使用 PowerShell 进行单资源组清理
# 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
在 Azure CLI 中使用 Bash 进行单资源组清理
# 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
使用 PowerShell 进行多资源组清理
# 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 }}