しばやん雑記

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

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 での認証については以下のドキュメントにまとめられ…

GitHub Actions を使って Windows Containers のビルドと Web App for Containers へのデプロイを自動化する

暫く触っていなかったのですが、若干 Windows Containers が必要になりそうな気配を感じ取ったので、最新の Windows Containers 事情と Azure / GitHub での扱いについて再度確認しました。Windows Containers を使って動かしたいアプリケーションは Classic…

Azure Static Web Apps で API 統合を使った際の開発・運用のベストプラクティス

先日 Static Web Apps に Azure Functions 以外の API を簡単に持ち込める機能が追加されました。App Service / Container Apps / API Management の 3 つを追加で持ち込めるようになったので、API が多いアプリケーションも Static Web Apps でホストしやす…

Azure Container Apps の Continuous Deployment 設定が簡単かつ自動生成が適切すぎて感動した話

この間 Azure Container Apps への自動デプロイの構成を Azure Portal の Continuous deployment から設定したら、予想以上に適切な Workflow ファイルが生成されたことに感動したので書いています。あまりにも感動したので Twitter にも書きましたが、リポ…

Azure Static Web Apps に Azure Functions 以外の API を持ち込み可能になったので一通り試した

個人的に GitHub で要望を挙げていた機能でもあるのですが、Static Web Apps の BYOF 機能が拡張されて Azure Functions 以外の API を持ち込めるようになりました。Azure Functions はシンプルなプログラミングモデルを持っているので、簡単な REST API で…

Windows App SDK 1.1 がリリースされたので UWP アプリを移行してビルド自動化まで対応した

Build 2022 合わせで Windows App SDK 1.1 の正式版がリリースされていたようです。あまりリリース自体が話題になっていない気がしますが、UWP アプリケーションからの移行先なので 1.1 対応を行いました。リリースノートを見る限り、割と地味なアップデート…

Geek of Azure Serverless (Build 2022 編) フォローアップ

先週開催された Build 2022 で日本向けセッションとして、ブチザッキの中の人ぶちぞう RD と三宅さんと自分の 3 人で Azure Updates と Azure Serverless を使ったモダンなアーキテクチャについて話してきました。セッションの動画は既に公開されているので…

Azure DevOps で特定のファイルが変更された場合のみ Pipeline を実行させる

Azure Repos を使って Monorepo 構成を採用している場合には、Azure Pipelines はそれぞれのプロジェクト単位で実行させたいので、トリガーの設定でパスを指定して実現します。例として backend というディレクトリが変更された時だけに Pipeline を実行させ…

Azure Container Instances の軽量なオーケストレーションを Durable Functions を使って実現する

Azure には Docker Image を指定するだけで簡単に動かせるサービスがいくつかあり、その中でも Container Instances は非常に起動が早くてシンプルなので利用範囲が広いのですが、オーケストレーターが存在しないので並列処理のように複数立ち上げたい場合に…

Azure Event Hubs SDK に追加された Buffered Producer Client を使って効率的なイベント送信を行う

2022 年 5 月の Azure SDK アップデートを確認していると、Event Hubs SDK に Buffered Producer Client が追加されたという情報を得ました。明らかに面白そうなので、実際に動かして挙動を確認してみました。必要な Event Hubs SDK はバージョン 5.7.0 にな…

Azure Container Apps がカスタムドメインと証明書の追加に対応したので試した

今朝のアップデートで Azure Container Apps でも App Service のように、カスタムドメインを直接割り当てることが出来るようになりました。これまでは Front Door などを使う必要がありましたが、直接 Container App にカスタムドメインを割り当て出来るの…

Windows App SDK 1.1 Preview 3 で追加された Desktop Acrylic と Mica のサポートを試した

何故か Windows App SDK を使っても、Windows 10 や 11 で追加された Desktop Acrylic や Mica といったウィンドウ効果は適用できませんでしたが、先日リリースされた 1.1 Preview 3 でようやく対応したようです。Windows App SDK 1.1 Preview 3 is now avai…

Windows Property System を使って C# から曲情報を取得する

GW なので趣味アプリの開発を行っていると、音楽ファイルに保存された曲情報を取得する必要が出てきたので、Windows Property System を使って実現したという話です。曲情報というのは以下のようにファイルのプロパティから確認出来るメタデータのことです。…

Durable Functions を Azure Container Apps 上でスケーリング付きで実行する方法を検証した

先日 Twitter で以下のようなツイートが流れてきた時に、Azure Container Apps 上で Durable Functions を正しく実行できるのかを調べることを思い出したので一通り検証しました。ツイートで紹介されている Discussion にあるように、AKS であれば特に問題な…

Azure Container Apps の組み込み Authentication を試した

数日前に Azure Container Apps でも App Service / Azure Functions と同様の組み込み Authenticationがサポートされました。App Service Authentication はかなりの高頻度で使っている機能なので、Container Apps でも間違いなく便利に使えるはずです。App…

CsWin32 で Win32 API や COM を使ったアプリケーション開発を効率化する

これまで P/Invoke 定義はドキュメントやヘッダーファイルから手書きすることが多かったのですが、最近は必要な Win32 API や COM インターフェースが多くなってきたので CsWin32 を使って自動生成しています。CsWin32 自体は win32metadata というプロジェ…

NZXT H1 V2 と Alder Lake-S で小型ゲーミング PC を自作した

2 年前に NZXT H1 が発売されたタイミングで Comet Lake-S ベースのゲーミング PC を組んだので、主に beatmania IIDX INFINITAS で遊んできましたが GPU パワーの不足を感じるようになったのと、H1 Version 2 が発売されたので新しく自作しました。古い H1 …

Azure Functions (Windows / Linux) へのデプロイを行う方法と挙動の違いをまとめた

最近は Visual Studio 2022 + C# 以外で Azure Functions を作成することが増えてきました。その場合は主に Visual Studio Code を使ってプロジェクト作成からデプロイまで行うのですが、Azure Functions を実行する OS とデプロイに利用する方法で若干挙動…

Azure App Service の Regional VNET Integration が Basic SKU でも利用可能に

これまで実質的に Premium V2 / V3 が必要だった Regional VNET Integration が Basic でも利用可能になりましたが、例によって使えるかどうかはデプロイされている Scale unit に依存するので簡単にまとめます。正確には Regional VNET Integration と Priv…