ローカル環境でAzure Storageをエミュレートする方法(Azurite使用)
開発一部の土井です。 Azureを使用するプロジェクトで、テスト環境がないため困ったことがありました。調査した結果、「Azurite」というローカル用のAzure Storage環境があることを知りました。この記事ではその使い方を紹介します。
前提条件
以下のツールを事前にインストール しておいてください。
- Visual Studio (Community, Professional, または Enterprise)
- Azure Storage Explorer
動作環境
- Visual Studio Community 2022
- .NET 7.0
Azuriteのインストール確認
Visual Studio 2022をインストールしている場合、Azuriteは既にインストールされています。
Exeファイルの場所
エディション | ファイルパス |
---|---|
Community | C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator |
Professional | C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator |
Enterprise | C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator |
Azuriteのセットアップ手順
1. ローカルフォルダの作成
任意の場所に、Azure Storage環境用の空のフォルダを作成します。作成したフォルダのパスを控えてください。
2. コマンドプロンプトの起動
コマンドプロンプトを起動し、Azuriteのexeファイルがあるディレクトリまで移動します。
3. Azuriteの起動
以下のコマンドを実行してください。
Azurite.exe -l "フォルダパス" --skipApiVersionCheck
例:
Azurite.exe -l C:\LocalAzureStorage –skipApiVersionCheck
正常に起動すればセットアップ成功です。
動作テスト
1. Azure Storage Explorerの確認
Azure Storage Explorerを起動し、ローカルのAzuriteストレージアカウントが表示されることを確認します。表示されない場合は、手動でアカウント情報を設定してください。
2. 動作確認用コードの実装
動作確認のためのコードをC#にて実装します。
内容は「teststorage」という名前のコンテナを作成し、その中に「testfile.txt」という名前のtxtファイルを作成します。そのあとファイルの中に文字を書き込むというような内容のものです。
コンテナ作成時にはアルファベットの大文字を使用するとエラーになりますので、注意してください。
BlobEvent.cs
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Specialized;
using System.Text;
namespace BlobTest
{
public class Program
{
public static async Task Main(string[] args)
{
string connString =
"DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;" +
"AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;" +
"BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;" +
"QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;" +
"TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;";
string containerName = "teststorage";
BlobServiceClient blobServiceClient = new BlobServiceClient(connString);
BlobContainerClient blobContainerClient = blobServiceClient.GetBlobContainerClient(containerName);
string fileName = "testfile.txt";
AppendBlobClient appendBlobClient = blobContainerClient.GetAppendBlobClient(fileName);
await blobContainerClient.CreateIfNotExistsAsync();
await appendBlobClient.CreateIfNotExistsAsync();
StringBuilder text = new StringBuilder("Hello, World");
var bytes = Encoding.UTF8.GetBytes(text.ToString());
using (var stream = new MemoryStream(bytes))
{
appendBlobClient.AppendBlock(stream);
}
}
}
}
3. コードの実行
実行後、Azure Storage Explorerを確認してください。
- 「teststorage」という名前のコンテナーが作成されます。
- 「testfile.txt」というファイルが作成されており、中身に「Hello, World」と出力されます。
まとめ
これでローカル環境でAzure Storageの動作確認ができるようになります。テスト環境がない場合でも、効率的な開発が可能です。