Azurite オープンソース エミュレーターは、クラウドベースのアプリケーションをテストするための無料のローカル環境を提供します。 アプリケーションのローカルでの動作に問題がなければ、クラウドで Azure Storage アカウントを使用するように切り替えます。
Azurite は、JavaScript で記述された軽量ストレージ エミュレーターであり、ローカル開発のために Azure Storage サービスをシミュレートする Node.js で実行されます。 Blob、Queue、Table Storage のサービスをサポートし、Windows、Linux、および macOS でクロスプラットフォーム サポートを提供します。 Azurite のインストールと実行に関するヘルプについては、「 Azurite エミュレーターのインストールと実行」を参照してください。
Azurite を使用すると、開発者はローカル ストレージ環境に対してテストを実行し、統合とエンドツーエンドのテストに不可欠な Azure の動作をシミュレートすることもできます。 自動テストに Azurite を使用する方法の詳細については、「 Azurite を使用して自動テストを実行する」を参照してください。
Azurite は Azure Storage Emulator に取って代わり、最新バージョンの Azure Storage API をサポートするように引き続き更新されます。
Azurite と Azure Storage の違い
Azurite のローカル インスタンスとクラウド内の Azure Storage アカウントには機能的な違いがあります。
Important
Azurite では、BLOB、Queue、Table Storage のサービスのみがサポートされます。 Azure Files または Azure Data Lake Storage Gen2 はサポートされていませんが、Windows、Linux、macOS でクロスプラットフォームサポートを提供します。
エンドポイントと接続 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 への接続に関する記事の「カスタム ストレージ アカウントとキー」セクションを参照してください。
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 では、読み取りアクセスの地理的冗長レプリケーション (RA-GRS) がサポートされています。 ストレージ リソースの場合は、アカウント名に -secondary
を追加して、セカンダリの場所にアクセスします。 たとえば、Azurite の読み取り専用セカンダリを使用して BLOB にアクセスするために、次のアドレスを使用できます。
http://127.0.0.1:10000/devstoreaccount1-secondary/mycontainer/myblob.txt
テーブルサポート
Azurite でのテーブルのサポートは現在プレビュー段階です。 詳細については、 Azurite V3 Table プロジェクトを参照してください。
永続関数のサポートにはテーブルが必要です。
Important
Table Storage の Azurite サポートは現在 プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。
Azurite はオープンソースです
Azurite の投稿と提案は歓迎されています。 今後の機能とバグ修正について追跡するマイルストーンと作業項目については、Azurite GitHub プロジェクト ページまたは GitHub の問題 に移動してください。 詳細な作業項目は、GitHub でも追跡されます。
ワークスペースの構造
Azurite を初期化するときに、ワークスペースの場所に次のファイルとフォルダーが作成される場合があります。
-
__blobstorage__
- Azurite BLOB サービスの永続化されたバイナリ データを含むディレクトリ -
__queuestorage__
- Azurite キュー サービスの永続化されたバイナリ データを含むディレクトリ -
__tablestorage__
- Azurite テーブル サービスの永続化されたバイナリ データを含むディレクトリ -
__azurite_db_blob__.json
- Azurite BLOB サービスメタデータ ファイル -
__azurite_db_blob_extent__.json
- Azurite BLOB サービスの拡張メタデータファイル -
__azurite_db_queue__.json
- Azurite キュー サービスのメタデータ ファイル -
__azurite_db_queue_extent__.json
- Azurite キュー サービス 拡張メタデータ ファイル -
__azurite_db_table__.json
- Azurite Table Service メタデータ ファイル -
__azurite_db_table_extent__.json
- Azurite テーブル サービス エクステント メタデータ ファイル
Azurite をクリーンアップするには、ファイルとフォルダーを削除し、エミュレーターを再起動します。
次のステップ
- Azurite エミュレーターのインストールと実行 では、ローカル コンピューターに Azurite をインストールして実行する方法について説明します。
- SDK とツールを使用して Azurite に接続 し、さまざまな Azure Storage SDK とツールを使用して Azurite に接続する方法について説明します。
- Azure Storage Emulator は、Azurite に置き換えられた従来の Azure Storage Emulator のドキュメントを開発およびテストするために使用します。