しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Azure Functions v2 は .NET Standard から .NET Core へ

ちょっと前に Azure Functions v2 で netcoreapp2.1 が使えるようになったと書きましたが、気が付いたらテンプレートもアップデートされ、デフォルトが netcoreapp2.1 になっていました。

当時はデバッグに問題がありましたが、最新のツールへアップデートすることで解消されました。

これで Azure Functions v2 は晴れて .NET Core 2.1 対応と言うことが出来そうです。使う前に確認は必要なので、メモとして確認のポイントを残しておきます。

実際に使う前に Visual Studio にインストールされているツールが最新版か確認しておきます。10/17 にリリースされた 15.10.2046.0 以降なら、デバッグ時に謎エラーが発生することなく実行できます。

f:id:shiba-yan:20181024010052p:plain

ツールのアップデート後は適当に新しく Azure Functions プロジェクトを作成するダイアログを表示します。このタイミングで新しいランタイムとテンプレートがある場合にはアップデートが行われます。

左下でぐるぐるが回っている場合には、アップデートが行われてるので少し待ちます。

f:id:shiba-yan:20181024005748p:plain

アップデートの完了後、最新の情報に更新すると新しいテンプレートが使われるようになります。

適当に v2 を選んで Azure Functions プロジェクトを作成すると、最新の Azure Functions SDK と .NET Core 2.1 SDK が使われていることがソリューションエクスプローラーから確認できます。

f:id:shiba-yan:20181024010033p:plain

netcoreapp2.1 なので当然ながら .NET Standard のライブラリはインストールして使えますし、Span<T> や Memory<T> などの新しいクラスも利用可能です。

プロジェクトの設定からデバッグ周りの設定を弄る必要もありません。

f:id:shiba-yan:20181024010411p:plain

Azure Functions のランタイム側も少し更新されたのか、Http Functions が許可するメソッドが確認出来るようになっていました。多分、最近のアップデートで追加されたものだと思います。

f:id:shiba-yan:20181024010356p:plain

netcoreapp2.1 にしたとしても、何の違和感もなく .NET Standard 2.0 の時と同じようにデバッグが出来ますし、互換性面で問題になる要素はないはずです。

元々 v2 へのアップデートが推奨されていることもあるので、同時に netcoreapp2.1 にしてしまうのはありだと思います。サイズも小さくなり、使える API も増えるのでアップデートするメリットは割と大きいです。