Azurite オープンソース エミュレーターには、Azure Blob、Queue Storage、Table Storage アプリケーションをテストするための無料のローカル環境が用意されています。 ローカルでのアプリケーションの動作に満足できたら、クラウドでの Azure Storage アカウントの使用に切り替えることができます。 エミュレーターは、Windows、Linux、および macOS でのクロスプラットフォーム サポートを提供します。
Azurite は Azure Storage Emulator に代わり、最新バージョンの Azure Storage API をサポートするように引き続き更新されます。
このビデオでは、Azure エミュレーターをインストールして実行する方法について説明します。
ビデオの手順については、次のセクションでも説明します。 これらのタブのいずれかを選択してください。
Azurite は Visual Studio 2022 で自動的に使用できるようになります。 Azurite 実行可能ファイルは、Visual Studio の新しいバージョン リリースの一部として更新されます。 以前のバージョンの Visual Studio を実行している場合は、Node パッケージ マネージャー (npm) か DockerHub のいずれかを使用して、または Azurite GitHub リポジトリを複製して、Azurite をインストールできます。
Visual Studio Code で、拡張機能 アイコンを選択し、「Azurite 」を検索します。 Azurite 拡張機能をインストールするには、[インストール] ボタンを選択します。
また、ブラウザーで Visual Studio Code 拡張機能のマーケット に移動することもできます。 [Install](インストール) を選択して Visual Studio Code を開き、Azurite 拡張機能ページに直接アクセスします。
Visual Studio Code 内で Azurite を構成するには、拡張機能 アイコンを選択します。 Azurite エントリの場合は、[管理] 歯車ボタンを選択します。 [拡張機能の設定] を選択します。
次の設定がサポートされています。
azurite.blobHost - Blob service のリスニング エンドポイント。 既定の設定は 127.0.0.1 です。
azurite.blobPort - Blob service のリスニング ポート。 既定のポートは 10000 です。
azurite.queueHost - Queue サービスのリスニング エンドポイント。 既定の設定は 127.0.0.1 です。
azurite.queuePort - Queue サービスのリスニング ポート。 既定のポートは 10001 です。
azurite.tableHost - Table service のリッスン エンドポイント (既定の設定は 127.0.0.1)。
azurite.tablePort - Table service のリッスン エンドポイント (既定では 10002)
azurite.cert - HTTPS モードを有効にするための、ローカルに信頼されている PEM または PFX 証明書ファイルへのパス。
azurite.debug - Azurite チャネルにデバッグ ログを出力します。 既定値は false です。
azurite.key - ローカルに信頼されている PEM キー ファイルへのパス。Azurite: Cert が PEM ファイルを指す場合は必須です。
azurite.location - ワークスペースの場所のパス。 既定値は Visual Studio Code の作業フォルダーです。
azurite.loose - ルーズ モード (サポートされていないヘッダーとパラメーターを無視します) を有効にします。
azurite.oauth - 省略可能な OAuth レベル。
azurite.pwd - PFX ファイルのパスワード。 Azurite:Cert が PFX ファイルを指す場合は必須です。
azurite.silent - サイレント モードではアクセス ログが無効になります。 既定値は false です。
azurite.skipApiVersionCheck - 要求 API バージョン チェックをスキップします。 既定値は false です。
azurite.disableProductStyleUrl 要求 URI ホストからではなく、要求 URI パスからストレージ アカウント名の解析を強制します。
このインストール方法では、Node.js バージョン8.0 以降 がインストールされている必要があります。 ノード パッケージ マネージャー (npm) は、Node.js のすべてのインストールに含まれるパッケージ管理ツールです。 Node.js をインストールした後、次の npm
コマンドを実行して Azurite をインストールします。
npm install -g azurite
このインストール方法では、Git と Node.js バージョン8.0 以降 をインストールしておく必要があります。 次のコンソール コマンドを使用して、Azurite プロジェクト用の GitHub リポジトリ を複製します。
git clone https://github.com/Azure/Azurite.git
ソースコードを複製した後、複製されたリポジトリのルートから次のコマンドを実行して、Azurite をビルドおよびインストールします。
npm install
npm run build
npm install -g
Visual Studio のほとんどのプロジェクト タイプで Azurite を使用するには、まず Azurite 実行可能ファイルを実行する必要があります。 実行可能ファイルが実行されると、Azurite はアプリケーションからの接続要求をリッスンします。 詳細については、「コマンド ラインからの Azurite の実行 」を参照してください。
Azure Functions プロジェクトと ASP.NET プロジェクトでは、Azurite を自動的に開始するようにプロジェクトを構成するよう選択できます。 この構成は、プロジェクトのセットアップ中に行われます。 このプロジェクト構成では Azurite が自動的に開始されますが、Visual Studio では詳細な Azurite 構成オプションは公開されません。 Azurite の詳細な構成オプションをカスタマイズするには、Visual Studio を起動する前に Azurite 実行可能ファイルを実行 します。
Azurite を自動的に開始するように Azure Functions プロジェクトと ASP.NET プロジェクトを構成する方法の詳細については、次のガイダンスを参照してください。
次の表は、Windows コンピューターで実行されている Visual Studio のさまざまなバージョンの Azurite 実行可能ファイルの場所を示しています。
テーブルを展開する
Visual Studio のバージョン
Azurite 実行可能ファイルの場所
Visual Studio Community 2022
C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator
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 実行可能ファイルの場所の表 で詳しく説明されているように、Azurite 実行可能ファイルは Visual Studio インストールの extensions フォルダーにあります。
適切な場所に移動して azurite.exe
を開始します。 実行可能ファイルを実行すると、Azurite は接続をリッスンします。
Azurite を構成するために使用できるコマンド ライン オプションの詳細については、「コマンド ライン オプション 」を参照してください。
Azure Functions プロジェクトからの Azurite の実行
Visual Studio 2022 で、Azure Functions プロジェクトを作成します。 プロジェクト オプションを設定するときに、[ランタイム ストレージ アカウントに Azurite を使用する] というラベルの付いたボックスにマークを付けます。
プロジェクトを作成すると、Azurite が自動的に開始されます。 Azurite 実行可能ファイルの場所については、Azurite 実行可能ファイルの場所の表 を参照してください。 出力は次のスクリーンショットのようになります。
この構成オプションは、プロジェクトの接続済みサービス の依存関係を変更して後で変更することができます。
ASP.NET プロジェクトからの Azurite の実行
Visual Studio 2022 で、ASP.NET Core Web アプリ プロジェクトを作成します。 [接続済みサービス] ダイアログ ボックスを開き、[サービス依存関係の追加] を選択し、[ストレージ Azurite エミュレーター] を選択します。
[Configure Storage Azurite emulator](ストレージ Azurite エミュレーターの構成) ダイアログ ボックスで、[接続文字列名] フィールドを StorageConnectionString
に設定し、[完了] を選択します。
構成が完了したら、[閉じる] を選択すると、Azurite エミュレーターが自動的に起動します。 Azurite 実行可能ファイルの場所については、Azurite 実行可能ファイルの場所の表 を参照してください。 出力は次のスクリーンショットのようになります。
この構成オプションは、プロジェクトの接続済みサービス の依存関係を変更して後で変更することができます。
注意
Visual Studio Code 拡張機能のみをインストールした場合、Azurite をコマンドラインから実行することはできません。 代わりに、Visual Studio Code コマンド パレットを使用してコマンドを実行します。 構成設定の詳細は、「Azurite 拡張機能の設定を構成する 」に記載されています。
Azurite 拡張機能は、次の Visual Studio Code コマンドをサポートしています。 コマンド パレットを開くには、Visual Studio Code で F1 を押します。
Azurite:Clean - すべての Azurite サービス永続性データをリセットします
Azurite:Clean Blob Service - Blob Service をクリーンアップします
Azurite:Clean Queue Service - Queue service をクリーンアップします
Azurite: Clean Table Service - Table service をクリーンアップします
Azurite:Close - すべての Azurite サービスを閉じます
Azurite:Close Blob Service - Blob Service を閉じます
Azurite:Close Queue Service - Queue service を閉じます
Azurite: Close Table Service - Table service を閉じます
Azurite:Start - すべての Azurite サービスを開始します
Azurite:Start Blob Service - Blob Service を開始します
Azurite:Start Queue Service - Queue service を開始します
Azurite: Start Table Service - Table service を開始します
次のコマンドを発行して、Azurite を起動します。
azurite --silent --location c:\azurite --debug c:\azurite\debug.log
このコマンドは、すべてのデータを特定のディレクトリ c:\azurite に格納するように Azurite に指示します。 --location
オプションを省略した場合は、現在の作業ディレクトリが使用されます。
Azurite Docker イメージを実行する :
次のコマンドは Azurite Docker を実行します。 -p 10000:10000
パラメーターにより、ホスト マシンのポート 10000 から Docker インスタンスに要求がリダイレクトされます。
docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 \
mcr.microsoft.com/azure-storage/azurite
ワークスペースの場所を指定する :
次の例で、-v c:/azurite:/data
パラメーターでは Azurite の永続的なデータの場所として c:/azurite が指定されています。 Docker コマンドを実行する前に、c:/azurite ディレクトリを作成しておく必要があります。
docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 \
-v c:/azurite:/data mcr.microsoft.com/azure-storage/azurite
Blob Service だけを実行する
docker run -p 10000:10000 mcr.microsoft.com/azure-storage/azurite \
azurite-blob --blobHost 0.0.0.0 --blobPort 10000
起動時に Azurite を構成する方法の詳細については、「コマンド ライン オプション 」を参照してください。
コマンド ラインを使用してすぐに作業を開始するには、c:\azurite という名前のディレクトリを作成し、次のコマンドを発行して Azurite を起動します。
azurite --silent --location c:\azurite --debug c:\azurite\debug.log
このコマンドは、すべてのデータを特定のディレクトリ c:\azurite に格納するように Azurite に指示します。 --location
オプションを省略した場合は、現在の作業ディレクトリが使用されます。
このセクションでは、Azurite を起動するときに使用できるコマンド ライン スイッチについて詳しく説明します。
オプション - -h
または --help
スイッチを使用してコマンド ラインのヘルプを取得します。
azurite -h
azurite --help
オプション - 既定では、Azurite はローカル サーバーとして 127.0.0.1 をリッスンします。 要件に合わせてアドレスを設定するには、--blobHost
スイッチを使用します。
ローカル コンピューターの要求のみを受け入れる:
azurite --blobHost 127.0.0.1
リモート要求を許可する:
azurite --blobHost 0.0.0.0
注意事項
リモート要求を許可すると、システムが外部からの攻撃に対して脆弱になる可能性があります。
オプション - 既定では、Azurite はローカル サーバーとして 127.0.0.1 をリッスンします。 要件に合わせてアドレスを設定するには、--queueHost
スイッチを使用します。
ローカル コンピューターの要求のみを受け入れる:
azurite --queueHost 127.0.0.1
リモート要求を許可する:
azurite --queueHost 0.0.0.0
注意事項
リモート要求を許可すると、システムが外部からの攻撃に対して脆弱になる可能性があります。
オプション - 既定では、Azurite はローカル サーバーとして 127.0.0.1 をリッスンします。 要件に合わせてアドレスを設定するには、--tableHost
スイッチを使用します。
ローカル コンピューターの要求のみを受け入れる:
azurite --tableHost 127.0.0.1
リモート要求を許可する:
azurite --tableHost 0.0.0.0
注意事項
リモート要求を許可すると、システムが外部からの攻撃に対して脆弱になる可能性があります。
オプション - 既定では、Azurite は Blob service をポート 10000 でリッスンします。 必要なリスニング ポートを指定するには、--blobPort
スイッチを使用します。
注意
カスタマイズされたポートを使用した後、Azure Storage ツールまたは SDK で、接続文字列または対応する構成を更新する必要があります。
Blob service のリスニング ポートをカスタマイズする:
azurite --blobPort 8888
使用可能なポートをシステムに自動選択させる:
azurite --blobPort 0
使用中のポートは Azurite の起動時に表示されます。
オプション - 既定では、Azurite は Queue サービスをポート 10001 でリッスンします。 必要なリスニング ポートを指定するには、--queuePort
スイッチを使用します。
注意
カスタマイズされたポートを使用した後、Azure Storage ツールまたは SDK で、接続文字列または対応する構成を更新する必要があります。
Queue サービスのリスニング ポートをカスタマイズします。
azurite --queuePort 8888
使用可能なポートをシステムに自動選択させる:
azurite --queuePort 0
使用中のポートは Azurite の起動時に表示されます。
オプション - 既定では、Azurite は Table サービスをポート 10002 でリッスンします。 必要なリスニング ポートを指定するには、--tablePort
スイッチを使用します。
注意
カスタマイズされたポートを使用した後、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
オプション - -v
または --version
スイッチを使用して、インストールされている Azurite のバージョン番号を表示します。
azurite -v
azurite --version
オプション - 既定では、Azurite は HTTP プロトコルを使用します。 HTTPS モードを有効にするには、Privacy Enhanced Mail (.pem) または Personal Information Exchange (.pfx) 証明書ファイルへのパスを --cert
スイッチに指定します。 OAuth 認証 を使用して Azurite に接続するには、HTTPS が必要です。
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
スイッチを使用して、Azurite の OAuth 認証を有効にします。
azurite --oauth basic --cert path/server.pem --key path/key.pem
注意
OAuth には HTTPS エンドポイントが必須です。 --oauth
スイッチと共に --cert
スイッチを指定することで、HTTPS を確実に有効にしてください。
Azurite は、--oauth
スイッチに basic
パラメーターを指定することによって基本認証をサポートします。 Azurite は、受信ベアラー トークンの検証や、発行者、対象ユーザー、有効期限の確認などの基本認証を行います。 Azurite は、トークンの署名とアクセス許可の確認を行いません。 承認の詳細については、「ツールと SDK の認証 」を参照してください。
省略可能 -起動時に、Azurite では、要求された API バージョンが有効であることが確認されます。 次のコマンドを使用すると、API のバージョン チェックがスキップされます。
azurite --skipApiVersionCheck
省略可。 要求 URI ホストで IP の代わりに完全修飾ドメイン名を使用する場合、既定では Azurite は要求 URI ホストからストレージ アカウント名を解析します。 --disableProductStyleUrl
を使用して、要求 URI パスからストレージ アカウント名を強制的に解析できます。
azurite --disableProductStyleUrl
省略可。 既定では、BLOB とキューのメタデータはディスクに保持され、コンテンツはエクステント ファイルに保持されます。 テーブル ストレージは、すべてのデータをディスクに保持します。 ディスクへのデータの保持を無効にし、データをメモリ内にのみ格納することができます。 メモリ内保持のシナリオでは、Azurite プロセスが終了すると、すべてのデータが失われます。 既定の保持の動作は、次のオプションを使用してオーバーライドできます。
azurite --inMemoryPersistence
この設定は、SQL ベースのメタデータ実装が (AZURITE_DB
を使用して) 有効になっている場合、または --location
オプションが指定されている場合は拒否されます。
省略可。 既定では、メモリ内のエクステント ストア (BLOB およびキューのコンテンツ用) は、ホスト マシン上の合計メモリの 50% に制限されます。 合計は os.totalmem()
を使用して評価されます。 この制限は、次のオプションを使用してオーバーライドできます。
azurite --extentMemoryLimit <megabytes>
このオプションに指定される値に制限はありませんが、オペレーティング システムによって提供される使用可能な物理メモリの量をこの制限が超えた場合は、仮想メモリが使用される可能性があります。 上限が大きいと、最終的にメモリ不足エラーが発生したり、パフォーマンスが低下したりする可能性があります。 このオプションは、--inMemoryPersistence
が指定されていない場合は拒否されます。
詳細については、「インメモリ ストレージを使用する 」を参照してください。
Azure Storage SDK または Azure Storage Explorer などのツールから Azurite に接続できます。 接続には認証が必要です。Azurite は、OAuth、共有キー、Shared Access Signature (SAS) を使用した認証をサポートしています。 Azurite ではパブリック コンテナーへの匿名アクセスもサポートされています。
Azurite を Azure SDK とともに使用する場合は、「Azure SDK 」を参照してください。
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 を再起動することなく新しいストレージ アカウントを追加したりできます。
注意
カスタム ストレージ アカウントを設定すると、既定の devstoreaccount1
ストレージ アカウントは無効になります。 カスタム ストレージ アカウントを有効にした後も devstoreaccount1
を使い続けたい場合は、AZURITE_ACCOUNTS
環境変数のカスタム アカウントとキーの一覧にそれを追加する必要があります。
アカウント キーは base64 でエンコードされた文字列である必要があります。
アプリケーションから Azurite に接続する最も簡単な方法は、ショートカット UseDevelopmentStorage=true を参照するアプリケーションの構成ファイル内で接続文字列を構成することです。 たとえば、app.config ファイル内の接続文字列は次のようになります。
<appSettings >
<add key ="StorageConnectionString" value ="UseDevelopmentStorage=true" />
</appSettings >
次の接続文字列は、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 Storage にのみ接続する場合、接続文字列は次のようになります。
DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
Queue Storage にのみ接続する場合、接続文字列は次のようになります。
DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;
Table Storage にのみ接続する場合、接続文字列は次のようになります。
DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;
完全な 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 を使用して Azurite に接続するには、次の手順に従います。
--oauth
スイッチを使用して、Azurite の OAuth 認証を有効にします。 詳細については、「OAuth 構成 」を参照してください。
--cert
オプションと --key
/--pwd
オプションによって自己署名証明書を使用して、HTTPS を有効にします。 証明書の生成について詳しくは、「証明書の構成 (HTTPS) 」と「HTTPS セットアップ 」を参照してください。
証明書が配置されたら、次のコマンド ライン オプションを使用して Azurite を起動します。
azurite --oauth basic --cert cert-name.pem --key cert-name-key.pem
cert-name.pem
と certname-key.pem
を証明書とキー ファイルの名前に置き換えます。 PFX 証明書を使用している場合は、--key
オプションの代わりに --pwd
オプションを使用します。
Blob Storage リソースを操作するには、BlobContainerClient
、BlobServiceClient
、または BlobClient
のインスタンスを作成します。
次の例は、DefaultAzureCredential 、接続文字列、共有キーの 3 つの異なる承認メカニズムを使用して BlobContainerClient
オブジェクトを承認する方法を示しています。 DefaultAzureCredential
はベアラー トークンベースの認証メカニズムを提供し、認証に使用される資格情報の種類のチェーンを使用します。 認証されると、この資格情報はクライアントのインスタンス化の一部として OAuth トークンを提供します。 詳細については、「DefaultAzureCredential クラス 」のリファレンスを参照してください。
var client = new BlobContainerClient(
new Uri("https://127.0.0.1:10000/devstoreaccount1/container-name" ), new DefaultAzureCredential()
);
var client = new BlobContainerClient(
"DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://127.0.0.1:10000/devstoreaccount1;" , "container-name"
);
var client = new BlobContainerClient(
new Uri("https://127.0.0.1:10000/devstoreaccount1/container-name" ),
new StorageSharedKeyCredential("devstoreaccount1" , "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==" )
);
Queue Storage リソースを操作するには、QueueClient
または QueueServiceClient
のインスタンスを作成します。
次の例は、DefaultAzureCredential 、接続文字列、共有キーの 3 つの異なる承認メカニズムを使用して QueueClient
オブジェクトを作成し承認する方法を示しています。 DefaultAzureCredential
はベアラー トークンベースの認証メカニズムを提供し、認証に使用される資格情報の種類のチェーンを使用します。 認証されると、この資格情報はクライアントのインスタンス化の一部として OAuth トークンを提供します。 詳細については、「DefaultAzureCredential クラス 」のリファレンスを参照してください。
var client = new QueueClient(
new Uri("https://127.0.0.1:10001/devstoreaccount1/queue-name" ), new DefaultAzureCredential()
);
var client = new QueueClient(
"DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;QueueEndpoint=https://127.0.0.1:10001/devstoreaccount1;" , "queue-name"
);
var client = new QueueClient(
new Uri("https://127.0.0.1:10001/devstoreaccount1/queue-name" ),
new StorageSharedKeyCredential("devstoreaccount1" , "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==" )
);
Table Storage リソースを操作するには、TableClient
または TableServiceClient
のインスタンスを作成します。
次の例は、DefaultAzureCredential 、接続文字列、共有キーの 3 つの異なる承認メカニズムを使用して TableClient
オブジェクトを作成し承認する方法を示しています。 DefaultAzureCredential
はベアラー トークンベースの認証メカニズムを提供し、認証に使用される資格情報の種類のチェーンを使用します。 認証されると、この資格情報はクライアントのインスタンス化の一部として OAuth トークンを提供します。 詳細については、「DefaultAzureCredential クラス 」のリファレンスを参照してください。
var client = new Client(
new Uri("https://127.0.0.1:10002/devstoreaccount1/table-name" ), new DefaultAzureCredential()
);
var client = new TableClient(
"DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;TableEndpoint=https://127.0.0.1:10002/devstoreaccount1;" , "table-name"
);
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 に格納されているデータを表示できます。
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 アカウントには機能上の違いがあります。
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
ローカル コンピューターはドメイン名を解決しないため、アカウント名は、ホスト名ではなく 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 でアカウントにアクセスするために 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 エラー処理ロジックに合わせて調整されていますが、違いがあります。 たとえば、エラー メッセージは異なる場合がありますが、エラー状態コードは調整されています。
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 の GitHub プロジェクト ページまたは GitHub の課題 を参照してください。 GitHub では詳細な作業項目も追跡されています。