昨日、まだ出ないだろうと思ってとりあえずな記事書いたところで、
正式なFunctionsの拡張機能が出たようです。
https://blogs.msdn.microsoft.com/webdev/2016/12/01/visual-studio-tools-for-azure-functions/
注意点として
- プレビューであること
- Visual Studio 2015 Update 3用であること
- Azure 2.9.6 .NET SDKがインストールされていること
プロジェクトテンプレート
FunctionApp1という名前で作ってみたところ、以下のようなファイルが
Properties appsettings.json FunctionApp1.funproj host.json Project_Readme.html
これだけだと、ファンクションそのものがないからの状態なんですが、
デバッグ開始(F5)してみると
Azure-Functions-Cliをダウンロードしてくるぞ?と聞かれました。
いいよとすると、コマンドプロンプトのように、ローカルホスト用であるfunc.exeが起動
Listening on http://localhost:7071/ Hit CTRL-C to exit... Reading host configuration file 'c:\Projects\FunctionApp1\FunctionApp1\host.json' Generating 0 job function(s) Starting Host (HostId=sb-v2-functionapp1, Version=1.0.0.0, ProcessId=9404, Debug=False) No job functions found. Try making your job classes and methods public. If you're using binding extensions (e.g. ServiceBus, Timers, etc.) make sure you've called the registration method for the extension(s) in your startup code (e.g. config.UseServiceBus(), config.UseTimers(), etc.). Job host started File change of type 'Created' detected for 'c:\Projects\FunctionApp1\FunctionApp1\data' Host configuration has changed. Signaling restart. Stopping Host Job host stopped Reading host configuration file 'c:\Projects\FunctionApp1\FunctionApp1\host.json' Generating 0 job function(s) Starting Host (HostId=sb-v2-functionapp1, Version=1.0.0.0, ProcessId=9404, Debug=True) No job functions found. Try making your job classes and methods public. If you're using binding extensions (e.g. ServiceBus, Timers, etc.) make sure you've called the registration method for the extension(s) in your startup code (e.g. config.UseServiceBus(), config.UseTimers(), etc.). Job host started Debugger listening on [::]:5858
特に何もファンクションがないので、Jobは0となってます。
Functionsを追加
Blogに書かれているように
ソリューションエクスプローラー>プロジェクト>コンテキストメニュー>追加>New Azure Function
とすると、テンプレートがずらずらーっと並んでるので追加。
再びデバッグ開始で、
Listening on http://localhost:7071/ Hit CTRL-C to exit... Reading host configuration file 'c:\Projects\FunctionApp1\FunctionApp1\host.json' Generating 1 job function(s) Starting Host (HostId=sb-v2-functionapp1, Version=1.0.0.0, ProcessId=7960, Debug=True) Found the following functions: Host.Functions.HttpTriggerCSharp Job host started Http Function HttpTriggerCSharp: http://localhost:7071/api/HttpTriggerCSharp
というわけで、ブレークポイントを設定してブラウザから
http://localhost:7071/api/HttpTriggerCSharp
にアクセスしてみると・・・
おおー、変数展開、呼び出し履歴、タスク、診断ツール
と普通にいけてるじゃないですか!!
ローカル環境での実行なので、AzureFunctionsをデプロイしてなくてもいいし。
極端な話、ネットワークにつながってなくても書ける・・・かもしれない?
デプロイ
Blogに書かれているように
ソリューションエクスプローラー>プロジェクト>公開
AppServiceとしてを選ぶと、既存のFunctionsAppのみアイコン付きで出てきました。
そのまま、AppServiceの感覚でデプロイ。
ここからは、せっかく書いた昨日の記事が生きてくるかもしれません。