2017-12-21 3 views
3

私はbob_app_001とbob_app_002という2つのインスタンスを持つCloudService Classic Applicationを持っています。それぞれのBobAppには5つのインスタンスがあります。AzureでCloudServiceインスタンスのウォームアップをスクリプト化するにはどうすればよいですか?

このアプリケーションは、〜/ pingで監視するために使用するエンドポイントを持つc#Apiです。

私は現在、Traffic Managerからサービスの1つを取り除き、トラフィックを排除し、VIPをProductionスロットにスワップしてから、Traffic Managerに再追加して展開します。ここで問題となるのは、最初のいくつかの要求は、サービスが自ずと回転するにつれて、常に遅いということです。私はこれを避けるために、プールを回転させて戻す前にpingエンドポイントを打つことによって、ウェブ関連のものをすべてスピンアップさせようとしています。

bob_app_001からすべてのアプリケーションのURLを取得するスクリプトを作成するにはどうすればよいですか?VIPスワップ後にTrafficManagerに戻す前にサービスを温めるためにpingエンドポイントでInvoke-WebRequestを呼び出すことができます。

答えて

3

getting all the app's urls from bob_app_001 これは私が代わりにApplication Initialization Moduleを使用してお勧めしたい

(あなたのルーティングが設定されている方法に応じて)特にアプリ内に達すると何とかURLを公開することなく、トリッキーな部分になります。

モジュールを有効にするには、web.configにapplicationInitializationセクションを作成し、初期化タスクを開始するためのURLを定義する必要があります。その後

<system.webServer> 
    <applicationInitialization> 
    <add initializationPage="/app/init" /> 
    </applicationInitialization> 
<system.webServer> 

であなたの初期化を行うには、軽量コントローラ:

public class InitController : ApiController 
{ 
    [Route("/app/init")] 
    public IHttpActionResult Index() 
    { 
     //do your initialisation/warmup here 

     return Ok(); 
    } 
} 

私は、この例のうち、セキュリティのいずれかの概念を残してきたが、それは内から/app/initへのアクセスを制限するのが最善だろうアプリケーション(一度だけ実行)

設定一旦、展開スロット間スワップ操作が AFTE を完了するコード「APP/INIT」の下のURLを終了するRとなります。

関連する問題