Introduzione ad Azure Cosmos DB for NoSQL con JavaScript
SI APPLICA A: NoSQL
Questo articolo illustra come connettersi ad Azure Cosmos DB for NoSQL usando JavaScript SDK. Una volta stabilita la connessione, è possibile eseguire operazioni su database, contenitori ed elementi.
Pacchetto (npm) | Esempi | Riferimento API | Codice sorgente della libreria | Inviare feedback
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Account Azure Cosmos DB for NoSQL. Creare un account API for NoSQL.
- Node.js LTS
- interfaccia della riga di comando di Azure o Azure PowerShell
Configurare il progetto locale
Creare una nuova directory per il progetto JavaScript in una shell bash.
mkdir cosmos-db-nosql-javascript-samples && cd ./cosmos-db-nosql-javascript-samples
Creare una nuova applicazione JavaScript usando il comando
npm init
con il modello di console.npm init -y
Installare la dipendenza necessaria per Azure Cosmos DB for NoSQL JavaScript SDK.
npm install @azure/cosmos
Connettersi ad Azure Cosmos DB for NoSQL
Per connettersi all'API for NoSQL di Azure Cosmos DB, creare un'istanza della classe CosmosClient
. Questa classe è il punto di partenza per eseguire qualsiasi operazione sui database. Esistono tre modi principali per connettersi a un account API for NoSQL con la classe CosmosClient:
- Connettersi con un endpoint API for NoSQL e la chiave di lettura/scrittura
- Connettersi con una stringa di connessione dell'API for NoSQL
- Connettersi con Microsoft Entra ID
Connettersi con un endpoint e una chiave
Il costruttore più comune per CosmosClient ha due parametri:
Parametro | Valore di esempio | Descrizione |
---|---|---|
accountEndpoint |
La variabile di ambiente COSMOS_ENDPOINT |
Endpoint API for NoSQL da usare per tutte le richieste |
authKeyOrResourceToken |
La variabile di ambiente COSMOS_KEY |
Chiave dell'account o token della risorsa da usare per l'autenticazione |
Recuperare l'endpoint e la chiave dell'account
Creare una variabile di shell per resourceGroupName.
# Variable for resource group name resourceGroupName="msdocs-cosmos-javascript-howto-rg"
Usare il comando
az cosmosdb list
per recuperare il nome del primo account Azure Cosmos DB nel gruppo di risorse e archiviarlo nella variabile della shell accountName.# Retrieve most recently created account name accountName=$( az cosmosdb list \ --resource-group $resourceGroupName \ --query "[0].name" \ --output tsv )
Ottenere l'URI dell'endpoint API for NoSQL per l'account con il comando
az cosmosdb show
.az cosmosdb show \ --resource-group $resourceGroupName \ --name $accountName \ --query "documentEndpoint"
Trovare il valore di PRIMARY KEY nell'elenco di chiavi per l'account con il comando
az-cosmosdb-keys-list
.az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type "keys" \ --query "primaryMasterKey"
Registrare i valori URI e PRIMARY KEY. Queste credenziali saranno necessarie più avanti.
Per usare i valori URI e PRIMARY KEY all'interno del codice, mantenerli in nuove variabili di ambiente nel computer locale che esegue l'applicazione.
$env:COSMOS_ENDPOINT = "<cosmos-account-URI>"
$env:COSMOS_KEY = "<cosmos-account-PRIMARY-KEY>"
Creare CosmosClient con endpoint e chiave dell'account
Creare una nuova istanza della classe CosmosClient con le variabili di ambiente COSMOS_ENDPOINT
e COSMOS_KEY
come parametri.
const client = new CosmosClient({ endpoint, key });
Connettersi con una stringa di connessione
Un altro costruttore per CosmosClient contiene solo un parametro:
Parametro | Valore di esempio | Descrizione |
---|---|---|
accountEndpoint |
La variabile di ambiente COSMOS_ENDPOINT |
Endpoint API for NoSQL da usare per tutte le richieste |
connectionString |
La variabile di ambiente COSMOS_CONNECTION_STRING |
Stringa di connessione all'account API for NoSQL |
Recuperare la stringa di connessione dell'account
Usare il comando
az cosmosdb list
per recuperare il nome del primo account Azure Cosmos DB nel gruppo di risorse e archiviarlo nella variabile della shell accountName.# Retrieve most recently created account name accountName=$( az cosmosdb list \ --resource-group $resourceGroupName \ --query "[0].name" \ --output tsv )
Eseguire il cmdlet
az-cosmosdb-keys-list
per trovare il valore di PRIMARY CONNECTION STRING dall'elenco delle stringhe di connessione per l'account.az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type "connection-strings" \ --query "connectionStrings[?description == \`Primary SQL Connection String\`] | [0].connectionString"
Per utilizzare il valore della STRINGA DI CONNESSIONE PRIMARIA all'interno del codice, salvarlo in una nuova variabile di ambiente sul computer locale che esegue l'applicazione.
$env:COSMOS_CONNECTION_STRING = "<cosmos-account-PRIMARY-CONNECTION-STRING>"
Creare CosmosClient con la stringa di connessione
Creare una nuova istanza della classe CosmosClient specificando la variabile di ambiente COSMOS_CONNECTION_STRING
come unico parametro.
// New instance of CosmosClient class using a connection string
const cosmosClient = new CosmosClient(process.env.COSMOS_CONNECTION_STRING);
Connettersi con Microsoft Identity Platform
Per connettersi all'account API for NoSQL usando Microsoft Identity Platform e Microsoft Entra ID, usare un'entità di sicurezza. Il tipo esatto di entità di sicurezza dipende da dove viene ospitato il codice dell'applicazione. La tabella seguente funge da guida di riferimento rapido.
Dove viene eseguita l'applicazione | Entità di sicurezza principale |
---|---|
Computer locale (sviluppo e test) | Identità utente o entità servizio |
Azure | Identità gestita |
Server o client esterni ad Azure | Entità servizio |
Importare @azure/identity
Il pacchetto npm @azure/identity contiene funzionalità di autenticazione di base condivise tra tutte le librerie di Azure SDK.
Importare il pacchetto npm @azure/identity usando il comando
npm install
.npm install @azure/identity
Nell'editor di codice, aggiungere le dipendenze.
const { DefaultAzureCredential } = require("@azure/identity");
Creare CosmosClient con implementazione di credenziali predefinite
Se si sta eseguendo un test su un computer locale o se l'applicazione verrà eseguita su servizi di Azure con supporto diretto per le identità gestite, ottenere un token OAuth creando un'istanza DefaultAzureCredential
. Poi, creare una nuova istanza della classe CosmosClient con la variabile di ambiente COSMOS_ENDPOINT
e l'oggetto TokenCredential come parametri.
const { CosmosClient } = require("@azure/cosmos");
const { DefaultAzureCredential } = require("@azure/identity");
const credential = new DefaultAzureCredential();
const cosmosClient = new CosmosClient({
endpoint,
aadCredentials: credential
});
Creare CosmosClient con un'implementazione di credenziali personalizzate
Se si prevede di distribuire l'applicazione all'esterno di Azure, è possibile ottenere un token OAuth usando altre classi nella libreria client di @azure/identity per JavaScript. Anche queste altre classi derivano dalla classe TokenCredential
.
Per questo esempio viene creata un'istanza ClientSecretCredential
con identificatori client e tenant, insieme a un segreto client.
È possibile ottenere l'ID client, l'ID tenant e il segreto client quando si registra un'applicazione in Microsoft Entra ID. Per altre informazioni sulla registrazione di applicazioni Microsoft Entra, vedere Registrare un'applicazione con Microsoft Identity Platform.
Creare una nuova istanza della classe CosmosClient specificando come parametri la variabile di ambiente COSMOS_ENDPOINT
e l'oggetto TokenCredential.
const { CosmosClient } = require("@azure/cosmos");
const { DefaultAzureCredential } = require("@azure/identity");
const credential = new ClientSecretCredential(
tenantId: process.env.AAD_TENANT_ID,
clientId: process.env.AAD_CLIENT_ID,
clientSecret: process.env.AAD_CLIENT_SECRET
);
const cosmosClient = new CosmosClient({
endpoint,
aadCredentials: credential
});
Compilare l'applicazione
Durante la compilazione dell'applicazione, il codice interagirà principalmente con quattro tipi di risorse:
Account API for NoSQL, ovvero lo spazio dei nomi di primo livello univoco per i dati di Azure Cosmos DB.
Database, che organizzano i contenitori nell'account.
Contenitori, che contengono una serie di singoli elementi nel database.
Elementi, che rappresentano un documento JSON nel contenitore.
Il diagramma seguente mostra la relazione tra queste risorse.
Diagramma gerarchico che mostra al vertice un account di Azure Cosmos DB. L'account presenta due nodi database figlio. Uno dei nodi del database include due nodi contenitore figlio. L'altro nodo del database include un singolo nodo contenitore figlio. Tale nodo contenitore singolo include tre nodi elemento figlio.
Ogni tipo di risorsa è rappresentato da una o più classi associate. Ecco un elenco delle classi più comuni:
Classe | Descrizione |
---|---|
CosmosClient |
Questa classe fornisce una rappresentazione logica lato client per il servizio Azure Cosmos DB. L'oggetto client viene usato per configurare ed eseguire richieste nel servizio. |
Database |
Questa classe è un riferimento a un database che potrebbe esistere o meno nel servizio. Il database viene convalidato sul lato server quando si prova ad accedervi o a eseguire un'operazione su di esso. |
Container |
Questa classe è un riferimento a un contenitore che potrebbe non esistere ancora nel servizio. Il contenitore viene convalidato sul lato server quando si prova a usarlo. |
Nelle guide seguenti viene illustrato come usare ognuna di queste classi per creare l'applicazione.
Guida | Descrizione |
---|---|
Creare un database | Creare database |
Creare un contenitore | Crea contenitori |
Creare e leggere un elemento | Lettura diretta di un elemento specifico |
Eseguire query sugli elementi | Eseguire query su più elementi |
Vedi anche
- Pacchetto npm
- Esempi
- Informazioni di riferimento sulle API
- Codice sorgente della libreria
- Inviare feedback
Passaggi successivi
Dopo aver eseguito la connessione a un account API for NoSQL, passare alla guida successiva per creare e gestire i database.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per