Azure Functions をリモートデバッグしながら編集する on Visual Studio 2015

Azure FunctionsがGAしたところで、Visual StudioのFunctions向け拡張機能はまだ出てきていませんが、それまでにVisual Studio(拡張機能)が持っている便利な機能を何か使う方法はないか?ということで。

必要なもの

最初に・・・

Visual Studio 2015を起動していきなりサーバーエクスプローラーを起動します。
出てない場合は、メニュー>表示>サーバーエクスプローラー

資格情報の入力

Azureサブスクリプションが関連付けられているアカウントでログインしておきます。何も出ない場合は、(サーバーエクスプローラー>Azure>コンテキストメニューから)サブスクリプションの管理を開きチェック状態を確認します。
2016-12-01_03

リモートデバッグ

サーバーエクスプローラーのAzureノードから、AppService→「Function App」があるリソースグループ>Functionsのアイコンからコンテキストメニューを表示するとデバッガーのアタッチというメニューがあります。これを選択します。

2016-12-01_04

しばらく待ちます。これはAppService上でリモートデバッガを起動してそこを経由させてアタッチとなるので、少し時間がかかります。

2016-12-01_05

上の画像は、Kuduのプロセスで見た感じ。
リモートデバッグ用のプロセスが起動しています。
これはポータルでは、こんなところに相当します。

2016-12-01_06

上記はポータルのAppService上のアプリケーションの設定にある一部です。

さて、アタッチできて満足しててもよいのですが、
ブレークポイントで息の根・・・じゃなかった、プログラムをブレークしてみたいですね。

リモートファイルを開く

先ほどのサーバーエクスプローラーから、csxファイルを選んでコンテキストメニューを表示して、開くを選びます。

2016-12-01_07

さて開けたところで、デバッグへ。

デバッグ(ブレークポイント)

開いたファイルにブレークポイントを設定します。
2016-12-01_08

このとき、シンボル、モジュールが読み込まれていない状態になっていますが気にしないことにします。というのも、Functionsは常時起動しているわけではないからです。なので、アクセスさせてみましょう。

実行!(ポータル)

ポータルから、テスト実行ボタンを押してみます。
(このほうがリモートしてる感じ出るからね

2016-12-01_09

ポチっと

2016-12-01_10

きたーっ!!

2016-12-01_11

 

というわけで、ここまでです。

ここからデバッグした状態のままリモートファイルを編集することもできます。
インテリセンスは不完全ですが、テキストエディタよりはいいでしょう。
何よりデバッグした状態で、変数を確認することができますので、
想定で実装するよりも、ずっと捗るんじゃないかと思います。

※編集した場合、保存して、同期をしないとサーバーには反映されません。

アドベントカレンダーが始まって、盛り上がってきていますが、正式なToolには期待しつつも、どんなものか?触ることができたら、またきっかけになれば幸いです。