しばやん雑記

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

Build 2021 付近で発表された App Service 関連のアップデート

今年も Build がオンラインで開催されましたが、例によって Static Web Apps の GA は Build の 2 週間前だし、App Service チームはイベント合わせで新機能のリリースを行わない方向になっているので、あまりキャッチアップする内容はありませんが、細々したものがありました。

個人的には .NET 6 に対応した Azure Functions v4 のプレビューが開始されるかと思っていましたが、もう少し開始までは時間がかかりそうです。

直感的になった Networking 設定 (Preview)

App Service はここ 1,2 年で急速にネットワーク周りの機能が増えたので、Azure Portal での設定が増えて若干わかりにくくなっていましたが、Preview 版の設定画面が追加されて直感的になりました。

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

特に毎回説明が必要だった Access Restriction (Service Endpoint) や Private Endpoint、そして Regional VNET Integration の関係が分かりやすくなったと思います。

ドキュメントも若干更新された気配があります。Inbound と Outbound で分けて書かれているので理解しやすいと思います。若干用語も整理されたっぽいです。

App-assigned address が若干わかりにくいですが、IP SSL を有効にすると専用の Public IP が割り当てられるので、それのことを指しています。これに関しては専用の設定があっても良いなと思いました。

Managed Certificate が GA

長いプレビューでしたが Zone Apex に対応してから GA まで早かった Managed Certificate です。

Zone Apex に対応した時に試したエントリがあるので、興味がある方は以下を参照ください。

Azure Portal からは Preview の表記が取れています。ワイルドカードや SANs 証明書は取得できないので、必要な場合は App Service Certificate や Let's Encrypt などを使う必要があります。

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

最初の更新が上手くいったことを確認してからの GA かと思っていましたが、これに関しては Build 合わせで GA にしたっぽいです。まだ更新成功を見届けていないので若干が残ります。

App Service Environment v3 が GA

非常に地味なプレビューが続いていましたが ASE v3 (Isolated v2) が GA です。ネットワーク周りが ASE v2 に比べると大幅にシンプルになっています。

ドキュメントはまだプレビューのままですが、興味のある方は参照してください。

とはいえ自分がプレビュー初期に試したときは全然デプロイが出来なかったので、それ以来ほぼ触っていませんでした。最近はマルチテナントの App Service で十分なケースが多いです。

Function App プロジェクトにアイコンが追加

これは Visual Studio 2019 16.10 で導入されたようですが、ソリューションエクスプローラーの Function App プロジェクトにアイコンが付くようになりました。

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

これまではクラスライブラリと同じだったはずです。処理の共有などでクラスライブラリを使っていると、ぱっと見どれが Function App プロジェクトか分からない感じでしたが、16.10 からは一目でわかります。

Visual Studio での Azure Functions .NET 5 (Isolated) 開発体験の向上

これまで Visual Studio からシームレスなデバッグ実行が行えず開発体験が悪かった .NET 5 (Isolated) な Azure Functions ですが、GA から数か月かかりましたがやっと対応しました。

すぐに Visual Studio のアップデートをしてしまうので、もはやいつから使えるようになっていたのかわからないのですが、Anthony が 16.10 から対応予定と書いていたので今回対応したのだと思います。

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

コマンドラインでデバッグ用フラグを付けて実行する必要なく、Visual Studio から F5 実行すればサクッと Azure Functions アプリケーションにデバッガーをアタッチ出来ます。

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

もちろん開発が終わった後は Visual Studio から Azure Functions へ直接デプロイすることも可能でした。16.10 で .NET 5 (Isolated) へのサポートは完了したとみてよいでしょう。

Durable Functions の新しい Storage Provider が Preview

前から GitHub の Repo 自体はオープンになっていて論文も出ていましたが、Durable Functions の新しい Storage Provider がプレビュー公開されました。

Event Hubs と FASTER ベースで高いスループットを実現する Netherite と、Azure 以外やエッジ環境での動作も可能な SQL Server ベースの Provider です。

パフォーマンスとしては Netherite >>> Azure Storage > SQL Server のようです。とはいえ Azure Storage の Provider は多くの場合、これまで通り最適な選択肢であることは間違いないでしょう。

Netherite は性能は優れていますが、Consumption Plan に非対応*1なので高速なスケーリングが必要な場合は Premium Plan と Runtime Scale Monitoring の設定が必須です。この辺りは注意が必要ですね。

Durable Functions の PowerShell サポートが GA

Durable Functions は Python 版に続いて PowerShell サポートが GA しました。

個人的にはユースケースがイマイチ理解できていないですが、Azure PowerShell との組み合わせでは便利に使えるのかもしれません。

App Service on Azure Arc が Preview

以前は App Service Kubernetes Environment と呼ばれていたようですが、今回の Public Preview で App Service on Azure Arc となったようです。

と言っても実体は Kubernetes 上で動いているので前の名前の方が適切だとは思います。現状は Linux のみ対応かつスケーリングは KEDA が使われていて、最低限の機能のみ使えるという状態のようです。

少なくとも Azure を使っている場合には通常の App Service を使うのが良いと思います。

個人的には同じものを使って、今 Service Fabric Mesh で動いている Azure Functions の Linux Consumption Plan を Kubernetes に移行されるのではないかと思っています。

*1:要するに Scale Controller が非対応