Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatbejelentkezni vagymódosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatjamódosítani a címtárat.
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ó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 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.
Nyisson 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 loginA projekt inicializálására használható
azd init.azd init --template cosmos-db-table-nodejs-quickstartAz inicializálás során konfiguráljon egy egyedi környezetnevet.
Az Azure Cosmos DB-fiók üzembe helyezése
azd uphasználatával. A Bicep-sablonok egy minta webalkalmazást is üzembe helyeznek.azd upA 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önyvtárat
Az ügyfélkódtár az npm-ben érhető el csomagként @azure/data-tables .
Nyisson meg egy terminált, és keresse meg a
/src/tsmappát.cd ./src/tsHa még nincs telepítve, telepítse a
@azure/data-tablescsomagot anpm installhasználatával.npm install --save @azure/data-tablesNyissa meg és tekintse át az src/ts/package.json fájlt a
@azure/data-tablesbejegyzés meglétének ellenőrzéséhez.
Nyisson meg egy terminált, és keresse meg a
/src/jsmappát.cd ./src/jsHa még nincs telepítve, telepítse a
@azure/data-tablescsomagot anpm installhasználatával.npm install --save @azure/data-tablesNyissa meg és tekintse át az src/js/package.json fájlt a
@azure/data-tablesbejegyzés meglétének ellenőrzéséhez.
Könyvtárak importálása
Importálja a DefaultAzureCredential, TableServiceClientés TableClient a típusokat az alkalmazáskódba.
import { DefaultAzureCredential } from '@azure/identity';
import { TableServiceClient, TableClient } from '@azure/data-tables';
Importálja az összes szükséges típust az alkalmazáskódba.
import { DefaultAzureCredential, TokenCredential } from '@azure/identity';
import { TableServiceClient, TableClient, TableEntityResult, GetTableEntityResponse, TableEntityResultPage, TableEntityQueryOptions } from '@azure/data-tables';
Objektummodell
| Név | Leírás |
|---|---|
TableServiceClient |
Ez a típus az elsődleges ügyféltípus, és a fiókszintű metaadatok vagy adatbázisok kezelésére szolgál. |
TableClient |
Ez a típus a fiókon belüli tábla ügyfélét jelöli. |
Kódpéldák
- Az ügyfél hitelesítése
- Táblázat lekérése
- Entitás létrehozása
- Egy entitás lekérése
- Entitások lekérdezése
A sablonban lévő mintakód egy nevű táblát cosmicworks-productshasznál. A cosmicworks-products táblázat olyan részleteket tartalmaz, mint a név, a kategória, a mennyiség, az ár, az egyedi azonosító és az egyes termékek értékesítési jelzője. A tároló egy egyedi azonosítót használ sorkulcsként és kategóriaként partíciókulcsként.
Az ügyfél hitelesítése
Ez a minta létrehoz egy új példányt a TableServiceClient típusból.
let client: TableServiceClient = new TableServiceClient("<azure-cosmos-db-table-account-endpoint>", "<credential>");
const credential = new DefaultAzureCredential();
let client = new TableServiceClient("<azure-cosmos-db-table-account-endpoint>", credential);
Asztalt foglalni
Ez a minta a TableClient típus egy példányát hozza létre a GetTableClient típus TableServiceClient függvényével.
let table: TableClient = new TableClient("<azure-cosmos-db-table-account-endpoint>", "<azure-cosmos-db-table-name>", credential);
let table = new TableClient("<azure-cosmos-db-table-account-endpoint>", "<azure-cosmos-db-table-name>", credential);
Entitás létrehozása
Az új entitások táblabeli létrehozásának legegyszerűbb módja egy új felület TableEntity levezetése, majd egy ilyen típusú új objektum létrehozása.
export interface Product extends TableEntity {
name: string;
quantity: number;
price: number;
clearance: boolean;
}
const entity: Product = {
rowKey: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
partitionKey: 'gear-surf-surfboards',
name: 'Yamba Surfboard',
quantity: 12,
price: 850.00,
clearance: false
};
Egy tábla új elemének létrehozásának legegyszerűbb módja egy JSON-objektum létrehozása.
const entity = {
rowKey: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
partitionKey: 'gear-surf-surfboards',
name: 'Yamba Surfboard',
quantity: 12,
price: 850.00,
clearance: false
};
Hozzon létre egy entitást a táblában a upsertEntity példány TableService metódusának segítségével.
await table.upsertEntity<Product>(entity, "Replace");
await table.upsertEntity(entity, "Replace");
Entitás lekérése
Egy adott entitást lekérhet egy táblából az getEntity entitás metódusával, sorkulcsával és az entitás partíciókulcsával .
const response: GetTableEntityResponse<TableEntityResult<Product>> = await table.getEntity<Product>(partitionKey, rowKey);
const entity: Product = response as Product;
const entity = await table.getEntity(partitionKey, rowKey);
Entitások lekérdezése
Miután beszúrt egy entitást, egy lekérdezést is futtathat az adott szűrőnek megfelelő összes entitás lekéréséhez egy OData-szűrő használatával listEntities .
const partitionKey: string = 'gear-surf-surfboards';
const filter: string = odata`PartitionKey eq '${partitionKey}'`
const queryOptions: TableEntityQueryOptions = { filter: filter }
const entities: PagedAsyncIterableIterator<TableEntityResult<Product>, TableEntityResultPage<Product>> = table.listEntities<Product>({ queryOptions: queryOptions });
const partitionKey = 'gear-surf-surfboards';
const entities = table.listEntities({
queryOptions: {
filter: odata`PartitionKey eq '${partitionKey}'`
}
});
A lekérdezés lapokra osztott eredményeinek feldolgozására használjon egy aszinkron for await hurkot a lapokra osztott entities halmazban.
for await(const entity of entities) {
// Do something
}
for await(const entity of entities) {
// Do something
}
Az erőforrások tisztí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