2016-11-04 8 views
1

メンテナンスのためにメインWebサイトをオフラインにしたときに使用する、オフラインと呼ばれる追加の配備スロットを持つAzureアプリケーションサービス(Webサイト)があります。どのAzureアプリケーションサービス(ウェブサイト)スロットが「アクティブ」であるかを確認する方法は?

スクリプトに渡されるパラメータに応じて、このオフラインスロットと本番スロットの間で切り替えるPowerShellスクリプトを作成しようとしています。ただし、スイッチオーバーが発生したときにスクリプトは追加のアクションも実行する必要があるため、現在どのスロットが「アクティブ」であるかを知ることが重要です。

問題は、私がこれを判断する方法を見つけることができないということです。私は、Resource Managerのコマンドレット(*-AzureRm*)を使用している、と私は呼び出すことができますが:

Get-AzureRmWebAppSlot -ResourceGroupName xxx -Name websitename -Slot offline 

このリターンは私の知る限り、私を助けることができることは何も持っていないことをオブジェクトに。 Get-AzureRmWebAppによって返されたオブジェクトの場合も同じ話です。

このためにResource Managerコマンドレットが存在しないようですが、他にも使用できる技術はありますか?私が今考えているのは、オフラインサイトにしか存在しない特定のWebページを持ち、ライブWebサイトを照会してそのページの存在を確認することです。しかし、これはハッキーのようだ。

+0

どちらか私はこのことについて完全に明確ではないですか、おそらく道アウトラインが、(接尾辞として-procuction持つ)ありえないWebサイト名、生産の"アクティブな"もの? – JFM

+0

ウェブアプリケーションが_foo_と呼ばれ、_offline_という単一のスロットがある場合、foo.azurewebsites.netとfoo-offline.azurewebsites.netの2つのドメインが存在します。 2つのスロットが交換されるとき、ドメインは同じままであるが、それらのコンテンツは切り換えられる。 foo.azurewebsites.netにアクセスすると、以前はfoo-offline.azurewebsites.netにあったコンテンツが表示され、その逆もあります。 AFAIKは、foo-production.azurewebsites.netのようなものはありません(実際には、404 Host Not Foundエラーが発生します)。 –

+0

私が得ようとしていることは、はい、foo.azurewebsites.netは、あなたがあなたのユーザーに広告するドメインであるという意味で常に「アクティブな」サイトです(ただし、おそらくカスタムドメインパブリックサイトの場合)。そのサイトは常に存在し、いつも同じURLで利用可能です。しかし、現在そのドメインに展開されている_content_をプログラムで(PowerShell経由で)判断する必要があります。言い換えれば、私が今foo.azurewebsites.netに行った場合、ライブサイトのコンテンツまたはオフラインサイトのコンテンツを取得できますか? –

答えて

1

アプリを識別するスロット以外のアプリ設定を設定できます。それは、スワップを実行するときにアプリと一緒にスワップされます。

など。キーがのAppVersionと値の生産設定スロットにはの生産番号が設定され、オフラインのスロットには同じキーと値のオフラインのアプリ設定が設定されています。

あなたはこのようにPowerShellを使用してアプリケーション設定へのアクセスを得ることができます常に

(Get-AzureRmWebApp -ResourceGroupName your-resource-group -Name your-webapp).SiteConfig.AppSettings 
+0

これを読んだ他の人にとって重要なのは、アプリの設定が**スロット固有ではない**、つまりスロットに縛られていないことです。 –

関連する問題