前ページでは、開発ツールに用意されているコンソール画面を利用しましたが、オンプレミスや仮想マシンのWindows OS上のコマンドプロンプトと違って、できることにはかなり制限がありますし、使い勝手もよくありません。これ以外にも幾つかCUIのツールを使える機能(CMDやPowerShell、Bashシェルなど)がありますので、それらを使う方がいいかもしれません。
次は「Kudu(クーズー)」というツールを使ってみたいと思います。Kuduは、Azure Webサイトのためのデプロイエンジンプロジェクトです。GitやOneDrive、Dropbox、Visual Studio Team Services、Visual Studio、FTPなど、さまざまなリポジトリやツールなどからWeb Appsに対してコンテンツをデプロイしたり、更新、後処理などを行ったりします。このデプロイ機能については次回触れます。
Kuduは、主にデプロイのためのエンジンですが、それ以外にもWeb Apps環境を管理したり、Azure管理画面の機能を拡張したりすることもできます。そのうちの1つがCUIで操作するデバッグ用のコンソール画面ツールです。CMD(コマンドプロンプト)もしくはPowerShellで操作できます。
Kuduツールを起動するには、Web Appsの[開発ツール]メニューから[高度なツール]を起動します。
このページにはWeb Apps環境の概要が表示されています(KuduツールはWeb Appsごとに起動して利用します)。
上部にある[Environment]メニューを実行すると、実行中のWeb Appsの環境の詳細を確認できます。
[Debug console]メニューから[CMD]を選択すると、Kuduのデバッグ用コンソール画面(コマンドプロンプト)が表示されます。
[CMD]を起動すると次のようになります。デバッグコンソール画面はファイルのブラウズ機能も兼ねていて、コマンドプロンプト上でcdを使ってフォルダを変更すると、上側にあるファイルの一覧リストの内容も自動的に変更されます。ファイルを新規作成/削除したり、アップロード/ダウンロードが行えたりします。
トップにあるメニューから[Process Explorer]を選ぶと、Web Appsの中で動作しているプロセスの一覧が確認できます。
「w3wp.exe」はWindows OSのIISでよく見掛ける「ワーカープロセス」です。Web Appsでは、これがWeb Appsを構成するプロセスのルートとなっていて、その下でWordPressのPHPやMySQLのプロセスが動作していることが分かります。IISのプロセスやその他のOSのプロセスはこのWeb Appsのサンドボックス内からは見えませんし、ユーザーが管理・操作することはできません(PaaSだから当然ですね)。
GUIではなく、PowerShellを使えばCUIでも確認できます。そのためには[Debug Console]メニューで[PowerShell]を選択して起動し、例えば「Get-Process」とすれば、より詳しい情報を確認できます。先ほどの[開発ツール]の[コンソール]と違い、PowerShellならかなりいろいろな操作ができそうです。
※KuduでPowerShellコンソールを使ってみる
PS D:\home> get-process ……プロセスの一覧の取得
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
649 29 487832 1012 604 3.08 8380 mysqld
10253 24 38848 2764 189 3.20 12064 node
342 24 43132 18364 211 7.34 13684 powershell
810 51 36860 5056 256 2.80 5600 w3wp
1665 112 413008 17888 834 90.83 13056 w3wp
PS D:\home> get-process | fl * ……詳細の確認
__NounName : Process
Name : mysqld
Handles : 649
VM : 633622528
WS : 1036288
PM : 499539968
NPM : 29648
Path : D:\Program Files
(x86)\mysql\5.7.9.0\bin\mysqld.exe
Company :
CPU : 3.078125
FileVersion : 5.7.9.0
ProductVersion : 5.7.9.0
……(以下省略)……
Azureではもう1つ、「Cloud Shell」という管理コンソール画面も利用できます(2017年第2四半期から利用できるようになりました)。
これはAzureのリソースを管理するための、Webブラウザベースのシェル(UbuntuのBashシェル。PowerShellは今後実装予定)です。ただし実行中のWeb Appsなどとは別に作られた、独立したVM上で動作するツールであり、Web Appsのプロセスとは特に連携はしていません。Azureファイル共有で接続したファイルを操作するためのツールです。
今回はCUIのコンソール画面ツールなどを使って、Web Appsのプロセスの様子を見てみました。サンドボックスの仕組みを使って、他のアプリから実行環境を隔離し、さらに移動なども簡単に行えるようになっているようです。
Web Appsを使うだけなら、このような仕組みを知らなくても構わないと思いますが、中を知って、ちょっと親しみが沸いてきました。Azureの他のサービスもこうやって中身をのぞいてみたいですね。
次回はWeb Appsのデプロイについて見ていきます。
Copyright© Digital Advantage Corp. All Rights Reserved.