Azure Cosmos DB エミュレーターとは?
Azure Cosmos DB Emulator では、Azure Cosmos DB サービスを開発目的でエミュレートするローカル環境を利用できます。 エミュレーターを使用すると、ローカルでのアプリケーションの開発とテストが、Azure サブスクリプションを作成したりコストをかけたりせずに実施できます。 エミュレーターでのアプリケーションの動作に満足できたら、最小限の摩擦で Azure Cosmos DB アカウントの使用に切り替えることができます。
重要
運用環境のワークロードにはエミュレーターを使用しないことをお勧めします。
エミュレーターとクラウド サービスの違い
エミュレーターは、Azure Cosmos DB サービスのあらゆる側面をエミュレートできない環境を開発者ワークスペースに提供します。 エミュレーターと同等のクラウド サービスの機能の主な違いを次に示します。
重要
現在、Linux エミュレーターでは、Apple シリコン シリーズまたは Microsoft ARM チップで実行されている開発者マシンはサポートされていません。 一時的な回避策は、Windows 仮想マシンをインストールし、そのプラットフォームでエミュレーターを実行することです。
- エミュレーターの Data Explorer ウィンドウは、NoSQL 用 API と MongoDB 用 API でのみサポートされます。
- エミュレーターでは、プロビジョニングされたスループット のみがサポートされます。 エミュレーターでは、 サーバーレス スループットはサポートされていません。
- エミュレーターでは、起動時に既知のキーが使用されます。 実行中のエミュレーターのキーを再生成することはできません。 別のキーを使用するには、 カスタム キーを指定してエミュレーターを起動する必要があります。
- エミュレーターを地理的リージョンまたは複数のインスタンスにレプリケートすることはできません。 エミュレーターの実行中のインスタンスは 1 つだけサポートされます。 エミュレーターをスケールアウトすることはできません。
- エミュレーターは、理想的な状態では、400 RU/秒で最大 10 個の固定サイズのコンテナー、または 5 個のサイズ無制限のコンテナーをサポートします。 理論的には、さらに多くのコンテナーを作成できますが、エミュレーターのパフォーマンスが低下する可能性があります。
- エミュレーターでは、 セッション と 強力な 整合性レベルのみがサポートされます。 エミュレーターはスケーラブルなサービスではなく、実際には整合性レベルを実装していません。 エミュレーターは、テスト目的で構成された整合性レベルにのみフラグを設定します。
- エミュレーターは、項目の一意識別子を 254 文字のサイズに制限します。
- Linux エミュレーターでは、クエリごとに最大 5 つの
JOIN
ステートメントがサポートされています。
エミュレーターの機能は、クラウド サービスの新機能のペースに遅れる可能性があります。 クラウド サービスには、エミュレーターで使用できるようになるまでに少し遅れる新しい機能や変更が存在する可能性があります。
認証
エミュレーターに対して行われたすべての要求は、TLS/SSL 経由のキーを使用して認証する必要があります。 エミュレーターには、既知の認証キーを使用するように構成された 1 つのアカウントが付属しています。 既定では、エミュレーターで使用できる資格情報は次の資格情報のみです:
値 | |
---|---|
エンドポイント | localhost:8081 |
キー | C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw== |
接続文字列 | AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==; |
ヒント
Windows (ローカル) エミュレーターでは、エミュレーターで使用されるキーをカスタマイズすることもできます。 詳細については、「Windows エミュレーター引数」を参照してください。
エミュレーター証明書をインポートする
場合によっては、エミュレーターの実行中のコンテナーからホスト コンピューターに TLS/SS 証明書を手動でインポートすることが必要になる場合があります。 この手順により、SDK で TLS/SSL 検証を無効にするなどの不適切なプラクティスが回避されます。 詳しくは、証明書のインポートに関する記事をご覧ください。