Megosztás a következőn keresztül:


Gyors kezdés: Az Azure Cosmos DB a NoSQL számára használata az Azure SDK-val Node.js

Ebben a rövid útmutatóban üzembe helyez egy alapszintű Azure Cosmos DB for NoSQL-alkalmazást az Azure SDK for Node.jshasználatával. Az Azure Cosmos DB for NoSQL egy séma nélküli adattár, amellyel az alkalmazások strukturálatlan adatokat tárolnak a felhőben. Adatok lekérdezése a tárolókban, és gyakori műveletek végrehajtása egyes elemeken az Azure SDK for Node.jshasználatával.

API-referenciadokumentáció | Kódtár forráskódja | Csomag (npm) | Azure Developer CLI

Előfeltételek

  • Azure Developer CLI
  • Docker Desktop
  • Node.js 22 vagy újabb

Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.

A projekt inicializálása

Az Azure Developer CLI (azd) használatával hozzon létre egy Azure Cosmos DB for NoSQL-fiókot, és helyezzen üzembe egy tárolóalapú mintaalkalmazást. A mintaalkalmazás az ügyfélkódtárat használja a mintaadatok kezelésére, létrehozására, olvasására és lekérdezésére.

  1. Nyisson meg egy terminált egy üres könyvtárban.

  2. Ha még nincs hitelesítve, jelentkezzen be az Azure Developer CLI-be a használatával azd auth login. Kövesse az eszköz által megadott lépéseket a parancssori felületre való hitelesítéshez az ön által előnyben részesített Azure-hitelesítő adatokkal.

    azd auth login
    
  3. A projekt inicializálására használható azd init .

    azd init --template cosmos-db-nosql-nodejs-quickstart
    
  4. Az inicializálás során konfiguráljon egy egyedi környezetnevet.

  5. Az Azure Cosmos DB-fiók üzembe helyezése azd up használatával. A Bicep-sablonok egy minta webalkalmazást is üzembe helyeznek.

    azd up
    
  6. A kiépítési folyamat során válassza ki az előfizetést, a kívánt helyet és a célerőforrás-csoportot. Várja meg, amíg a kiépítési folyamat befejeződik. A folyamat körülbelül öt percet vehet igénybe.

  7. Az Azure-erőforrások kiépítése után a kimenet tartalmazza a futó webalkalmazás URL-címét.

    Deploying services (azd deploy)
    
      (✓) Done: Deploying service web
    - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io>
    
    SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.
    
  8. A konzol URL-címével keresse meg a webalkalmazást a böngészőben. Figyelje meg a futó alkalmazás kimenetét.

Képernyőkép a futó webalkalmazásról.

Képernyőkép a futó webalkalmazásról.

Telepítse az ügyfélkódtárat

Az ügyfélkönyvtár a @azure/cosmos csomagként a Node csomagkezelőn keresztül érhető el.

  1. Nyisson meg egy terminált, és keresse meg a /src mappát.

    cd ./src
    
  2. Ha még nincs telepítve, telepítse a @azure/cosmos csomagot a npm install használatával.

    npm install --save @azure/cosmos
    
  3. Emellett telepítse a @azure/identity csomagot, ha még nincs telepítve.

    npm install --save @azure/identity
    
  4. Nyissa meg és tekintse át az src/package.json fájlt annak ellenőrzéséhez, hogy a bejegyzések és azure-cosmos a azure-identity bejegyzések is léteznek-e.

Könyvtárak importálása

Importálja az DefaultAzureCredential és CosmosClient típusokat az alkalmazáskódba.

import { DefaultAzureCredential } from '@azure/identity';
import { CosmosClient } from '@azure/cosmos';

Importálja az összes szükséges típust az alkalmazáskódba.

import { PagedAsyncIterableIterator } from '@azure/core-paging';
import { DefaultAzureCredential, TokenCredential } from '@azure/identity';
import { Container, CosmosClient, Database, FeedResponse, ItemResponse, SqlQuerySpec } from '@azure/cosmos';

Objektummodell

Név Leírás
CosmosClient Ez az osztály az elsődleges ügyfélosztály, és a fiókszintű metaadatok vagy adatbázisok kezelésére szolgál.
Database Ez az osztály egy adatbázist jelöl a fiókon belül.
Container Ez az osztály elsősorban olvasási, frissítési és törlési műveletek végrehajtására szolgál a tárolón vagy a tárolóban tárolt elemeken.
PartitionKey Ez az osztály egy logikai partíciókulcsot jelöl. Ez az osztály számos gyakori művelethez és lekérdezéshez szükséges.
SqlQuerySpec Ez az interfész egy SQL-lekérdezést és minden lekérdezési paramétert jelöl.

Kódpéldák

A sablon mintakódja egy névvel ellátott cosmicworks adatbázist és egy nevű tárolót productshasznál. A products tároló olyan részleteket tartalmaz, mint a név, a kategória, a mennyiség, az egyedi azonosító és az egyes termékekhez tartozó értékesítési jelző. A tároló a tulajdonságot /category logikai partíciókulcsként használja.

Az ügyfél hitelesítése

Ez a minta létrehoz egy új CosmosClient típusú példányt, és természetesen egy DefaultAzureCredential példány használatával hitelesít.

const credential = new DefaultAzureCredential();

const client = new CosmosClient({
    '<azure-cosmos-db-nosql-account-endpoint>',
    aadCredentials: credential
});
const credential: TokenCredential = new DefaultAzureCredential();

const client = new CosmosClient({
    '<azure-cosmos-db-nosql-account-endpoint>',
    aadCredentials: credential
});

Adatbázis lekérése

A meglévő cosmicworks nevű adatbázis lekéréséhez használja a client.database-t.

const database = client.database('cosmicworks');
const database: Database = client.database('cosmicworks');

Szerezz be egy tárolót

A meglévő products tároló visszakeresése a database.container segítségével.

const container = database.container('products');
const container: Container = database.container('products');

Elem létrehozása

Hozzon létre egy új objektumot a JSON-ba szerializálni kívánt összes taggal. Ebben a példában a típus egyedi azonosítóval rendelkezik, és a kategória, a név, a mennyiség, az ár és az értékesítés mezői. Hozzon létre egy elemet a tárolóban a következő használatával container.items.upsert: . Ez a módszer hatékonyan beszúrja vagy frissíti az elemet, lecserélve azt, ha már létezik.

const item = {
    'id': 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    'category': 'gear-surf-surfboards',
    'name': 'Yamba Surfboard',
    'quantity': 12,
    'price': 850.00,
    'clearance': false
};

let response = await container.items.upsert(item);
const item: Product = {
    'id': 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    'category': 'gear-surf-surfboards',
    'name': 'Yamba Surfboard',
    'quantity': 12,
    'price': 850.00,
    'clearance': false
};

let response: ItemResponse<Product> = await container.items.upsert<Product>(item);

Elem olvasása

Pontolvasási műveletet hajt végre az egyedi azonosító (id) és a partíciókulcs mezőinek használatával. Segítségével container.item mutatót kaphat egy elemhez, és item.read hatékonyan lekérheti az adott elemet.

const id = 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb';
const partitionKey = 'gear-surf-surfboards';

let response = await container.item(id, partitionKey).read();
let read_item = response.resource;
const id = 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb';
const partitionKey = 'gear-surf-surfboards';

let response: ItemResponse<Product> = await container.item(id, partitionKey).read<Product>();
let read_item: Product = response.resource!;

Lekérdezési elemek

Lekérdezés végrehajtása egy tároló több eleme felett a következő használatával container.items.query: . Egy adott kategórián belüli összes elem megkeresése ezzel a paraméteres lekérdezéssel:

SELECT * FROM products p WHERE p.category = @category

A lekérdezés összes eredményének lekérése a következő használatával query.fetchAll: . Futtasd végig a lekérdezés eredményeit.

const querySpec = {
    query: 'SELECT * FROM products p WHERE p.category = @category',
    parameters: [
        {
            name: '@category',
            value: 'gear-surf-surfboards'
        }
    ]
};

let response = await container.items.query(querySpec).fetchAll();
for (let item of response.resources) {
    // Do something
}
const querySpec: SqlQuerySpec = {
    query: 'SELECT * FROM products p WHERE p.category = @category',
    parameters: [
        {
            name: '@category',
            value: 'gear-surf-surfboards'
        }
    ]
};

let response: FeedResponse<Product> = await container.items.query<Product>(querySpec).fetchAll();
for (let item of response.resources) {
    // Do something
}

Fedezd fel az adataidat

A NoSQL-adatok megismeréséhez használja az Azure Cosmos DB Visual Studio Code-bővítményét. Alapvető adatbázisműveleteket hajthat végre, beleértve, de nem kizárólagosan az alábbiakat:

  • Lekérdezések végrehajtása egy album vagy a lekérdezésszerkesztő használatával
  • Elemek módosítása, frissítése, létrehozása és törlése
  • Tömeges adatok importálása más forrásokból
  • Adatbázisok és tárolók kezelése

További információ: A Visual Studio Code bővítmény használata az Azure Cosmos DB for NoSQL-adatok megismeréséhez.

Az erőforrások rendbetétele

Ha már nincs szüksége a mintaalkalmazásra vagy erőforrásokra, távolítsa el a megfelelő üzembe helyezést és az összes erőforrást.

azd down