ローカルでの 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 を構成するために使用できるコマンド ライン オプションの詳細については、「コマンド ライン オプション」を参照してください。
Azure Functions プロジェクトからの Azurite の実行
Visual Studio 2022 で、Azure Functions プロジェクトを作成します。 プロジェクト オプションを設定するときに、[ランタイム ストレージ アカウントに Azurite を使用する] というラベルの付いたボックスにマークを付けます。
プロジェクトを作成すると、Azurite が自動的に開始されます。 出力は次のスクリーンショットのようになります。
ASP.NET プロジェクトからの Azurite の実行
Visual Studio 2022 で、ASP.NET Core Web アプリ プロジェクトを作成します。 [接続済みサービス] ダイアログ ボックスを開き、[サービス依存関係の追加] を選択し、[ストレージ Azurite エミュレーター] を選択します。
[Configure Storage Azurite emulator](ストレージ Azurite エミュレーターの構成) ダイアログ ボックスで、[接続文字列名] フィールドを StorageConnectionString
に設定し、[完了] を選択します。
構成が完了したら、[閉じる] を選択すると、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 に接続します。
- [アカウントの管理] アイコンを選択します
- [アカウントの追加] を選択します
- [ローカル エミュレーターにアタッチする] を選択します
- [次へ] を選択します
- [表示名] フィールドを編集して、任意の名前にします
- もう一度 [次へ] を選択します
- [接続] を選択します
HTTPS を使用して Azurite に接続する
既定では、Storage Explorer は、自己署名証明書を使用する HTTPS エンドポイントを開きません。 HTTPS で Azurite を実行している場合は、自己署名証明書を使用している可能性があります。 Storage Explorer で、[編集] ->[SSL 証明書] ->[証明書のインポート] ダイアログを使用して SSL 証明書をインポートします。
証明書を Storage Explorer にインポートする
- ローカル コンピューターで証明書を検索します。
- Storage Explorer で、[編集] ->[SSL 証明書] ->[証明書のインポート] の順に移動して、証明書をインポートします。
証明書をインポートしないと、次のエラーが表示されます。
unable to verify the first certificate
または self signed certificate in chain
HTTPS 接続文字列を使用して Azurite を追加する
Storage Explorer に Azurite HTTPS を追加するには、次の手順に従います。
- [エクスプローラーの切り替え] を選択します
- [Local & Attached](ローカルで接続済み) を選択します
- [ストレージ アカウント] を右クリックし、 [Connect to Azure Storage](Azure Storage に接続する) を選択します
- [Use a connection string](接続文字列を使用する) を選択します
- [次へ] を選択します。
- [表示名] フィールドに値を入力します
- このドキュメントの前のセクションに示した HTTPS 接続文字列を入力します
- [次へ] を選択します
- [接続] を選択します
ワークスペースの構造
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 では詳細な作業項目も追跡されています。
次のステップ
- 「開発とテストに Azure ストレージ エミュレーターを使用する」には、Azurite によって置き換えられつつある従来の Azure ストレージ エミュレーターについての記述があります。
- 「Azure Storage の接続文字列を構成する」では、有効な Azure Storage の接続文字列をアセンブルする方法が説明されています。