オフライン開発を有効にする
複数のプロジェクトで Azure Cosmos DB を使用し始めると、最終的にはローカル環境で Azure Cosmos DB を使用してテストする必要が生じることがあります。 ローカルでテストするオプションを使用すると、クラウドに新しいインスタンスを作成することなく、新しいコードをすばやく検証できます。 Azure Cosmos DB エミュレーターは、開発者がローカル コンピューターに実装する必要がある一般的な開発/テスト ワークフローに適したツールです。
Cosmos DB エミュレーター
Azure Cosmos DB エミュレーターは、Azure サブスクリプションのコストや複雑さを発生させることなく、アプリケーションをローカルで開発およびテストするのに役立つローカル環境です。
エミュレーターは、 Windows、 Linux、または Docker コンテナー イメージとして実行できます。
エミュレーターは 、Microsoft Learn Web サイト からダウンロードして入手でき、プラットフォームに応じてさまざまな API をサポートします。 NoSQL API は、すべてのプラットフォームで広くサポートされています。
ヒント
必要に応じて、Docker コンテナーとして使用できる 新しい Linux ベースの Azure Cosmos DB Emulator (プレビュー段階) をインストールすることもできます。 さまざまなプロセッサとオペレーティング システムでの実行をサポートしています。
エミュレーターの Docker コンテナー イメージは Microsoft Container Registry に発行され、 Docker Hub などのさまざまなコンテナー レジストリにシンジケートされます。 Docker Hub から Docker コンテナー イメージを取得するには、Docker CLI を使用して、 からイメージをmcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulatorします。
docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator
エミュレーターに接続するように SDK を構成する
Azure Cosmos DB エミュレーターはクラウド サービスと同じ API を使用するため、エミュレーターへの接続はクラウド サービスへの接続と変わりません。 エミュレーターは、すべてのインスタンスで同じ静的認証キーを持つ 1 つの固定アカウントを使用します。
最初に、エミュレーターのエンドポイントは、既定のポートが 8081 に設定されている https://localhost:<port>/ SSL を使用しています。 C# コードでは、このコード行の例を使用して、このエンドポイントを文字列変数として構成できます。
string endpoint = "https://localhost:8081/";
エミュレーターのキーは、静的な既知の認証キーです。 このキーの既定値は C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw== です。 C# コードでは、このコード行の例を使用して、このキーを変数として保存できます。
string key = "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==";
ヒント
既定のキーを使用する代わりに、 /Key オプションを使用してエミュレーターを起動し、新しいキーを生成できます。
これらの変数を設定したら、通常はクラウドベースのアカウントに対して行うのと同じように CosmosClient を作成します。
CosmosClient client = new (endpoint, key);
最初に、エミュレーターのエンドポイントは、既定のポートが 8081 に設定されている https://localhost:<port>/ SSL を使用しています。 Python コードでは、このコード行の例を使用して、このエンドポイントを文字列変数として構成できます。
endpoint = "https://localhost:8081/"
エミュレーターのキーは、静的な既知の認証キーです。 このキーの既定値は C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw== です。 Python コードでは、このコード行の例を使用して、このキーを変数として保存できます。
key = "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
ヒント
既定のキーを使用する代わりに、 /Key オプションを使用してエミュレーターを起動し、新しいキーを生成できます。
これらの変数を設定したら、通常はクラウドベースのアカウントに対して行うのと同じように CosmosClient を作成します。
client = CosmosClient(endpoint, key)
最初に、エミュレーターのエンドポイントは、既定のポートが 8081 に設定されている https://127.0.0.1:<port>/ SSL を使用しています。 JavaScript コードでは、このコード行の例を使用して、このエンドポイントを文字列変数として構成できます。
const endpoint = "https://127.0.0.1:8081/";
注
エミュレーターを使用する場合、エンドポイントは通常 https://localhost:8081/。 ただし、Node.js アプリケーションが localhost アドレスを IPv6 アドレスに変換しようとして、"RestError: connect ECONNREFUSED ::1:8081" などのエラーが発生することがあります。 この問題が発生した場合は、IPv4 ループバック アドレス https://127.0.0.1:8081/を使用します。
エミュレーターのキーは、静的な既知の認証キーです。 このキーの既定値は C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw== です。 JavaScript コードでは、このコード行の例を使用して、このキーを変数として保存できます。
const key = "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==";
ヒント
既定のキーを使用する代わりに、 /Key オプションを使用してエミュレーターを起動し、新しいキーを生成できます。
これらの変数を設定したら、通常はクラウドベースのアカウントに対して行うのと同じように CosmosClient を作成します。
const client = new CosmosClient({ endpoint, key });
警告
SSL エラーが発生した場合は、アプリケーションの TLS/SSL を無効にする必要がある場合があります。 このエラーは、通常、コンテナー内の Azure Cosmos DB エミュレーターを使用してローカル コンピューターで開発していて、コンテナー の SSL 証明書をインポートしていない場合に発生します。 この問題を解決するには、クライアントを作成する前に、TLS/SSL 検証を無効にするようにアプリケーションを構成します。
process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0