しばやん雑記

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

Storage

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

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

Azure Storage の Blob Inventory をイベントベースで Azure Functions から利用する

Azure Storage の Blob は大量のデータをスケーラブルかつ安く保存することに特化されているのと、実際には Data Lake Storage Gen 2 以外は名前空間を持っていないので、一般的なファイルシステムのように特定ディレクトリ以下のファイル数やサイズなどの情…

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

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

障害に強い Azure の運用を考える (2021 年版)

Azure の日本リージョン 7 周年の日に Japan East のストレージ障害が発生するという、なんともアレな出来事がありましたが、障害発生後はアーキテクチャを見直すいい機会だと思うので色々書きます。まだ RCA は公開されていないですが、おそらくぶちぞう RD…

Azure Front Door Premium (Preview) で追加された Private Link 対応を試した

これまで Azure Front Door には SKU が存在していませんでしたが、先週に Front Door に新しく Standard と Premium の SKU が追加されたバージョンが Public Preview として公開されました。事前に REST API リファレンスには登場していたので知っていまし…

Azure Data Lake Storage の Query Acceleration が GA になったので試したら最高だった

ブチザッキによると Build 2019 での Mark Russinovich 御大のセッションで発表されていた Blob の内容に対してクエリを実行できる、当時は Quick Query と呼ばれていた機能が Ignite 2020 前に GA していたようです。今年の 5 月ぐらいから名前が Quick Que…

新しい Azure Table SDK がリリースされていたので試した

Cosmos DB の Premium Table な SDK を使えと言われ続けてきた Table Storage ですが、予告されていた通りに新しい Azure SDK の仕様に則った専用の SDK が公開されました。Blobs や Queues と同じような API になっているので、特にドキュメントを読まずと…

古い WindowsAzure.Storage SDK から新しい Storage SDK (v11 / v12) へ移行する

太古の昔から使われてきた WindowsAzure.Storage SDK は未だに使えますが、そろそろ新しい SDK (v11 / v12) に移行しておくかという気分になってきたので、実際のプロジェクトで移行を行いました。まだ使っているのかと言われると反論は難しいのですが、Azur…

Azure Storage の Object Replication (Preview) を一通り試した

Build 2020 で発表はされたものの、全く使える気配がなかった Azure Storage の Object Replication ですが、最近になってようやく有効化されたので調べつつ基本的な機能を試しました。Object Replication は Change Feed と Versioning の上に成り立ってい…

Azure Storage Blob Index (Preview) を試してみた

去年の Ignite で Mark Russinovich がセッションで話していたという Blob Index がプレビューとして公開されました。セッションでは Blob Quick Query も紹介されていましたが、こっちは公開されていないようです。これまでも Blob はメタデータとしてコン…

Azure Functions と Append Blob の組み合わせは相性が良かった話

ここ最近は Azure Functions と Append Blob を組み合わせて、非常に便利かつスケーラブルな処理をシンプルなコードで書くことが多かったので紹介します。割と地味な立ち位置の Append Blob ですが、Serverless や Event-driven なコードとの相性が良かった…

Managed Identity と RBAC を使って Azure Storage をアクセスキー無しで扱ってみる

Azure Storage への Managed Identity と RBAC を使ったアクセスが前に GA しましたが、試してなかったので使い方を確認しました。あとは App Service と User assigned managed identity の組み合わせもちゃんと試してなかったので、折角なので同時に使って…

Azure Storage と Azure Pipelines で静的サイトのホスティングとデプロイ自動化を行う

静的サイトのホスティングを App Service で行うことが多いのですが、まあ高確率で Azure Storage の Static website について言及されます。Static website は便利なんですが、フロントに Azure CDN がほぼ必須かつデプロイが行いにくいので避けてきました…

ASP.NET Core 向けに Azure Table Storage を利用する Configuration Provider を書いた

タイトルの通りですが、ASP.NET Core と一緒に追加された Configuration 周りは Provider を実装すると簡単に拡張できるようになっているので、実際に Azure Table Storage 向けの実装を書いて試してみました。流れとしては以下の 2 つを継承したクラスを実…

Azure Storage Emulator を最新バージョンへアップデートする

最新の Azure Storage ライブラリを使って Table Storage を操作するコードを書いて実行したところ、以下のようなエラーが出て焦りました。よく読むと REST API のバージョンに Storage Emulator が対応してないのが原因らしいです。ちなみに Visual Studio …

Azure Storage Queue で遅延キューを利用する

あまり Azure で使っているのを見たことはないのですが、Azure Storage Queue でも指定した時間が経過した後に Dequeue 可能になるようがメッセージを追加することが出来ます。.NET Storage SDK には制約が書いてなかったですが、REST API のリファレンスに…

ASP.NET Core 1.0 の Dependency Injection を使って Azure Storage を使いやすくする

Azure を使った開発では欠かせないのが Storage ですが、最新の Azure Storage Client 7.0.1-preivew からは .NET Core に対応しているので、ASP.NET Core アプリに簡単に組み込めます。これまでと変わらずに NuGet を使ってインストールするだけで準備は完…

Azure Blob Storage へのアップロード時にファイルの MD5 を同時に計算して保存する

Azure Blob へファイルなどをアップロードしたタイミングで、MD5 を計算してくれる便利な設定があるようです。アップロード前に自前でハッシュ値の計算をしなくても、この値を使って楽が出来そうです。BlobRequestOptions.StoreBlobContentMD5 Property (Mic…

Azure Storage Queue にどのくらいメッセージが貯まっているのか管理ポータルで確認してみた

サービスでキューを使った非同期な処理を実行している場合があり、バッチサーバー側に何らかの障害が発生してキューが処理されていかないことがちょいちょい起きてしまい困ってます。なので、今日は簡単にキューに追加されたメッセージが処理されていってい…