ローカルでの Azure Storage の開発に Azurite エミュレーターを使用する

Azurite オープンソース エミュレーターには、Azure Blob、Queue Storage、Table Storage アプリケーションをテストするための無料のローカル環境が用意されています。 ローカルでのアプリケーションの動作に満足できたら、クラウドでの Azure Storage アカウントの使用に切り替えることができます。 エミュレーターは、Windows、Linux、および macOS でのクロスプラットフォーム サポートを提供します。

Azurite は Azure Storage Emulator に代わり、最新バージョンの Azure Storage API をサポートするように引き続き更新されます。

Azurite をローカル システムにインストールし、そのシステム上で実行する方法は複数あります。 これらのタブのいずれかを選択してください。

Azurite をインストールする

Azurite は Visual Studio 2022 で自動的に使用できるようになります。 以前のバージョンの Visual Studio を実行している場合は、Node パッケージ マネージャーの使用、DockerHub の使用、または Azurite GitHub リポジトリのクローンのいずれかの方法で Azurite をインストールできます。

Azurite を実行する

Visual Studio のほとんどのプロジェクト タイプで Azurite を使用するには、まず Azurite 実行可能ファイルを実行する必要があります。 実行可能ファイルが実行されると、Azurite はアプリケーションからの接続要求をリッスンします。 詳細については、「コマンド ラインからの Azurite の実行」を参照してください。

Azure Functions プロジェクトと ASP.NET プロジェクトでは、Azurite を自動的に開始するようにプロジェクトを構成するよう選択できます。 この構成は、プロジェクトのセットアップ中に行われます。 このプロジェクト構成では Azurite が自動的に開始されますが、Visual Studio では詳細な Azurite 構成オプションは公開されません。 Azurite の詳細な構成オプションをカスタマイズするには、Visual Studio を起動する前に Azurite 実行可能ファイルを実行します。

Azurite を自動的に開始するように Azure Functions プロジェクトと ASP.NET プロジェクトを構成する方法の詳細については、次のガイダンスを参照してください。

コマンド ラインからの Azurite の実行

Azurite 実行可能ファイルは、Visual Studio インストールの extensions フォルダーにあります。 特定の場所は、インストールされている Visual Studio のバージョンによって異なります。 次の表は、Windows コンピューターで実行されている Visual Studio のさまざまなバージョンの Azurite 実行可能ファイルの場所を示しています。

Visual Studio のバージョン Azurite 実行可能ファイルの場所
Visual Studio Professional 2022 C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator
Visual Studio Enterprise 2022 C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator

適切な場所に移動して azurite.exe を開始します。 実行可能ファイルを実行すると、Azurite は接続をリッスンします。

Azurite コマンド ライン出力

Azurite を構成するために使用できるコマンド ライン オプションの詳細については、「コマンド ライン オプション」を参照してください。

Azure Functions プロジェクトからの Azurite の実行

Visual Studio 2022 で、Azure Functions プロジェクトを作成します。 プロジェクト オプションを設定するときに、[ランタイム ストレージ アカウントに Azurite を使用する] というラベルの付いたボックスにマークを付けます。

Azurite を Azure Functions プロジェクトのランタイム ストレージ アカウントに設定する方法を示すスクリーンショット。

プロジェクトを作成すると、Azurite が自動的に開始されます。 出力は次のスクリーンショットのようになります。

Azurite を Azure Functions プロジェクトのランタイム ストレージ アカウントに設定した後の出力を示すスクリーンショット。

ASP.NET プロジェクトからの Azurite の実行

Visual Studio 2022 で、ASP.NET Core Web アプリ プロジェクトを作成します。 [接続済みサービス] ダイアログ ボックスを開き、[サービス依存関係の追加] を選択し、[ストレージ Azurite エミュレーター] を選択します。

依存関係として Azurite を ASP.NET プロジェクトに追加する方法を示すスクリーンショット。

[Configure Storage Azurite emulator](ストレージ Azurite エミュレーターの構成) ダイアログ ボックスで、[接続文字列名] フィールドを StorageConnectionString に設定し、[完了] を選択します。

ASP.NET プロジェクトで Azurite を使用するように接続文字列を構成する方法を示すスクリーンショット。

構成が完了したら、[閉じる] を選択すると、Azurite エミュレーターが自動的に起動します。 出力は次のスクリーンショットのようになります。

ASP.NET プロジェクトを Azurite エミュレーターに接続した後の出力を示すスクリーンショット。

コマンド ライン オプション

このセクションでは、Azurite を起動するときに使用できるコマンド ライン スイッチについて詳しく説明します。

Help

オプション - -h または --help スイッチを使用してコマンド ラインのヘルプを取得します。

azurite -h
azurite --help

BLOB リスニング ホスト

オプション - 既定では、Azurite はローカル サーバーとして 127.0.0.1 をリッスンします。 要件に合わせてアドレスを設定するには、--blobHost スイッチを使用します。

ローカル コンピューターの要求のみを受け入れる:

azurite --blobHost 127.0.0.1

リモート要求を許可する:

azurite --blobHost 0.0.0.0

注意事項

リモート要求を許可すると、システムが外部からの攻撃に対して脆弱になる可能性があります。

BLOB リスニング ポートの構成

オプション - 既定では、Azurite は Blob service をポート 10000 でリッスンします。 必要なリスニング ポートを指定するには、--blobPort スイッチを使用します。

Note

カスタマイズされたポートを使用した後、Azure Storage ツールまたは SDK で、接続文字列または対応する構成を更新する必要があります。

Blob service のリスニング ポートをカスタマイズする:

azurite --blobPort 8888

使用可能なポートをシステムに自動選択させる:

azurite --blobPort 0

使用中のポートは Azurite の起動時に表示されます。

キュー リスニング ホスト

オプション - 既定では、Azurite はローカル サーバーとして 127.0.0.1 をリッスンします。 要件に合わせてアドレスを設定するには、--queueHost スイッチを使用します。

ローカル コンピューターの要求のみを受け入れる:

azurite --queueHost 127.0.0.1

リモート要求を許可する:

azurite --queueHost 0.0.0.0

注意事項

リモート要求を許可すると、システムが外部からの攻撃に対して脆弱になる可能性があります。

キュー リスニング ポートの構成

オプション - 既定では、Azurite は Queue サービスをポート 10001 でリッスンします。 必要なリスニング ポートを指定するには、--queuePort スイッチを使用します。

Note

カスタマイズされたポートを使用した後、Azure Storage ツールまたは SDK で、接続文字列または対応する構成を更新する必要があります。

Queue サービスのリスニング ポートをカスタマイズします。

azurite --queuePort 8888

使用可能なポートをシステムに自動選択させる:

azurite --queuePort 0

使用中のポートは Azurite の起動時に表示されます。

テーブル リスニング ホスト

オプション - 既定では、Azurite はローカル サーバーとして 127.0.0.1 をリッスンします。 要件に合わせてアドレスを設定するには、--tableHost スイッチを使用します。

ローカル コンピューターの要求のみを受け入れる:

azurite --tableHost 127.0.0.1

リモート要求を許可する:

azurite --tableHost 0.0.0.0

注意事項

リモート要求を許可すると、システムが外部からの攻撃に対して脆弱になる可能性があります。

テーブル リスニング ポートの構成

オプション - 既定では、Azurite は Table サービスをポート 10002 でリッスンします。 必要なリスニング ポートを指定するには、--tablePort スイッチを使用します。

Note

カスタマイズされたポートを使用した後、Azure Storage ツールまたは SDK で、接続文字列または対応する構成を更新する必要があります。

Table service のリスニング ポートをカスタマイズします。

azurite --tablePort 11111

使用可能なポートをシステムに自動選択させる:

azurite --tablePort 0

使用中のポートは Azurite の起動時に表示されます。

ワークスペース パス

オプション - Azurite は、実行中にデータをローカル ディスクに格納します。 ワークスペースの場所としてパスを指定するには、-l または --location スイッチを使用します。 既定では、現在のプロセスの作業ディレクトリが使用されます。 小文字の "l" であることに注意してください。

azurite -l c:\azurite
azurite --location c:\azurite

アクセス ログ

オプション - 既定では、アクセス ログはコンソール ウィンドウに表示されます。 -s または --silent スイッチを使用すると、アクセス ログの表示が無効になります。

azurite -s
azurite --silent

デバッグ ログ

オプション - デバッグ ログにはすべての要求と例外スタック トレースに関する詳細情報が含まれます。 -d または --debug スイッチに有効なローカル ファイル パスを指定すると、デバッグ ログが有効になります。

azurite -d path/debug.log
azurite --debug path/debug.log

ルーズ モード

オプション - Azurite では、既定で、サポートされていない要求ヘッダーとパラメーターをブロックするために厳格モードが適用されます。 -L または --loose スイッチを使用すると、厳格モードが無効になります。 大文字の "L" であることに注意してください。

azurite -L
azurite --loose

Version

オプション - -v または --version スイッチを使用して、インストールされている Azurite のバージョン番号を表示します。

azurite -v
azurite --version

証明書の構成 (HTTPS)

オプション - 既定では、Azurite は HTTP プロトコルを使用します。 HTTPS モードを有効にするには、Privacy Enhanced Mail (.pem) または Personal Information Exchange (.pfx) 証明書ファイルへのパスを --cert スイッチに指定します。

PEM ファイルに --cert が指定されている場合、対応する --key スイッチを指定する必要があります。

azurite --cert path/server.pem --key path/key.pem

PFX ファイルに --cert が指定されている場合、対応する --pwd スイッチを指定する必要があります。

azurite --cert path/server.pfx --pwd pfxpassword

PEM および PFX ファイルの作成の詳細については、「HTTPS セットアップ」を参照してください。

OAuth 構成

オプション - --oauth スイッチを使用して、Azurite の OAuth 認証を有効にします。

azurite --oauth basic --cert path/server.pem --key path/key.pem

Note

OAuth には HTTPS エンドポイントが必須です。 --oauth スイッチと共に --cert スイッチを指定することで、HTTPS を確実に有効にしてください。

Azurite は、--oauth スイッチに basic パラメーターを指定することによって基本認証をサポートします。 Azurite は、受信ベアラー トークンの検証や、発行者、対象ユーザー、有効期限の確認などの基本認証を行います。 Azurite は、トークンの署名とアクセス許可の確認を行いません。

API のバージョン チェックをスキップする

省略可能 -起動時に、Azurite では、要求された API バージョンが有効であることが確認されます。 次のコマンドを使用すると、API のバージョン チェックがスキップされます。

azurite --skipApiVersionCheck

本番環境スタイルの URL を無効にする

オプション。 要求 URI ホストで IP の代わりに完全修飾ドメイン名を使用する場合、既定では Azurite は要求 URI ホストからストレージ アカウント名を解析します。 --disableProductStyleUrl を使用して、要求 URI パスからストレージ アカウント名を強制的に解析できます。

azurite --disableProductStyleUrl

ツールと SDK の認証

任意の認証方法を使用して、Azure Storage の SDK またはツール (Azure Storage Explorer など) から Azurite に接続します。 認証が必要です。 Azurite は、OAuth、共有キー、および Shared Access Signature (SAS) を使用した認証をサポートしています。 Azurite ではパブリック コンテナーへの匿名アクセスもサポートされています。

Azure SDK を使用している場合は、--oauth basic and --cert --key/--pwd オプションを使用して Azurite を開始します。

既知のストレージ アカウントとキー

Azurite は、従来の Azure ストレージ エミュレーターで使用されるものと同じ既知のアカウントとキーを受け入れます。

  • アカウント名: devstoreaccount1
  • アカウント キー: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

カスタム ストレージ アカウントとキー

Azurite では、AZURITE_ACCOUNTS 環境変数を次の形式で設定することにより、カスタム ストレージ アカウント名とキーがサポートされます: account1:key1[:key2];account2:key1[:key2];...

たとえば、1 つのキーを持つカスタム ストレージ アカウントを使用する場合は、次のように指定します。

set AZURITE_ACCOUNTS="account1:key1"
export AZURITE_ACCOUNTS="account1:key1"

注意

アカウント キーは base64 でエンコードされた文字列である必要があります。

それぞれ 2 つのキーを持つ複数のストレージ アカウントを使用する場合は、次のように指定します。

set AZURITE_ACCOUNTS="account1:key1:key2;account2:key1:key2"
export AZURITE_ACCOUNTS="account1:key1:key2;account2:key1:key2"

Azurite では、既定で、1 分ごとにカスタム アカウント名とキーが環境変数から更新されます。 この機能により、アカウント キーを動的にローテーションしたり、Azurite を再起動することなく新しいストレージ アカウントを追加したりできます。

Note

カスタム ストレージ アカウントを設定すると、既定の devstoreaccount1 ストレージ アカウントは無効になります。

アカウント キーは base64 でエンコードされた文字列である必要があります。

Connection strings

アプリケーションから Azurite に接続する最も簡単な方法は、ショートカット UseDevelopmentStorage=true を参照するアプリケーションの構成ファイル内で接続文字列を構成することです。 たとえば、app.config ファイル内の接続文字列は次のようになります。

<appSettings>
  <add key="StorageConnectionString" value="UseDevelopmentStorage=true" />
</appSettings>

HTTP 接続文字列

次の接続文字列は、Azure SDK またはツール (Azure CLI 2.0 や Storage Explorer など) に渡すことができます。

完全な接続文字列は次のとおりです。

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;

Blob service にのみ接続する場合、接続文字列は次のようになります。

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;

Queue サービスにのみ接続する場合、接続文字列は次のようになります。

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;

テーブル サービスにのみ接続する場合、接続文字列は次のようになります。

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;

HTTPS 接続文字列

完全な HTTPS 接続文字列は次のとおりです。

DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=https://127.0.0.1:10001/devstoreaccount1;TableEndpoint=https://127.0.0.1:10002/devstoreaccount1;

Blob service のみを使用する場合、HTTPS 接続文字列は次のようになります。

DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://127.0.0.1:10000/devstoreaccount1;

Queue サービスのみを使用する場合、HTTPS 接続文字列は次のようになります。

DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;QueueEndpoint=https://127.0.0.1:10001/devstoreaccount1;

テーブル サービスのみを使用する場合、HTTPS 接続文字列は次のようになります。

DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;TableEndpoint=https://127.0.0.1:10002/devstoreaccount1;

dotnet dev-certs を使用して自己署名証明書を生成した場合は、次の接続文字列を使用します。

DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://localhost:10000/devstoreaccount1;QueueEndpoint=https://localhost:10001/devstoreaccount1;TableEndpoint=https://localhost:10002/devstoreaccount1;

カスタム ストレージ アカウントとキーを使用する場合は、接続文字列を更新します。

詳細については、「Azure Storage の接続文字列を構成する」を参照してください。

Azure SDK

Azure SDK で Azurite を使用するには、 OAuth と HTTPS のオプションを使用します。

azurite --oauth basic --cert certname.pem --key certname-key.pem

Azure Blob Storage

続いて、BlobContainerClient、BlobServiceClient、または BlobClient をインスタンス化できます。

// With container URL and DefaultAzureCredential
var client = new BlobContainerClient(
    new Uri("https://127.0.0.1:10000/devstoreaccount1/container-name"), new DefaultAzureCredential()
  );

// With connection string
var client = new BlobContainerClient(
    "DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://127.0.0.1:10000/devstoreaccount1;", "container-name"
  );

// With account name and key
var client = new BlobContainerClient(
    new Uri("https://127.0.0.1:10000/devstoreaccount1/container-name"),
    new StorageSharedKeyCredential("devstoreaccount1", "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==")
  );

Azure Queue Storage

QueueClient または QueueServiceClient をインスタンス化することもできます。

// With queue URL and DefaultAzureCredential
var client = new QueueClient(
    new Uri("https://127.0.0.1:10001/devstoreaccount1/queue-name"), new DefaultAzureCredential()
  );

// With connection string
var client = new QueueClient(
    "DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;QueueEndpoint=https://127.0.0.1:10001/devstoreaccount1;", "queue-name"
  );

// With account name and key
var client = new QueueClient(
    new Uri("https://127.0.0.1:10001/devstoreaccount1/queue-name"),
    new StorageSharedKeyCredential("devstoreaccount1", "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==")
  );

Azure Table Storage

TableClient または TableServiceClient をインスタンス化することもできます。

// With table URL and DefaultAzureCredential
var client = new Client(
    new Uri("https://127.0.0.1:10002/devstoreaccount1/table-name"), new DefaultAzureCredential()
  );

// With connection string
var client = new TableClient(
    "DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;TableEndpoint=https://127.0.0.1:10002/devstoreaccount1;", "table-name"
  );

// With account name and key
var client = new TableClient(
    new Uri("https://127.0.0.1:10002/devstoreaccount1/table-name"),
    new StorageSharedKeyCredential("devstoreaccount1", "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==")
  );

Microsoft Azure Storage Explorer

Storage Explorer を使用すると、Azurite に格納されているデータを表示できます。

HTTP を使用して Azurite に接続する

Storage Explorer で、次の手順に従って Azurite に接続します。

  1. [アカウントの管理] アイコンを選択します
  2. [アカウントの追加] を選択します
  3. [ローカル エミュレーターにアタッチする] を選択します
  4. [次へ] を選択します
  5. [表示名] フィールドを編集して、任意の名前にします
  6. もう一度 [次へ] を選択します
  7. [接続] を選択します

HTTPS を使用して Azurite に接続する

既定では、Storage Explorer は、自己署名証明書を使用する HTTPS エンドポイントを開きません。 HTTPS で Azurite を実行している場合は、自己署名証明書を使用している可能性があります。 Storage Explorer で、[編集] ->[SSL 証明書] ->[証明書のインポート] ダイアログを使用して SSL 証明書をインポートします。

証明書を Storage Explorer にインポートする
  1. ローカル コンピューターで証明書を検索します。
  2. Storage Explorer で、[編集] ->[SSL 証明書] ->[証明書のインポート] の順に移動して、証明書をインポートします。

証明書をインポートしないと、次のエラーが表示されます。

unable to verify the first certificate または self signed certificate in chain

HTTPS 接続文字列を使用して Azurite を追加する

Storage Explorer に Azurite HTTPS を追加するには、次の手順に従います。

  1. [エクスプローラーの切り替え] を選択します
  2. [Local & Attached](ローカルで接続済み) を選択します
  3. [ストレージ アカウント] を右クリックし、 [Connect to Azure Storage](Azure Storage に接続する) を選択します
  4. [Use a connection string](接続文字列を使用する) を選択します
  5. [次へ] を選択します。
  6. [表示名] フィールドに値を入力します
  7. このドキュメントの前のセクションに示した HTTPS 接続文字列を入力します
  8. [次へ] を選択します
  9. [接続] を選択します

ワークスペースの構造

Azurite を初期化するときに、次のファイルとフォルダーがワークスペースの場所に作成されることがあります。

  • __blobstorage__ - Azurite Blob service の永続化されたバイナリ データを格納しているディレクトリ
  • __queuestorage__ - Azurite Queue サービスの永続化されたバイナリ データを格納しているディレクトリ
  • __tablestorage__ - Azurite テーブル サービスの永続化されたバイナリ データを格納しているディレクトリ
  • __azurite_db_blob__.json - Azurite Blob service のメタデータ ファイル
  • __azurite_db_blob_extent__.json - Azurite Blob service のエクステント メタデータ ファイル
  • __azurite_db_queue__.json - Azurite Queue サービスのメタデータ ファイル
  • __azurite_db_queue_extent__.json - Azurite Queue サービスのエクステント メタデータ ファイル
  • __azurite_db_table__.json - Azurite テーブル サービスのメタデータ ファイル
  • __azurite_db_table_extent__.json - Azurite テーブル サービスのエクステント メタデータ ファイル

Azurite をクリーンアップするには、上記のファイルとフォルダーを削除し、エミュレーターを再起動します。

Azurite と Azure Storage の違い

Azurite のローカル インスタンスとクラウドの Azure Storage アカウントには機能上の違いがあります。

エンドポイントおよび接続 URL

Azurite のサービス エンドポイントは、Azure Storage アカウントのエンドポイントとは異なります。 ローカル コンピューターはドメイン名の解決を行わず、Azurite エンドポイントをローカル アドレスにする必要があります。

Azure Storage アカウントのリソースをアドレス指定する場合、アカウント名は URI ホスト名の一部になります。 アドレス指定されるリソースは、URI パスの一部です。

<http|https>://<account-name>.<service-name>.core.windows.net/<resource-path>

以下の URI は、Azure Storage アカウント内の BLOB の有効なアドレスです。

https://myaccount.blob.core.windows.net/mycontainer/myblob.txt

IP スタイルの URL

ローカル コンピューターはドメイン名を解決しないため、アカウント名は、ホスト名ではなく URI パスの一部になります。 Azurite のリソースには、次の URI 形式を使用します。

http://<local-machine-address>:<port>/<account-name>/<resource-path>

Azurite の BLOB にアクセスするには次のアドレスを使用できます。

http://127.0.0.1:10000/myaccount/mycontainer/myblob.txt

本番環境スタイルの URL

必要に応じて、"本番環境スタイル" の URL でアカウントにアクセスするために hosts ファイルを変更できます。

まず、hosts ファイルに 1 行以上の行を追加します。 次に例を示します。

127.0.0.1 account1.blob.localhost
127.0.0.1 account1.queue.localhost
127.0.0.1 account1.table.localhost

次に、環境変数を設定して、カスタマイズされたストレージ アカウントとキーを有効にします。

set AZURITE_ACCOUNTS="account1:key1:key2"

さらにアカウントを追加できます。 この記事の「カスタム ストレージ アカウントとキー」セクションを参照してください。

Azurite を起動し、カスタマイズした接続文字列を使用してアカウントにアクセスします。 次の例では、接続文字列では既定のポートが使用されていることを想定しています。

DefaultEndpointsProtocol=http;AccountName=account1;AccountKey=key1;BlobEndpoint=http://account1.blob.localhost:10000;QueueEndpoint=http://account1.queue.localhost:10001;TableEndpoint=http://account1.table.localhost:10002;

Azure Storage Explorer では、この方法で既定のアカウントにアクセスしないでください。 Storage Explorer が常に URL パスにアカウント名を追加するバグがあり、エラーが発生します。

既定では、本番環境スタイルの URL で Azurite を使用する場合、アカウント名は "http://devstoreaccount1.blob.localhost:10000/container" のような完全修飾ドメイン名のホスト名にする必要があります。 "http://foo.bar.com:10000/devstoreaccount1/container" のような URL パスにアカウント名を含む本番環境スタイルの URL を使用するには、Azurite を起動するときに --disableProductStyleUrl パラメーターを使用してください。

host.docker.internal を要求 URI ホスト (例: http://host.docker.internal:10000/devstoreaccount1/container) として使用する場合、Azurite は要求 URI パスからアカウント名を取得します。 この動作は、Azurite を起動するときに --disableProductStyleUrl パラメーターを使用するかどうかに関係なく当てはまります。

スケーリングとパフォーマンス

Azurite は、多数の接続されたクライアントをサポートしていません。 パフォーマンスの保証はありません。 Azurite は開発とテストを目的としています。

エラー処理

Azurite は Azure Storage エラー処理ロジックに合わせて調整されていますが、違いがあります。 たとえば、エラー メッセージは異なる場合がありますが、エラー状態コードは調整されています。

RA-GRS

Azurite は、読み取りアクセス geo 冗長レプリケーション (RA-GRS) をサポートしています。 ストレージ リソースの場合、2 次拠点にアクセスするにはアカウント名に -secondary を付加します。 たとえば、Azurite で読み取り専用の 2 次拠点を使用して BLOB にアクセスするには、次のアドレスを使用します。

http://127.0.0.1:10000/devstoreaccount1-secondary/mycontainer/myblob.txt

テーブル サポート

Azurite 内でのテーブルのサポートは、現在プレビュー段階です。 詳細については、Azurite V3 Table プロジェクトをご覧ください。

持続的関数のサポートにはテーブルが必要です。

重要

Table Storage の Azurite サポーは、現在プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

Azurite はオープンソースです

Azurite への参加や提案をお待ちしています。 近日公開される機能やバグ修正のために追跡しているマイルストーンと作業項目については、Azurite の GitHub プロジェクト ページまたは GitHub の課題を参照してください。 GitHub では詳細な作業項目も追跡されています。

次のステップ