JavaScript を使用して Azure Cosmos DB for NoSQL の使用を開始する
適用対象: NoSQL
この記事では、JavaScript SDK を使用して Azure Cosmos DB for NoSQL に接続する方法を示します。 接続すると、データベース、コンテナー、および項目に対する操作を実行できます。
パッケージ (npm) | サンプル | API リファレンス | ライブラリ ソース コード | フィードバックを送る
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- Azure Cosmos DB for NoSQL アカウント。 NoSQL 用 API アカウントを作成します。
- Node.js LTS
- Azure コマンド ライン インターフェイス (CLI) または Azure PowerShell
ローカル プロジェクトを設定する
Bash シェルで JavaScript プロジェクトの新しいディレクトリを作成します。
mkdir cosmos-db-nosql-javascript-samples && cd ./cosmos-db-nosql-javascript-samples
npm init
コマンドとコンソール テンプレートを使用して、新しい JavaScript アプリケーションを作成します。npm init -y
Azure Cosmos DB for NoSQL JavaScript SDK に必要な依存関係をインストールします。
npm install @azure/cosmos
Azure Cosmos DB for NoSQL に接続する
Azure Cosmos DB の NoSQL 用 API に接続するには、CosmosClient
クラスのインスタンスを作成します。 このクラスは、データベースに対するすべての操作を実行するための開始点です。
Microsoft Entra を使用して NoSQL 用 API アカウントに接続するには、セキュリティ プリンシパルを使用します。 プリンシパルの正確な種類は、アプリケーション コードをホストする場所によって異なります。 次の表は、クイック リファレンス ガイドとして機能します。
アプリケーションの実行場所 | セキュリティ プリンシパル |
---|---|
ローカル コンピューター (開発とテスト) | ユーザー ID またはサービス プリンシパル |
Azure | マネージド ID |
Azure の外部にあるサーバーまたはクライアント | サービス プリンシパル |
@azure/identity をインポートする
@azure/identity npm パッケージには、すべての Azure SDK ライブラリ間で共有されるコア認証機能が含まれています。
npm install
コマンドを使用して、@azure/identity npm パッケージをインポートします。npm install @azure/identity
コード エディターで、依存関係を追加します。
const { DefaultAzureCredential } = require("@azure/identity");
既定の資格情報の実装を使用して CosmosClient を作成する
ローカル コンピューター上でテストする場合、またはマネージド ID を直接サポートする Azure サービス上でアプリケーションを実行する場合は、DefaultAzureCredential
インスタンスを作成して OAuth トークンを取得します。 次に、COSMOS_ENDPOINT
環境変数と TokenCredential オブジェクトをパラメーターとして使用して、CosmosClient クラスの新しいインスタンスを作成します。
const { CosmosClient } = require("@azure/cosmos");
const { DefaultAzureCredential } = require("@azure/identity");
const credential = new DefaultAzureCredential();
const cosmosClient = new CosmosClient({
endpoint,
aadCredentials: credential
});
アプリケーションをビルドする
アプリケーションをビルドすると、コードは主に 4 種類のリソースと対話します。
NoSQL 用 API アカウント。これは、Azure Cosmos DB データに対する一意で最上位の名前空間です。
アカウント内のコンテナーを整理するデータベース。
データベース内の個々の項目のセットを含むコンテナー。
コンテナー内の JSON ドキュメントを表す項目。
次の図に、これらのリソースの関係を示します。
上部に Azure Cosmos DB アカウントを示す階層図。 アカウントには 2 つの子データベース ノードがあります。 一方のデータベース ノードには、2 つの子コンテナー ノードが含まれています。 もう一方のデータベース ノードには、1 つの子コンテナー ノードが含まれています。 その 1 つのコンテナー ノードには、3 つの子項目ノードがあります。
各種類のリソースは、1 つまたは複数の関連付けられたクラスによって表されます。 以下に最も一般的なクラスの一覧を示します。
クラス | 説明 |
---|---|
CosmosClient |
このクラスは、Azure Cosmos DB サービスのクライアント側の論理表現を提供します。 このクライアント オブジェクトは、サービスに対する要求の構成と実行に使用されます。 |
Database |
このクラスは、サービスにまだ存在する場合と存在しない場合があるデータベースへの参照です。 データベースへのアクセスまたはデータベースに対する操作の実行を試みると、データベースはサーバー側で検証されます。 |
Container |
このクラスは、まだサービスに存在しない可能性があるコンテナーへの参照です。 コンテナーを操作しようとすると、コンテナーはサーバー側で検証されます。 |
次のガイドでは、これらの各クラスを使ってアプリケーションをビルドする方法を示します。
ガイド | 説明 |
---|---|
データベースの作成 | データベースを作成する |
コンテナーの作成 | コンテナーを作成する |
アイテムの作成と読み取り | 特定の項目のポイント読み取り |
クエリ項目 | 複数の項目のクエリの実行 |