Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
Nyisson meg egy terminált egy üres könyvtárban.
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
A projekt inicializálására használható
azd init
.azd init --template cosmos-db-nosql-nodejs-quickstart
Az inicializálás során konfiguráljon egy egyedi környezetnevet.
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
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.
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.
A konzol URL-címével keresse meg a webalkalmazást a böngészőben. Figyelje meg a futó alkalmazás kimenetét.
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.
Nyisson meg egy terminált, és keresse meg a
/src
mappát.cd ./src
Ha még nincs telepítve, telepítse a
@azure/cosmos
csomagot anpm install
használatával.npm install --save @azure/cosmos
Emellett telepítse a
@azure/identity
csomagot, ha még nincs telepítve.npm install --save @azure/identity
Nyissa meg és tekintse át az src/package.json fájlt annak ellenőrzéséhez, hogy a bejegyzések és
azure-cosmos
aazure-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
- Az ügyfél hitelesítése
- Adatbázis lekérése
- Tároló lekérése
- Elem létrehozása
- Elem lekérése
- Lekérdezési elemek
A sablon mintakódja egy névvel ellátott cosmicworks
adatbázist és egy nevű tárolót products
haszná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