Azuriteを使ったリモートからアクセス可能なAzure Storageテスト環境構築


はじめに

Azure Storage にアクセスするアプリケーションを開発したとき、接続テストをするはずです。
以前まで公式サイトでは、Azure Storage Emulator を使ったテスト方法が紹介されていましたが、
最近、Azurite を使った方法も紹介されていますので、簡単に違いを紹介します。

Azure Storage 開発時の課題

Azure Storage との通信をテストしたいとき、検証用のAzure環境があれば、そちらを利用することも可能ですが、
ローカルの開発環境に制限してテストしたいことがあると思います。
このとき、Azure Storage Emulatorを利用すれば可能ですが、制限があります。
説明を口述しますね。

Azure Storage Emulator

"Azure ストレージ エミュレーターを使用した開発とテスト"に紹介されているように、ローカルに簡易的なAzure Storageサービスを起動することができます。
ただし、Localhostからしか利用できません。
これだと別ポートから起動したWebアプリからのアクセスができなかったり、Android(エミュレータ)やVMからのアクセスもできません。

Azurite

"Azure Storage の開発とテストに Azurite オープンソース エミュレーターを使用する (プレビュー)"に紹介されているAzuriteは、オプションを変更することでAzure Storage Emulatorの制限を解除できます。
以下のようにWebアプリやAndroid EmulatorやVM, 別のリモートホストからもアクセスが可能になります。

※Firewall等も確認ください
※固定IPでアクセスしてください

具体的には以下の起動オプションを変更します。

npm i azurite -g
cd c:\AzuriteDataDirectory\
azurite --blobHost 0.0.0.0

上記コマンドでAzurite起動後に、別PCから以下URLにアクセスしてみてください。
XMLが表示されれば成功です。

  • 【IPアドレス】:192.168.128.107
  • 【コンテナ】:test(認証無しアクセス許可)
http://192.168.128.107:10000/devstoreaccount1/test?restype=container&comp=list&maxresults=1000&delimiter=%2F