Azure Web Sites でのリモート デバッグの概要
このポストは、5 月 6 日に投稿された Introduction to Remote Debugging on Azure Web Sites (著者: Jaime Espinosa) の翻訳です。
今回は、Azure Web Sites チームでプログラム マネージャーを務める Jaime Espinosa による記事をご紹介します。
リモート デバッグを使うと、最初から最後まで一貫性を持って Web 開発を進めることができるようになります。Microsoft Visual Studio は、クラウドが自分のデスクのすぐ先にあると錯覚するぐらい、スムーズにクラウドと接続し、やり取りすることが可能で、Web 開発者は、Azure にホストされている Web サイトを同じ 1 つの開発環境で作成、発行、デバッグできます。Visual Studio と Azure Web Sites の統合により開発スピードが向上し、バグの数も減らすことができます。
Microsoft Visual Studio 2013 はデバッガーの操作方法がさまざまな面で改善されています。開発を学び始めた人にとっても、またベテランの開発者にとっても、デバッグは設計フローの重要な要素です。Web サイトのリモート デバッグは Visual Studio 2012 でも可能ですが、Visual Studio 2013 では多くの機能改良が加えられています。詳細については、Visual Studio の製品ページを参照してください。
Azure Web Sites リモート デバッグは、マイクロソフトの最も強力なテクノロジである Azure クラウドと Visual Studio の 2 つが融合した機能です。Visual Studio を自分の Azure Website に接続して完全にコントロールし、ブレークポイントの設定、メモリの直接操作、コードのステップ スルー、さらにコード パスの変更を行えます。Web サイトがまっさらな環境でどのように動作するかを確認できる唯一の手段です。
リモート デバッグは、ラピッド開発において非常に重要であり、メンテナンスが容易になり、高品質なサイトを作成できるようになります。こうしたリモート デバッグを可能にする Visual Studio は、非常に強力で柔軟性のあるツールです。そのしくみや背景を理解して、これらのツールや機能をフルに活用してください。
Azure Web Sites でのリモート デバッグ
Azure Web Sites のリモート デバッガー セッションには手動または自動で接続できます。
デバッグ ツールだけでなくツール全般に言えることですが、ツールを有効に活用にするには、そのしくみを把握しておくことが肝要です。リモート デバッガーのしくみについては、このシリーズの第 2 弾の記事でもっと詳しく解説する予定です。第 3 弾の記事では、Web サイトの複数のインスタンスへのスケールアウトや、Git を使用した Web サイトのデプロイおよび管理について取り上げます。
Visual Studio のリモート デバッガー全般については、数えきれないほど多くの記事、ブログ、チュートリアルが存在しますので、そちらも参照し、いろいろ試してその結果をぜひ共有してください。
機能変更について
お客様からの質問を受けて、ここで説明しておきたいことがいくつかあります。マイクロソフトでは、デバッグ対象のインスタンスからトラフィックを、手動または自動、またはその両方でルーティングする手段を提供する予定です。スタートアップ時のプロセスにアタッチおよびステップインする機能についても現在調査中です。また、これまで 20 字未満に制限されていた、Windows ユーザー名の文字数制限が修正されました。
レベル別の制限
リモート デバッグはあらゆるレベルで利用できますが、レベルによっては一定の制限があります。具体的には、Free (無料) および Shared (共有; Basic (基本)) のレベルでは、常に 1 つの接続のみ可能です。Standard (標準) レベルでは同時に 5 つの接続が可能です。
警告ラベル
残念ながら、警告ラベルが残ったままになっていますが、取り除く方向で対応を進めています。
Visual Studio リモート デバッガーを Azure Web Sites に接続する
Visual Studio リモート デバッガーは手動、自動の 2 種類の方法でアタッチできます。Visual Studio 2012 および 2013 では、標準で手動でアタッチできます (Express 版は除く)。自動接続の手順はずっとシンプルですが、クライアント マシンに Azure SDK のインストールと、サブスクリプション プロファイルのダウンロードが必要です。
リモート デバッガーを任意のプロセスに手動でアタッチできることのメリットは多く、Web サイト プロセス (W3WP) のデバッグだけでなく、WebJobs (英語) のプロセスや Azure Web Sites で実行されている、その他のあらゆるプロセスをデバッグできるようになります。Visual Studio とデバッガーは .NET 用ですが、Visual Studio はその他のツールにも柔軟に拡張できます。
一方、Azure SDK は、Web サイトのより一貫性のある開発とメンテナンスを可能にします。単一ツール (Visual Studio) を使って少ない労力で Web サイトを作成、デプロイ、リモート デバッグできるので、ラピッド開発や多数の Web サイト管理に非常に役立ちます。SDK はシンプルで一貫した操作性を実現するために常に進化し続けています。
手動、自動を問わず、サーバー側で注意しておくべきことがいくつかあります。たとえば、リモート デバッグ機能を有効にし、Visual Studio のバージョンを Azure の該当する Web Sites の設定で定義しておく必要があります。詳細を知りたい方は、ブログ記事「Inside Remote Debugger in Azure Web Sites (Azure Web Sites) (Azure Web Sites のリモート デバッガーの中身)」を参照してください。
自動接続の手順
Azure Web Sites リモート デバッグについてはいくつかのブログで取り上げられており、この機能の開発者のビデオなどもありますので、ぜひチェックしてください。ここでは例を示しませんので、以下の資料を参照してください。
- Visual Studio での Microsoft Azure Web Sites のトラブルシューティング (英語) – Azure 関連資料でわかりやすい例を使って手順を説明しています。
- Visual Studio 2013 を使った Microsoft Azure Web Site のリモート デバッグ (英語) – .NET による Web 開発とツールに関するブログで紹介されているチュートリアルです。
- 解説動画 (英語) – 動画内で開発者が解説しています (最初の 9 分間)。
発行プロファイルは以下の方法でダウンロードできます。
1.https://windows.azure.com/download/publishprofile.aspx からダウンロードする
2.PowerShell コマンド: Get-AzurePublishSettingsFile を使用する
手動接続の手順
手順 1 ~ 6 で、Visual Studio で WebDeploy をセットアップします。別の方法として、ソース管理から Windows Azure Web Sites への発行を行い、Azure Web Sites の Git デプロイメントでリモート デバッガーを使用するために必要な変更を加えます。
手順 1: デプロイ資格情報 (ユーザー名とパスワード) を設定します。
手順 2: 発行プロファイルをダウンロードします。
手順 3: リモート デバッグを有効にして Visual Studio のバージョンを指定します。これらの設定を保存すると、現在保存されているデプロイ資格情報を使用してリモート デバッグが有効化されます。
手順 4: 発行プロファイルをインポートします。下の画像では、SDK がインストールされているため、“Import from a Windows Azure web site” セクションが表示されています。
手順 5: Web サイトに発行する内容を設定します。
手順 6: Visual Studio デバッガーをリモート プロセスにアタッチします。
手順 7: プロセスの場所と接続方法を指定します。
修飾子は <Web サイトの URL (http* は含めない)> とし、ユーザー名およびパスワードは手順 1 で作成した資格情報を使用します。資格情報の前にドット バックスラッシュが付くので注意してください。
手順 8: デバッグしたいプロセスを選択します。発行された Web サイトは W3WP プロセスとなります。複数ある場合は、どれが自分のサイトか確かめてください。
以上が基本的な接続方法ですので、ぜひお試しください。ただし、これはほんの一部に過ぎません。今後の記事で、リモート デバッグの中身、マルチインスタンス環境、Git デプロイメントのデバッグなどのトピックを取り上げていきます。