しばやん雑記

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

Azure

Azure Functions v4 が正式リリースされたので既存の環境とアプリケーションをアップグレードする

Visual Studio 2022 のローンチイベントで .NET 6 の GA と同時に Azure Functions v4 の GA が発表されました。これまでは .NET のリリースから遅れて対応するバージョンの Azure Functions がリリースされていましたが、今回は Day 0 サポートがアピールポ…

Azure Container Apps の特徴と Azure Web Apps / Azure Functions との違い

Ignite 2021 で発表された Azure Container Apps について、実際に触って調べたのでいろいろと所感を書きます。特に Web Apps / Azure Functions との違い・使い分けについて重視しました。名前から分かるようにコンテナーの実行に特化したサービスです。既…

Ignite 2021 で発表された Azure App Service のアップデート

App Service は Build や Ignite に合わせてアップデートを発表することは少なく、むしろずれて発表することの方が多い傾向にあるのですが、今回はアップデートのまとめブログが公開されていました。先日も Availability Zones 対応が発表されましたが、イベ…

Static Web Apps に追加されたカスタムロールの割り当て機能を試した

Static Web Apps には全てのプランで使える組み込み認証 + ロール管理機能と、Standard 以上で使えるカスタム認証機能がありますが、Azure AD B2C や OpenID Connect Provider を使ったカスタム認証の場合は、ロールは認証済みしか使えなかったので高度なア…

Hack Azure! #7 - 次世代 Serverless アプリケーションアーキテクチャ!フォローアップ

App Service / Azure Functions の Availability Zones 対応が GA となり、今後のアーキテクチャ設計への大きな変化となることは確信していたので、この辺り話したいな思っていたら話すことになったのが今回です。要するに PaaS / Serverless で Availabilit…

Azure Static Web Apps と Front Door の組み合わせが正式にサポートされたので試した

少し前に App Service Authentication と Front Door や Application Gateway を組み合わせた時の問題と解決法を書きましたが、ほぼ同じアーキテクチャの Static Web Apps では当時は回避方法が無く利用困難でした。Static Web Apps はグローバルに分散され…

Cosmos DB .NET SDK v2 の廃止と Azure Functions Cosmos DB Extension v4 プレビュー

少し前に Azure Cosmos DB .NET SDK v2 が 2024 年 8 月 31 日で廃止されることが発表されました。これで API 設計がイケてない Microsoft.Azure.DocumentDB 関連のパッケージがついに廃止されます。移行先となる Microsoft.Azure.Cosmos は十分な実績があり…

Azure Front Door や Application Gateway と App Service Authentication を組み合わせて利用する

App Service を利用したアーキテクチャでは、フロントエンドに Front Door や Application Gateway といった L7 のロードバランサーを追加する構成を組むことがそれなりにあります。特に Front Door は CDN と L7 ロードバランサが組み合わされたサービスな…

Azure App Service から Private Endpoint を利用する際の設定がシンプルになった

先日 Azure App Service のゾーン冗長対応を確認していた時に気が付いたのですが Regional VNET Integration を Azure Portal から設定すると、デフォルトで App Service からの Outbound トラフィック全てを VNET にルーティングする設定が有効になっていま…

Application Insights の Azure AD 認証 / Managed Identity 対応を試した

久し振りに Application Insights SDK for .NET のリリースノートを眺めていたら Azure AD 認証に対応したと記載があり、興味を持ったので設定と動作を試しておきました。これまで InstrumentationKey があればテレメトリを送信出来ていましたが、Azure AD …

更に高い可用性を実現する Azure App Service の Availability Zones 対応がリリース

これまで App Service Environment は Availability Zones に対応していましたが、ついにマルチテナント型の App Service でも Availability Zones に対応しました。これで複数のゾーンに分散してアプリケーションをデプロイすることで、マルチリージョンよ…

Azure Front Door Premium から Static Web Apps へのアクセスを Private Endpoint で保護する

少し前に Static Web Apps の Private Endpoint 対応がプレビューとして公開されました。Static Web Apps が GA のタイミングで使えるという話だったのが遅れてリリースされたものになります。Private Endpoint を使うことで Express Route を経由して Priva…

Azure Cosmos DB を ASP.NET Core の分散キャッシュのバックエンドとして利用する

少し前に Cosmos DB を ASP.NET Core の Distributed Cache Provider として使うライブラリの正式バージョンがリリースされました。ASP.NET 向けにも同じようなライブラリは出ていましたが、こちらは Cosmos DB SDK v3 で構築された最新版です。重要なことは…

GitHub Actions / Azure Pipelines 上で Azurite と Cosmos DB Emulator を使ったテストを実行する

GitHub や Azure DevOps を使った開発フローにテスト実行を組み込むのは一般的に行われていると思いますが、Azure Storage や Cosmos DB などに依存するテストを実行する際には、実際のリソースにアクセスさせるのではなくローカルで完結させたいことが多い…

App Service Authentication で Azure AD と Microsoft Account を使ったログインを実装する

App Service Authentication は非常に便利でかなり頻繁に使っていますが、基本はシングルテナントの利用が多く、Microsoft Account を使ったログイン方法に関してはこれまで試したことが無かったのと、NuGet のログイン画面を見て実現方法に興味を持ったので…

新しく Azure Durable Functions に追加された Netherite Storage Provider を一通り試した

これまで Azure Storage (Queue / Table) が使われてきた Durable Functions の Storage Provider ですが、今年に入ってからパフォーマンス重視の Netherite とポータビリティ重視の MS SQL が公開されています。Azure Functions 上で動かす場合には MS SQL …

Run From Package と Managed Identity を使った App Service / Azure Functions のデプロイ戦略

App Service / Azure Functions のシークレットを安全に扱う際に利用する Key Vault Reference が User Assigned Managed Identity に対応しつつ、Linux 周りであった色々な制限が削除されたのと同時に、突然 Run From Package でも Managed Identity が使え…

Azure Functions Linux の Custom Image でベースとして利用可能な Docker Image について

Azure Functions の Linux では標準で用意されている Docker Image をベースにして、独自に必要なパッケージをインストールして実行環境をカスタマイズ出来るようになっています。ドキュメントでは Custom Image と呼ばれていますが、Azure Portal から Azur…

Durable Functions を使ってタイマーで起動される処理の開始時間をランダムに遅延させる

Azure Functions で TimerTrigger を使って特定の時間に起動される処理が増えると、それらはほぼ同時に実行されるため外部 API の呼び出し時にスロットリングが発生しやすくなります。特に Azure Functions は同一 Stamp に載っていると Outbound IP が被り…

Azure Functions の開発環境を Visual Studio Code の Dev Container を使って構築する

Azure Functions は C# と Node.js を使う場合には開発環境をサクッと構築できるのですが、今回 Python を使って開発しようとしたときに開発環境で割とはまったので、自分が最適だと思った VS Code の Dev Container を使う方法をメモしておきます。開発環境…

Azure App Service の .NET 6 Early Access と Azure Functions v4 の Early Preview が開始

相変わらず Build 2021 といった大型イベントと関係なくアップデートが行われる App Service と Azure Functions ですが、以前にブログで予告されていた通り夏前に .NET 6 Preview 4 と Azure Functions v4 の Early Preview が開始されました。App Service …

Azure Pipelines を使った Terraform 1.0 移行時の注意点

先日ついに Terraform が 1.0 に到達して GA したというニュースが飛び込んできましたね。個人的には Terraform は 1.0 にならない系のプロダクトだと思っていましたが違っていたようです。Today we are announcing the GA release of #Terraform 1.0. This …

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

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

Hack Azure! #6 - Static Web Apps GA 祭り! フォローアップ

何故か Build 2021 の開催 2 週間前という謎のタイミングで Static Web Apps が GA したので、Hack Azure! #6 として三宅さんを中心に話す会を開催しました。App Service / Azure Functions チームとほぼ同じ中の人なので、リリースをイベントに合わせる必要…

Azure Cosmos DB Conf で Change Feed を中心としたアーキテクチャの設計と実装について話しました

今回が初の開催となる Azure Cosmos DB Conf で三宅さん (@kazuyukimiyake) と一緒に Change Feed を中心としたアーキテクチャの設計と実装について話しました。Cosmos DB の利用シーンの幅広さを実感出来るようなセッションが多いので、是非他のセッション…

Azure CDN / Front Door の Subdomain Takeover 対策について

少し前に Azure CDN か Front Door を利用しているユーザー向けに以下のようなメールが届いていると思います。運用中の CDN / Front Door に関しては影響はないですが、削除する前にそれらをポイントしている DNS レコードを前もって削除しないといけなくな…

Microsoft Build of OpenJDK を Azure App Service にインストールして動かしてみた

ここ数日盛り上がり気味の Microsoft がビルドした OpenJDK ですが、現状の App Service はバージョンによっては Oracle と Azul が混在しているのが解消されるかと期待しています。まだ Container Image が公開されていないので、アプリケーションで使うに…

Azure Functions の Binding / Trigger で必要なシークレットをより安全に扱う

Azure Functions は非常に便利ですが、Azure Storage や Cosmos DB などの Binding / Trigger を使う際に必要となる接続文字列は、管理を考えると若干扱いが面倒な部分があります。App Settings に直接値を設定するのが簡単ですが、権限管理という観点では値…

Hack Azure! #5 - Geek of Azure Serverless フォローアップ

Ignite 2021 では特にアップデートがなく、なかなか話す機会が無かった Azure App Service や Azure Functions といった代表的な Azure Serverless なサービスについて、Hack Azure! #5 で話をしました。これまでは大体ゲストを呼んで話していましたが、App …

Azure AD B2C にカスタムドメインを設定して MSAL (C# / JavaScript) から使ってみた

恐らく Azure AD B2C を使っている人全員が待ち望んでいたカスタムドメイン対応ですが、Front Door と組み合わせる形にはなりますが Preview として公開されました。単純に Front Door をリバースプロキシとして使うだけなのですが、割と現実的な落としどこ…