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


Rövid útmutató: Az Azure Cosmos DB for NoSQL használata az Azure SDK-val Node.js

Ebben a rövid útmutatóban üzembe helyez egy alapszintű Azure Cosmos DB for Table alkalmazást az Azure SDK Node.js használatával. Az Azure Cosmos DB for Table egy séma nélküli adattár, amely lehetővé teszi, hogy az alkalmazások strukturált táblaadatokat tároljanak a felhőben. Megtudhatja, hogyan hozhat létre táblákat, sorokat és hajthat végre alapvető feladatokat az Azure Cosmos DB-erőforrásban az Azure SDK for Node.js használatával.

API-referenciadokumentáció Kódtár forráskódcsomagja | (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 Table-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 a következő használatával azd up: . 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ódtár csomagként @azure/cosmos a Node Csomagkezelő 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 csomagot a @azure/cosmos következővel npm install: .

    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-identity a azure-cosmos bejegyzések is léteznek-e.

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 típusú példányt, CosmosClient és 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ő, elnevezett cosmicworksadatbázis lekérésére használhatóclient.database.

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

Tároló lekérése

A meglévő products tároló lekérése a következővel database.container: .

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 metódus "upserts" az elemet hatékonyan cserélje le, 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
}

Az adatok felfedezése

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 eltávolítása

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