2016-09-08 4 views
0

私がアプリケーションをAzureでのAppサービスプラットフォーム上fooappと名付けられ、slot1Azureのウェブサイトでスロットスワップのステータスを取得しますか?

という名前のスロットは現在、私はプログラム的によって消費Azure's ARM API経由fooappという名前の私の実際のWebアプリにslot1という名前の私のスロットを交換してる有するように構成されたWebを構築していますC#で書かれたHTTPクライアント。可能なエンドポイントは、Resource Explorerを使用して調べることができます。

これは動作しますが、スワップ自体は約1-2分かかりますので、スワップが完了したら電子メールで通知します。スワップのステータスを呼び出すエンドポイントはありますか?

ここでは、C#でとslot1を交換するHTTP Json Postを作成するコードを示します。

var httpClient = new HttpClient(); 
var uri = "https://management.azure.com/subscriptions/{mysubscriptionid}/resourceGroups/{myresourcegroup}/providers/Microsoft.Web/sites/fooapp/slots/slot1/slotsswap?api-version=2015-08-01"; 
var response = httpClient.PostAsJsonAsync(uri, new { targetSlot = "production" }); 

アイデアは誰ですか?私はドキュメンテーションのためのスカウトを試みましたが、Azureが提供する拡張機能では乾燥していません。

答えて

1

あなたのスロットスワップのステータスを追跡するためにActivity Log APIを使用できます。次に、REST APIの簡単なサンプル呼び出しを示します。

HTTP Method: 
GET 

Absolute Uri: 
https://management.azure.com/subscriptions/{mysubscriptionid}/providers/microsoft.insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2016-09-08T01:53:03.0422573Z' and eventTimestamp le '2016-09-08T02:53:03.0422573Z' and resourceUri eq '/subscriptions/{mysubscriptionid}/resourcegroups/{myresourcegroup}/providers/Microsoft.Web/sites/fooapp/slots/slot1'&select=Authorization,Caller,CorrelationId,Category,EventTimestamp,OperationName,ResourceGroupName,ResourceUri,Status,SubscriptionId,SubStatus 

このREST APIでは、注意が必要ないくつかのことがあります。

  1. URLエンコーディングが必要な場合があることに注意してください。
  2. "eventTimestamp"をスロットスワップを呼び出す直前のタイムスタンプ以上に設定すると、eventTimestamp ge '2016-09-08T01:53:03.0422573Z'を変更する必要があります。
  3. eventTimestamp le '2016-09-08T02:53:03.0422573Z'に似ています。 "eventTimestamp"を現在のタイムスタンプ以下に設定する必要があります。

取得しようとしている可能性のあるログが3つあります。これは、スロットのスワップが成功したことを示します。

最初の1つは「開始済み」です。

Authorization  : 
        Scope  : /subscriptions/{mysubscriptionid}/resourcegroups/{myresourcegroup}/providers/Microsoft.Web/sites/fooapp/slots/slot1 
        Action : Microsoft.Web/sites/slots/slotsswap/action 
        Role  : 
        Condition : 
Caller   : <your Azure account> 
CorrelationId  : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 
Category   : Administrative 
EventTimestamp : 2016-09-08 2:48:39 AM 
OperationName  : Microsoft.Web/sites/slots/slotsswap/action 
ResourceGroupName : {myresourcegroup} 
ResourceId  : 
Status   : Started 
SubscriptionId : {mysubscriptionid} 
SubStatus   : 

第2の1つは「受け入れられる」。

Authorization  : 
        Scope  : /subscriptions/{mysubscriptionid}/resourcegroups/{myresourcegroup}/providers/Microsoft.Web/sites/fooapp/slots/slot1 
        Action : Microsoft.Web/sites/slots/slotsswap/action 
        Role  : 
        Condition : 
Caller   : <your Azure account> 
CorrelationId  : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 
Category   : Administrative 
EventTimestamp : 2016-09-08 2:48:41 AM 
OperationName  : Microsoft.Web/sites/slots/slotsswap/action 
ResourceGroupName : {myresourcegroup} 
ResourceId  : 
Status   : Accepted 
SubscriptionId : {mysubscriptionid} 
SubStatus   : Accepted 

第3の1つは「成功」です。

Authorization  : 
        Scope  : /subscriptions/{mysubscriptionid}/resourcegroups/{myresourcegroup}/providers/Microsoft.Web/sites/fooapp/slots/slot1 
        Action : Microsoft.Web/sites/slots/write 
        Role  : 
        Condition : 
Caller   : <your Azure account> 
CorrelationId  : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 
Category   : Administrative 
EventTimestamp : 2016-09-08 2:49:44 AM 
OperationName  : Microsoft.Web/sites/slots/write 
ResourceGroupName : {myresourcegroup} 
ResourceId  : 
Status   : Succeeded 
SubscriptionId : {mysubscriptionid} 
SubStatus   : 

サービスプリンシパルを使用している場合、出力の「発信者」は異なる場合があります。スロットスワップが失敗した場合は、2番目または3番目のログに「失敗」が表示されます。

+0

迅速な対応をありがとう!私は今働いていますが、どこからこの情報を入手したのか尋ねたいのですが?私はAzureのウェブサイトでこれを見つけることができませんでした。またAzure Resource Explorerでは 'https://management.azure.com/subscriptions/ {mysubscriptionid}/providers/microsoft.insights'を見つけることができませんでしたが、私のRESTクライアントを入れたときなどです。郵便配達員の絶対URLは –

+1

でした。私はAzure PowerShellコマンド 'Get-AzureRmLog'を調べてこの情報を得ました。 '-debug'オプションを付けてコマンドを実行すると、REST APIを見ることができます。たとえば、 'Get-AzureRmLog -ResourceId /subscriptions/{mysubscriptionid}/resourcegroups/{myresourcegroup}/providers/Microsoft.Web/sites/fooapp/slots/slot1 -debug'とします。 –

関連する問題