しばやん雑記

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

Azure App Serivce の Regional VNET Integration の制約が緩和されて更に便利に

App Service で個人的に一番重要な機能は Regional VNET Integration だと考えていて、この機能の追加によってマルチテナントの App Service でもセキュアなアプリケーション構成が組めるようになりました。Regional VNET Integration については既に何回も…

Terraform Cloud に追加された Dynamic Provider Credentials を Azure Provider で試した

今朝に発表された Terraform Cloud のアップデートで OpenID Connect を利用した認証情報の取得に対応したようです。Dynamic Provider Credentials という名前で紹介されています。GitHub Actions ではほぼ OIDC のみを使うようになりましたが、一番強い権限…

既存 App Service の実行基盤も VMSS に移行され始めた模様

昔にデプロイした Azure App Service の実行基盤はトラディショナルな Cloud Services で構築されているのですが、少し前に Cloud Services ベースで動いていた App Service が VMSS ベースに切り替わっていることに気が付きました。いつかは移行されると思…

Azure Cosmos DB を使って安全にシーケンス番号を生成する

Cosmos DB には組み込みで RDB のようにシーケンス番号を生成する機能は用意されていないので、基本的には GUID / UUID を使うことになるのですが、稀にシーケンス番号が欲しくなることがあります。RDB というか SQL Server の場合は以下のようにシンプルに…

Azure Container Apps のカスタム DNS サフィックスを試した

何時から実装されていたのかは分からないのですが、Azure Container Apps の Container Apps Environment 単位でワイルドカードドメインを割り当てることで、Container Apps 単位でカスタムドメインが一括で利用できる機能が追加されています。App Service E…

WPF で Data Binding と Command を使ったアプリケーションをシンプルに書きたかった話

WPF

数年前から WinQuickLook という Windows アプリケーションを趣味で開発しているのですが、内部実装をガラッと変えた新バージョンの開発進捗が著しく悪いことに悩んでいました。現在 V4 というソリューションで絶賛開発中となっていますが、リリース日は未定…

M2 iPad Pro が iPadOS 16.2 アップデートで Wi-Fi 6E に対応したらしいので買ってみた

去年に引っ越した際にフレッツ光クロスの導入と 10 GbE + Wi-Fi 6E 対応ルーターへの買い替えを行ったので、いつでも Wi-Fi 6E デバイスを迎えられる環境でしたが、技適の関係で Wi-Fi 6E を掴めるデバイスが手元にゼロという悲しい状態でした。新しく購入し…

2022 年の振り返りとフリーランス 7 年目の終わり

毎年のことながら 1 年がとても早く感じますが、年末にまとめ記事を書くようにしているので書きます。今年は長年住んだ墨田区から港区へ引っ越しを行ったり、そして父親が突然他界したりとプライベートでの変化が多い年でした。仕事面ではありがたいことに非…

Azure Cosmos DB と Change Feed を支える LSN の話

2022 年も仕事で Cosmos DB と Change Feed を無限に使ってきたので、2022 年最後の日のブログはそれに相応しい Cosmos DB の話題で締めたいと思います。*1何気なく仕事で Cosmos DB と Change Feed を使っていると、時々 Change Feed は変更履歴を別で持っ…

2022 年に GitHub Sponsors 経由で頂いた支援について

Twitter で今年になってちょいちょい GitHub Sponsors の話を目にしたので、少なくない支援を頂いている自分としても書いてみることにしました。2022 年に GitHub Sponsors 経由で頂いた支援は 218,578 円でした。実は去年より多くなっているのですが、それ…

.NET Conf 2022 Recap Event 福岡で .NET 7 時代の Windows アプリケーション開発について話しました

先月の話にはなりますが .NET Conf 2022 の Recap Event として福岡で開催されたイベントで、Windows アプリケーション開発について話しました。残念ながらセッション動画は公開されませんが、使用したスライドは以下で公開しています。セッションは以下のよ…

App Service Authentication (Easy Auth) と ASP.NET のフォーム認証を共存させつつ利用する

App Service Authentication と ASP.NET を組み合わせて使うと、自動的に Thread.CurrentPrincipal に App Service Authentication で認証したユーザー情報を格納してくれるので、アプリケーション側では Request.IsAuthenticated や User.Identity でログイ…

Azure Functions の Cosmos DB Extension v4 が GA したので v3 からの移行を確認した

Preview が公開されてから 1 年以上が経過しましたが、ようやく Azure Functions の Cosmos DB Extension v4 が正式リリースされました。信頼性とパフォーマンスが大幅に改善、更に機能が追加された Cosmos DB SDK v3 ベースになっているので、現在 Extensio…

NuGet 6.4 の Central Package Management を使って複数プロジェクト間のバージョン管理を改善する

Visual Studio 2022 17.4 以降に含まれている NuGet 6.4 では、複数プロジェクトでのバージョン管理を一元化出来る Central Package Management が実運用可能なレベルとして提供されています。NuGet などのパッケージマネージャを利用する際の共通の悩みが、…

Azure Functions の Retry Policy 機能の GA に伴う仕様変更と Cosmos DB Trigger における対応方法

しばらく前から Azure Functions で Event Hub Trigger と Timer Trigger 以外で Retry Policy を設定している場合に、以下のような警告が起動時に出るようになりました。 [2022-11-19T08:19:24.241Z] Soon retries will not be supported for function 'Fun…

開発体験を向上させる Azure Functions の Node.js と Python の新しいプログラミングモデルを試した

Azure Functions の特徴として各サービスとのバインディングとトリガーの存在があります。Function の実装ではどのバインディングやトリガーを使っているかという情報を Function Host やスケーリングを担うサービスに伝える必要があり、そのためのメタデー…

Ignite 2022 周辺で発表された App Service のアップデート

既に Ignite 2022 が終わってしばらく経ってしまいましたが、App Service 周りで興味深いアップデートがひっそりと行われているので、Ignite の前後に発表された内容を含めて個人的に気になったものだけまとめます。Ignite 2022 に合わせて発表された App Se…

Project Volterra 改め Windows 開発キット 2023 を購入した

Build 2022 で発表されてから音沙汰がなかった Windows on ARM 開発 PC である Project Volterra ですが、突然 Windows 開発キット 2023 として発表されて、なんと日本でも発売が開始されたので購入しました。こういった開発者向けデバイスが最初から日本で…

Digital Decision 2022 Engineer Night で登壇しました

既に登壇してから 2 か月が経過しているのに、今更ですが Digital Decision 2022 Engineer Night で登壇した話です。自分が登壇したイベントのフォローアップは絶対書く誓いをしているので遅れていても書きます。当初は自分は 1 セッションだけ担当する予定…

Azure Cosmos DB の物理パーティションを深く理解する

Cosmos DB を正しく利用する上で一番重要となるのがパーティションキーの設計ですが、Cosmos DB には一言でパーティションと言っても論理パーティションと物理パーティションの 2 種類が存在しています。この辺りの話は公式ドキュメントでも軽く触れられてい…

GitHub Actions / Azure Pipelines の Windows Runner で Azurite と Cosmos DB Emulator を利用する

以前に Azurite と Cosmos DB Emulator を使って GitHub Actions / Azure Pipelines でテストを実行する方法を書きましたが、Ubuntu Runner と Service Containers を利用した方法だったので Windows Runner では実質的には使えない方法でした。理由としては…

自宅のインターネット環境を 10GbE と Wi-Fi 6E で強化した

引っ越しを機にフレッツ 光クロスを引いて 10Gbps の環境を作っておいたのですが、使っていたルーターが 10GbE が 1 つしかなかったので Wi-Fi 6 の 2.4Gbps 上限で使わざるを得ませんでした。Wi-Fi 6 でも周りに 5GHz が全く飛んでいない場所なので、実測は…

Azure で ASP.NET の Session State を利用する際のベストプラクティスを確認した

最近は移行絡みで Azure に ASP.NET アプリケーションを Session State 付きでデプロイすることが多いので、Azure 上で Session State を使う際のベストプラクティスを確認しておきました。この記事で触れるのは .NET Framework の ASP.NET であって、.NET 6…

Alder Lake 世代の Core i7 が載った NUC12WSHi7 と Solidigm の SSD を買ってみた

朝起きて Twitter を眺めていると Alder Lake 世代の Intel NUC が秋葉原に入荷したという情報が入ってきました。ほぼ毎回このパターンで Intel NUC を買っている気がしますが、今回も抗えませんでした。NUC には WSL 2 や Docker、Visual Studio Preview な…

新居のインターネット回線としてフレッツ 光クロスを契約した

これまでのマンションが高さの関係上、フレッツ光の 1Gbps のプランしか引けなくて残念だったのですが、引っ越しによって問題が諸々クリアになったので、同時に光クロスへの変更を行いました。光配線だったので VDSL とは違いそこまでの不満はなかったのです…

Hack Azure! #9 - 一度知ったら手放せない至高の開発体験!Azure × GitHub フォローアップ

先週になりますが、久し振りに Hack Azure という形でイベントを開催しました。過去の回では Azure の各サービスにフォーカスしたものが多かったのですが、今回は開発体験という視点から、各スピーカーが好きな Azure と GitHub の組み合わせを紹介しました…

Azure に実装されている 3 つの Easy Auth (Web Apps / Static Web Apps / Container Apps) の実装を再確認した

アプリケーション開発で地味に難しい認証周りですが、Azure の Web Apps / Static Web Apps / Container Apps には認証機能が組み込まれているため、コードを修正することなく追加できるので非常に便利です。既に何回もブログで扱っているので、基本的な使い…

Windows App SDK 1.1 に移行したアプリを Microsoft Store で公開したらクラッシュが多発して困った話

以下のエントリで書いたように、UWP アプリを Windows App SDK 1.1 に移行したので Microsoft Store で公開したのですが、公開直後からクラッシュレポートが大量に発生してしまいました。今は一通り対応が完了していて、大きな問題は発生していない状態なの…

各言語向けの Azure Cosmos DB SDK がサポートしている機能まとめ(随時更新)

Azure Cosmos DB は複数の API に対応したサービスとなっているので、利用している言語向けに Cosmos DB ネイティブの Core (SQL) API の SDK が提供されていなくても、代わりに Mongo や Cassandra の SDK を使って Cosmos DB を使ったサービスを開発するこ…

Managed Identity と GitHub Actions OIDC を使って Azure Container Registry の Admin user を不要にする

Azure でコンテナー系のサービスを利用する上で必須となる Azure Container Registry ですが、実際に利用する上で割とハマりがちなポイントとして Admin user の存在があります。Azure Container Registry での認証については以下のドキュメントにまとめられ…