明日から役に立たない azure web サイト使いこなしテクニック
TRANSCRIPT
自己紹介
• しばやん (@shibayan)
• http://shiba-yan.hatenablog.jp/
• Microsoft MVP for ASP.NET/IIS
• Microsoft Azure Web サイト好き
このセッションの内容
• Azure Web サイトで良く分からないことをします。
• Kudu は一般的な教養として扱います。– Site Extensions / XML Document Transform は有名ですよね。
• WAWebSiteSID は円環の理に導かれて、ARRAffinity だけになった話。
• 今、Azure Web サイト界で激熱な httpPlatformHandler とか使います。– Java は知らん
Kudu
• Azure Web サイトの git デプロイエンジンのようなもの
• バックエンドを支える重要なサービス
• https://<sitename>.scm.azurewebsites.net/
• 環境確認、デバッグコンソール、プロセスエクスプローラ、ストリーミングログ
Site Extensions
• Azure Web サイトの applicationHost.config を書き換えるための機能
• 新しく仮想アプリケーションを追加したり、管理ポータルから弄れない設定を変更
– IIS をほぼ自由に弄れる。ただし machine.config はダメ
applicationHost.config
• Azure Web サイトで動いている IIS の設定を持っているファイル
• 中身を見ると Azure Web サイトでどんな機能が使えるのか見れる
XML Document Transform
• Visual Studio での Web.config の変換に使われているXML を書き換える仕様
• Web.Release.config / Web.Debug.config みたいな
• applicationHost.config を書き換えるにはapplicationHost.xdt を用意する
ARRAffinity, WAWebSiteSID
• Azure Web サイトのリリース当初は 2 種類のクッキーが発行されていた– ARRAffinity
– WAWebSiteSID
• ちょっと前に WAWebSiteSID が廃止されて、ARRAffinity だけに– 1 リクエストあたり 100 バイトぐらい削減
– ARRAffinity == WEBSITE_INSTANCE_ID
Perl on Azure Web Sites
• Strawberry Perl を Azure Web サイトに手動インストール
• CGI で動かす場合
– Web.config に CgiModule を利用する HTTP ハンドラーマッピングを追加
• FastCGI で動かす場合
– Site Extensions を使って fastCgi 要素に perl.exe を追加
– 管理ポータルから HTTP ハンドラーマッピングを追加
Java on Azure Web Sites
• Build 2014 で Tomcat / Jetty 対応が発表される
– JDK 1.7 が Azure Web サイトにインストールされている
• IIS に httpPlatformHandler モジュールを追加し、アプリケーションサーバを動かす
• httpPlatformHandler は FastCGI 的な挙動を示す気がする
httpPlatformHandler
• IIS の HTTP パイプラインを HTTP に変換するプロキシ的な役割を果たす
• 居場所はD:¥Windows¥System32¥inetsrv¥httpplatformhandler.dll
• 32bit 版と 64bit 版の両方が用意されている