2

У меня есть подписка на лазурь, которая имеет более 200 приложений, где около половины из них имеют непрерывный режим, всегда на веб-приложениях, некоторые из них также имеют слоты, которые также имеют webJobs.Как перечислить все запущенные веб-сайты в лазурной подписке с помощью powershell

Есть ли способ перечислить все webJobs, которые находятся внутри подписки? Я изначально пытался использовать powershell для этого, но он становился довольно сложным и задавался вопросом, знал ли кто-нибудь о простом способе достижения вышеуказанного.

Кажется, что Get-AzureRmWebApp должен быть в состоянии помочь, но я не могу найти способ перечислить задания, которые находятся внутри webapps.

ответ

3

Я нашел команду Get-AzureWebsiteJob, которая не входит в семейство команд AzureRM. Следующий сценарий может получить данные, которые я ищу:

$groups = get-AzureRmResourceGroup | where{$_.ResourceGroupName -like "*-prod-*"} 

foreach($group in $groups){ 
    Write-Host -ForegroundColor Cyan "processing resourceGroup" $group.ResourceGroupName 

    $webApps = Get-AzureRmWebApp -ResourceGroupName $group.ResourceGroupName 

    foreach($webApp in $webApps){ 
     write-host -ForegroundColor Yellow $webApp.Name   
     $job = Get-AzureWebsiteJob -Name $webApp.Name 
     if($job){ 
      write-host -ForegroundColor DarkYellow $job.JobName 
     }   
     $job = Get-AzureWebsiteJob -Name $webApp.Name -Slot staging 
     if($job){ 
      write-host -ForegroundColor DarkYellow $job.JobName " -staging" 
     } 
    } 
} 

выше, не отфильтровывать бегущие из них остановленных, но которые могут быть легко добавлены, если это будет необходимо.

Конечно, вы в первую очередь должны быть зарегистрированы в AzureRM и Azure классические

Login-AzureRmAccount 
Select-AzureRmSubscription -SubscriptionId <<mySubscriptionId>> 
Get-AzureRmContext 

Add-AzureAccount 
Select-AzureSubscription -SubscriptionId <<mySubscriptionId>> 
Get-AzureSubscription -Current 

Его очень медленный сценарий итерацию по этому номеру или AppServices хотя. Любые идеи для его ускорения были бы оценены.

+0

У вас может возникнуть проблема, если ваша подписка поддерживает только ресурсы на основе RM. – Rahul

1

Вы можете сделать это с помощью API ARM, хотя вам все равно нужно называть его в каждом веб-приложении.

Вы можете получить WebJobs с запросом GET для:

https://management.azure.com/subscriptions/subscription-id/resourceGroups/resource-group-name/providers/Microsoft.Web/sites/app-name/webjobs?api-version=2016-03-01 

Но я сомневаюсь, что это будет какой-нибудь более эффективной, чем у вас, так как вы все еще должны сделать вызов для каждого веб-приложения. И вам нужно как-то получить маркер доступа.

Веб-вакансии являются собственностью приложений App Service и не могут быть запрошены сразу из Azure.

Смежные вопросы