如何使用Azure CLI列出Web应用扩展?

ut6juiuv  于 2023-06-24  发布在  其他
关注(0)|答案(2)|浏览(102)

我需要删除约50个Azure应用服务中的站点扩展。az webapp命令空间不列出任何站点扩展:https://learn.microsoft.com/en-us/cli/azure/webapp?view=azure-cli-latest
Azure团队不会触及站点扩展:https://github.com/Azure/azure-cli/issues/7617
但是,如果您知道资源ID,则可以删除扩展名:https://github.com/Azure/azure-cli/issues/7617#issuecomment-952743871
此命令不返回已安装的扩展:

az resource list --resource-type Microsoft.Web/sites

此命令不返回任何内容:

az resource list --resource-type Microsoft.Web/sites/siteextensions

如何使用Azure CLI获取已安装的Web应用扩展列表?

kcugc4gi

kcugc4gi1#

即使我无法得到扩展列表与az resource list --resource-type Microsoft.Web/sites命令。

使用show az resource show代替az resource list

az resource show --resource-group 'YourRGName' --resource-type 'Microsoft.Web/sites/siteextensions'  --name 'mywebapp15June/siteextensions'

  • 此命令仅在我们提供webapp名称时才有效。一次只能检索1个webapp。
  • 要检索所有Web应用程序的扩展,需要循环运行上述命令。

我已经尝试使用Bash在循环中运行命令。

RG="YourRGName"
AppNames=$(az webapp list --resource-group $RG --query "[].name" -o tsv)

for AppName in $AppNames; do
    echo "WebApp: $AppName"
    
    extensions=$(az resource show --resource-group $RG --resource-type Microsoft.Web/sites/siteextensions --name "$AppName/siteextensions")
    
    echo "Site Extensions:"
    echo $extensions.title
    echo "=========================="
done

输出:

将列出已安装扩展的Web应用程序。

l7mqbcuq

l7mqbcuq2#

您可以使用WebApps -List Site Extensions REST API来拉取安装在特定webapp中的扩展列表。
您需要在PowerShell中使用上述REST API编写自定义脚本。
这里是示例脚本,请根据您的要求相应地修改它。

Connect-AzAccount

$token = (Get-AzAccessToken).Token

$subcriptionId= "<SubscriptionId>"

$webapplist= Get-AzWebApp 

Write-output "List of webapp extensions installed:"

foreach ( $item in $webapplist) {

$url = 'https://management.azure.com/subscriptions/' + $subcriptionId + "/resourceGroups/" + $item.ResourceGroup + "/providers/Microsoft.Web/sites/" + $item.Name + "/siteextensions?api-version=2022-03-01"
 
$extension= Invoke-WebRequest -Method Get -Uri $url -Headers @{'authorization'= "Bearer " + $token } -ContentType "application/json" | Select -ExpandProperty Content
$installedextenstions = (ConvertFrom-Json $extension).value.name

Write-Output $installedextenstions

}

相关问题