2016-11-03 14 views
2

私は約200のappServicesを持つ青いサブスクリプションを持っており、約半数がContinuousを持ち、常にwebJobsが接続されています。powershellを使用して紺碧のサブスクリプション内で実行中のウェブジョブをすべて一覧表示する方法

サブスクリプション内にあるすべてのWebJobをリストする方法はありますか?私はもともとこれを行うためにpowershellを使用するつもりでしたが、それはかなり複雑になり、誰かが上記を達成する簡単な方法を知っていたのか疑問に思っていました。

これは、Get-AzureRmWebAppが役立つはずですが、Webアプリケーション内にあるジョブを一覧表示する方法が見つからないようです。

答えて

3

コマンドレットのAzureRMファミリにないコマンドGet-AzureWebsiteJobが見つかりました。次のスクリプトは、私が探しているデータを取得することができます。

$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

各Webアプリケーションで呼び出す必要がありますが、ARM APIを通じて実行することもできます。

あなたはへのGETリクエストでWebJobsを取得することができます。

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

しかし、私は、あなたはまだ、すべてのWebアプリケーションのための呼び出しを行う必要があるので、これはあなたが持っているものよりも任意のより効率的になります疑います。そして、あなたは何とかアクセストークンを取得する必要があります。

ウェブジョブはApp Serviceアプリケーションのプロパティであり、Azureから一度にリクエストすることはできません。

関連する問題