メインコンテンツまでスキップ

ローカル環境でAzure Storageをエミュレートする方法(Azurite使用)

土井
開発一部第2課

開発一部の土井です。 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ファイルの場所

エディションファイルパス
CommunityC:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator
ProfessionalC:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator
EnterpriseC:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator

Azuriteのセットアップ手順

1. ローカルフォルダの作成

任意の場所に、Azure Storage環境用の空のフォルダを作成します。作成したフォルダのパスを控えてください。 画像1

2. コマンドプロンプトの起動

コマンドプロンプトを起動し、Azuriteのexeファイルがあるディレクトリまで移動します。

画像2

3. Azuriteの起動

以下のコマンドを実行してください。

Azurite.exe -l "フォルダパス" --skipApiVersionCheck
例:
Azurite.exe -l C:\LocalAzureStorage –skipApiVersionCheck

画像3

正常に起動すればセットアップ成功です。


動作テスト

1. Azure Storage Explorerの確認

Azure Storage Explorerを起動し、ローカルのAzuriteストレージアカウントが表示されることを確認します。表示されない場合は、手動でアカウント情報を設定してください。

画像4

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」という名前のコンテナーが作成されます。

画像5 画像6

  • 「testfile.txt」というファイルが作成されており、中身に「Hello, World」と出力されます。

画像7


まとめ

これでローカル環境でAzure Storageの動作確認ができるようになります。テスト環境がない場合でも、効率的な開発が可能です。