こんにちは、さとうなおきです。最近はすっかり、フィギュアスケートを取り上げたテレビアニメ「ユーリ!!! on ICE」にはまっていて、主人公 勝生勇利の出身地 長谷津町のモデルである佐賀県唐津市に聖地巡礼して、カツ丼を食べたいなと思っています。
さて、「週刊Azureなう」では、先週の1週間に発表されたMicrosoft Azureの新機能から、筆者の独断と偏見で選んだトピックについて紹介していきます。
Azure Functions:Visual Studio、CLI/Visual Studio Codeによるローカル開発をサポート
Azure Functionsは、C#、Node.js、Pythonなどで書かれた「関数」を実行できる、サーバレスアーキテクチャのサービスです。Azure Functionsは、11月のConnect();カンファレンスで一般提供(GA)になったばかりです。
Azure Functionsは、Azureポータルに統合されたウェブブラウザ内で動作する統合開発環境(IDE)で関数のコードを簡単に編集できます。とはいえ、開発者マシン内でローカルにAzure Functionsの関数を開発、実行、デバッグしたい、というニーズがありました。
今回、GA時に予告されていた通り、Visual StudioでのAzure Functionsの開発を可能にする「Visual Studio Tools for Azure Functions」のプレビューがリリースされました。現時点では、Visual Studio 2015 Update 3、Microsoft Web Developer Tools、Azure SDK for .NET 2.9.6がインストールされた環境で、Visual Studio Tools for Azure Functionsを利用可能です。
最初に「Azure Functions(Preview)」プロジェクトを作成し、そのプロジェクトに関数を追加することができます。ウェブベースのIDEと同様に、さまざまな言語、バインディング向けのテンプレートが用意されているのが便利です。関数の作成後は、関数の編集、ローカル実行/デバッグ、Azureへの発行(デプロイ)、発行済みの関数のリモートデバッグが可能です。
なお、Visual Studio Tools for Azure Functionsは、後述するAzure Functions CLIをローカル実行/デバッグのために使っており、最初にローカル実行/デバッグを行った際にAzure Functions CLIがインストールされます。
Visual Studio Tools for Azure Functionsはまだ初期プレビューの段階であり、制限事項や既知の問題もあります。Azure Functionsに興味のあるVisual Studioユーザーの方は、是非Visual Studio Tools for Azure Functionsを試して、フィードバックをお伝えください。
詳細は、.NET Web Development and Tools Blogのポスト「Visual Studio Tools for Azure Functions」をご覧ください。
Visual StudioでのAzure Functions開発
また、Azure Functions CLIを使うことで、Visual Studio Codeなどのお好みのエディタと組み合わせて、コマンドラインでローカル開発を行うこともできます。現時点では、Azure Functions CLIはWindows上でのみ動作しますが、今後、macOS、Linuxのサポートも計画されています。
Node.js 6.x LTS以降がインストール済みの環境で、コマンド「npm i -g azure-functions-cli」を実行して、Azure Functions CLIをインストールできます。これによって、クラウド上のAzure FunctionsサービスやVisual Studio Tools for Azure Functionsで使われているのと同じAzure Functionsランタイム環境が利用可能になります。
コマンド「func init」実行後に、コマンド「func new」を実行し、Yoemanベースのインターフェースでテンプレートを選択すると、関数自体や設定ファイルのfunction.jsonなど、Azure Functionsに必要な一連のファイルが自動生成されます。それから、コマンド「func run」で、その関数をローカル実行/デバッグできます。
次の画面は、Visual Studio CodeでJavaScirptの関数にブレークポイントを設定し、Visual Studio Codeの統合ターミナルでコマンド「func new」をデバッグモードで実行しています。
詳細は、Azure App Service Team Blogのポスト「Running Azure Functions Locally with the CLI and VS Code」をご覧ください。
Visual Studio CodeでのAzure Functionsのデバッグ