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


Azure Tables client library for JavaScript - version 13.3.2

Azure Tables egy felhőalapú szolgáltatás, amely strukturált NoSQL-adatokat tárol, és séma nélküli kialakítású kulcs-/attribútumtárolót biztosít. A Table Storage rugalmasságot és méretezhetőséget biztosít a fejlesztőknek az Azure-felhő minden legjobb részével.

Az ügyfélkódtár használatával:

  • Táblák létrehozása/törlése
  • Lekérdezés/Létrehozás/Olvasás/Frissítés/Entitások törlése

Az Azure Cosmos DB egy Table API-t biztosít az Azure Table Storage-hoz írt alkalmazásokhoz, amelyek prémium szintű képességeket igényelnek, például:

  • Kulcsrakész globális disztribúció.
  • Dedikált átviteli sebesség világszerte.
  • Egyjegyű ezredmásodperc késések a 99. percentilisnél.
  • Garantált magas rendelkezésre állás.
  • Automatikus másodlagos indexelés.
  • Az Azure Tables ügyféloldali kódtára zökkenőmentesen meg tudja célozni az Azure Table Storage-t vagy az Azure Cosmos DB table service-végpontokat kódmódosítás nélkül.

Főbb hivatkozások:

Kezdetekhez

Előfeltételek

Jelenleg támogatott környezetek:

  • A Node.js LTS-verziói
  • A Safari, a Chrome, az Edge és a Firefox legújabb verziói

A csomag használatához rendelkeznie kell egy Azure-előfizetési és egy Storage-fiók vagy egy Azure CosmosDB-adatbázissal.

A @azure/data-tables csomag telepítése

A JavaScripthez készült Azure Tables ügyfélkódtár telepítésének elsődleges módja az npm-csomagkezelő használata. Írja be a következőt egy terminálablakba:

npm install @azure/data-tables

TableServiceClient hitelesítése

Az Azure Tables számos módon támogatja a hitelesítést. Az Azure Tables szolgáltatás használatához létre kell hoznia egy Tables-ügyfélpéldányt – például TableServiceClient vagy TableClient. A létrehozásához tekintse meg mintákat a hitelesítésről.

Megjegyzés: Az Azure Active Directory (AAD) csak Az Azure Storage-fiókok esetében támogatott.

Az alábbi funkciók, felületek, osztályok vagy függvények csak Node.js

  • Megosztott kulcs engedélyezése a fióknév és a fiókkulcs alapján
    • AzureNamedKeyCredential
    • Fiókkapcsolati sztring.

JavaScript-csomag

Ahhoz, hogy ezt az ügyfélkódtárat a böngészőben használhassa, először egy kötegelőt kell használnia. Ennek módjáról további információt a csomagküldő dokumentációbantalál.

CORS

Ha böngészőkre van szüksége, be kell állítania forrásközi erőforrás-megosztási (CORS) szabályokat a tárfiókhoz. Nyissa meg az Azure Portalt és az Azure Storage Explorert, keresse meg a tárfiókot, hozzon létre új CORS-szabályokat a blob-/üzenetsor-/fájl-/táblaszolgáltatás(ok)hoz.

A hibakereséshez például az alábbi CORS-beállításokat hozhatja létre. Azonban az éles környezetben a követelményeknek megfelelően szabja testre a beállításokat.

  • Engedélyezett források: *
  • Engedélyezett parancsok: DELETE,GET,HEAD,MERGE,POST,OPTIONS,PUT
  • Engedélyezett fejlécek: *
  • Közzétett fejlécek: *
  • Maximális életkor (másodperc): 86400

Főbb fogalmak

  • TableServiceClient – Olyan ügyfél, amely táblaszolgáltatás szintjén használható funkciókat biztosít, például táblákat hozhat létre, listázhat és törölhet

  • TableClient – Olyan ügyfél, amely entitásszinten használható funkciókat biztosít, például entitások létrehozását, listázását és törlését egy táblán belül.

  • Table – A táblák entitásgyűjteményekként tárolják az adatokat.

  • Entity – Az entitások hasonlóak a sorokhoz. Az entitások elsődleges kulccsal és tulajdonságkészlettel rendelkeznek. A tulajdonság egy oszlophoz hasonló név, típus-érték pár.

A Table szolgáltatás gyakori felhasználási területei a következők:

  • Webes skálázási alkalmazások kiszolgálására alkalmas strukturált adatok TB-jainak tárolása
  • Olyan adathalmazok tárolása, amelyek nem igényelnek összetett illesztéseket, idegen kulcsokat vagy tárolt eljárásokat, és a gyors hozzáférés érdekében normalizálhatók
  • Adatok gyors lekérdezése fürtözött index használatával
  • Adatok elérése az OData protokoll szűrőkifejezéseivel

Példák

A csomag importálása

Az ügyfelek használatához importálja a csomagot a fájlba:

import * as azureTables from "@azure/data-tables";

Másik lehetőségként csak a szükséges típusokat importálja szelektíven:

import { TableServiceClient, AzureNamedKeyCredential } from "@azure/data-tables";

A Table service-ügyfél létrehozása

A TableServiceClient megköveteli a táblaszolgáltatás URL-címét és a hozzáférési hitelesítő adatokat. Emellett a options paraméter bizonyos beállításait is elfogadja.

TableServiceClient az AzureNamedKeyCredential használatával

A fióknév és a fiókkulcs argumentumként való átadásával TableServiceClient hozhat létre AzureNamedKeyCredential. (A fióknév és a fiókkulcs az Azure Portalon szerezhető be.) [CSAK NODE.JS FUTTATÓKÖRNYEZETBEN ÉRHETŐ EL]

import { AzureNamedKeyCredential, TableServiceClient } from "@azure/data-tables";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new AzureNamedKeyCredential(account, accountKey);
const serviceClient = new TableServiceClient(
  `https://${account}.table.core.windows.net`,
  credential,
);

TableServiceClient TokenCredential (AAD) használatával

Az Azure Tables integrációt biztosít az Azure Active Directoryval (Azure AD) a Table szolgáltatáshoz érkező kérések identitásalapú hitelesítéséhez a Storage-végpontok megcélzásakor. Az Azure AD-vel szerepköralapú hozzáférés-vezérléssel (RBAC) biztosíthatja az Azure Table-erőforrásokhoz való hozzáférést a felhasználóknak, csoportoknak vagy alkalmazásoknak.

Ha egy TokenCredentialrendelkező táblaerőforrást szeretne elérni, a hitelesített identitásnak "Storage Table Data Contributor" vagy "Storage Table Data Reader" szerepkörrel kell rendelkeznie.

A @azure/identity csomaggal zökkenőmentesen engedélyezheti a kéréseket mind a fejlesztési, mind az éles környezetben. Az Azure AD Azure Storage-beli integrációjáról az Azure.Identity README

import { DefaultAzureCredential } from "@azure/identity";
import { TableServiceClient } from "@azure/data-tables";

const credential = new DefaultAzureCredential();
const account = "<account name>";

const clientWithAAD = new TableServiceClient(
  `https://${account}.table.core.windows.net`,
  credential,
);

TableServiceClient SAS-jogkivonattal

Emellett egy TableServiceClient is létrehozhat közös hozzáférésű jogosultságkódokkal (SAS). Az SAS-jogkivonatot az Azure Portalról szerezheti be.

import { TableServiceClient, AzureSASCredential } from "@azure/data-tables";

const account = "<account name>";
const sas = "<service Shared Access Signature Token>";

const serviceClientWithSAS = new TableServiceClient(
  `https://${account}.table.core.windows.net`,
  new AzureSASCredential(sas),
);

Listatáblák a fiókban

A TableServiceClient függvényt hívó listTables-példányon keresztül listázhatja a fiókban lévő táblákat. Ez a függvény egy PageableAsyncIterator ad vissza, amelyet for-await-of

import { DefaultAzureCredential } from "@azure/identity";
import { TableServiceClient } from "@azure/data-tables";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new DefaultAzureCredential();
const serviceClient = new TableServiceClient(
  `https://${account}.table.core.windows.net`,
  credential,
);

let i = 0;
const tables = serviceClient.listTables();
for await (const table of tables) {
  console.log(`Table${++i}: ${table.name}`);
}

Új tábla létrehozása

Egy táblát egy TableServiceClient-példányon keresztül hozhat létre, amely meghívja a createTable függvényt. Ez a függvény a létrehozandó tábla nevét veszi alapul paraméterként. Vegye figyelembe, hogy createTable nem fog hibát okozni, ha a tábla már létezik.

import { DefaultAzureCredential } from "@azure/identity";
import { TableServiceClient } from "@azure/data-tables";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new DefaultAzureCredential();
const serviceClient = new TableServiceClient(
  `https://${account}.table.core.windows.net`,
  credential,
);

const tableName = "newtable";
// If the table 'newTable' already exists, createTable doesn't throw
await serviceClient.createTable(tableName);

Az alábbi minta bemutatja, hogyan tesztelheti, hogy a tábla már létezik-e a létrehozásakor:

import { DefaultAzureCredential } from "@azure/identity";
import { TableServiceClient } from "@azure/data-tables";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new DefaultAzureCredential();
const serviceClient = new TableServiceClient(
  `https://${account}.table.core.windows.net`,
  credential,
);

const tableName = `newtable${+new Date()}`;
await serviceClient.createTable(tableName, {
  onResponse: (response) => {
    if (response.status === 409) {
      console.log(`Table ${tableName} already exists`);
    }
  },
});

A táblaügyfél létrehozása

A TableClient a TableServiceClient hasonlóan jön létre, azzal a különbséggel, hogy TableClient egy táblanevet vesz fel paraméterként

TableClient AzureNamedKeyCredential

A fióknév és a fiókkulcs argumentumként való átadásával TableClient hozhat létre AzureNamedKeyCredential. (A fióknév és a fiókkulcs az Azure Portalon szerezhető be.) [CSAK NODE.JS FUTTATÓKÖRNYEZETBEN ÉRHETŐ EL]

import { AzureNamedKeyCredential, TableClient } from "@azure/data-tables";

// Enter your storage account name and shared key
const account = "<account>";
const accountKey = "<accountkey>";
const tableName = "<tableName>";

// Use AzureNamedKeyCredential with storage account and account key
// AzureNamedKeyCredential is only available in Node.js runtime, not in browsers
const credential = new AzureNamedKeyCredential(account, accountKey);
const client = new TableClient(`https://${account}.table.core.windows.net`, tableName, credential);

TableClient TokenCredential (Azure Active Directory)

Az Azure Tables integrációt biztosít az Azure Active Directoryval (Azure AD) a Table szolgáltatáshoz érkező kérések identitásalapú hitelesítéséhez a Storage-végpontok megcélzásakor. Az Azure AD-vel szerepköralapú hozzáférés-vezérléssel (RBAC) biztosíthatja az Azure Table-erőforrásokhoz való hozzáférést a felhasználóknak, csoportoknak vagy alkalmazásoknak.

Ha egy TokenCredentialrendelkező táblaerőforrást szeretne elérni, a hitelesített identitásnak "Storage Table Data Contributor" vagy "Storage Table Data Reader" szerepkörrel kell rendelkeznie.

A @azure/identity csomaggal zökkenőmentesen engedélyezheti a kéréseket mind a fejlesztési, mind az éles környezetben. Az Azure AD Azure Storage-beli integrációjáról az Azure.Identity README

import { DefaultAzureCredential } from "@azure/identity";
import { TableClient } from "@azure/data-tables";

const credential = new DefaultAzureCredential();
const account = "<account name>";
const tableName = "<tableName>";

const clientWithAAD = new TableClient(
  `https://${account}.table.core.windows.net`,
  tableName,
  credential,
);

TableClient SAS-jogkivonattal

A TableClient közös hozzáférésű jogosultságkódokkal (SAS) is létrehozhatja. Az SAS-jogkivonatot az Azure Portalról szerezheti be.

import { TableClient, AzureSASCredential } from "@azure/data-tables";

const account = "<account name>";
const sas = "<service Shared Access Signature Token>";
const tableName = "<tableName>";

const clientWithSAS = new TableClient(
  `https://${account}.table.core.windows.net`,
  tableName,
  new AzureSASCredential(sas),
);

Entitások listázása egy táblában

A táblán belüli entitásokat egy TableClient-példányon keresztül listázhatja, amely meghívja a listEntities függvényt. Ez a függvény egy PageableAsyncIterator ad vissza, amelyet for-await-of

import { DefaultAzureCredential } from "@azure/identity";
import { TableClient } from "@azure/data-tables";

const account = "<account>";
const accountKey = "<accountkey>";
const tableName = "<tableName>";

const credential = new DefaultAzureCredential();
const client = new TableClient(`https://${account}.table.core.windows.net`, tableName, credential);

let i = 0;
const entities = client.listEntities();
for await (const entity of entities) {
  console.log(`Entity${++i}: PartitionKey: ${entity.partitionKey} RowKey: ${entity.rowKey}`);
}

Új entitás létrehozása és hozzáadása egy táblához

Létrehozhat egy új entitást egy táblában egy TableClient-példányon keresztül, amely meghívja a createEntity függvényt. Ez a függvény paraméterként beszúrja az entitást. Az entitásnak tartalmaznia kell partitionKey és rowKey.

import { DefaultAzureCredential } from "@azure/identity";
import { TableClient } from "@azure/data-tables";

const account = "<account>";
const accountKey = "<accountkey>";
const tableName = "<tableName>";

const credential = new DefaultAzureCredential();
const client = new TableClient(`https://${account}.table.core.windows.net`, tableName, credential);

const testEntity = {
  partitionKey: "P1",
  rowKey: "R1",
  foo: "foo",
  bar: 123,
};
await client.createEntity(testEntity);

Azurite és Storage Emulator

Az Azure Tables Client SDK az Azurite-tal, egy Azure Storage- és Tables API-kompatibilis kiszolgálóemulátorsal is működik. A használat megkezdéséhez tekintse meg az (Azurite-adattár) című témakört.

Csatlakozás az Azurite-hoz kapcsolati sztring parancsikonnal

Az Azurite-hoz az alkalmazásból való csatlakozás legegyszerűbb módja egy olyan kapcsolati sztring konfigurálása, amely a parancsikonra UseDevelopmentStorage=truehivatkozik. A parancsikon egyenértékű az emulátor teljes kapcsolati sztringével, amely megadja a fiók nevét, a fiókkulcsot és az emulátorvégpontokat az egyes Azure Storage-szolgáltatásokhoz: (további). Ezzel a parancsikonlal az Azure Tables ügyféloldali SDK beállítja az alapértelmezett kapcsolati sztringet, és allowInsecureConnection az ügyfélbeállítások között.

import { TableClient } from "@azure/data-tables";

const connectionString = "UseDevelopmentStorage=true";
const client = TableClient.fromConnectionString(connectionString, "myTable");

Csatlakozás az Azurite-hoz kapcsolati sztring parancsikon nélkül

A szolgáltatás URL-címének és AzureNamedKeyCredential vagy egyéni kapcsolati sztringjének megadásával manuálisan is csatlakozhat az azurite-hoz a kapcsolati sztring parancsikonja nélkül. allowInsecureConnection azonban manuálisan kell beállítani, ha az Azurite egy http végponton fut.

import { TableClient, AzureNamedKeyCredential } from "@azure/data-tables";

const client = new TableClient(
  "<Azurite-http-table-endpoint>",
  "myTable",
  new AzureNamedKeyCredential("<Azurite-account-name>", "<Azurite-account-key>"),
  { allowInsecureConnection: true },
);

Hibaelhárítás

Általános

Amikor a Javascript/Typescript SDK használatával használja a Tables szolgáltatást, a szolgáltatás által visszaadott hibák megegyeznek a REST API-kérésekhez visszaadott HTTP-állapotkódokkal: Storage Table Service hibakódjai

Fakitermelés

A naplózás engedélyezése segíthet a hibákról szóló hasznos információk feltárásában. A HTTP-kérések és válaszok naplójának megtekintéséhez állítsa a AZURE_LOG_LEVEL környezeti változót info. Másik lehetőségként a naplózás futásidőben is engedélyezhető a setLogLevel meghívásával a @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Hozzájárulás

Ez a projekt üdvözli a hozzájárulásokat és javaslatokat. A legtöbb hozzájárulás megköveteli, hogy elfogadja a közreműködői licencszerződést (CLA), amely kimondja, hogy önnek joga van a hozzájárulás használatára, és valóban meg kell adnia nekünk a jogosultságokat a hozzájárulás használatára. A részletekért látogasson el https://cla.microsoft.com.

A lekéréses kérelem elküldésekor a CLA-robot automatikusan meghatározza, hogy meg kell-e adnia egy CLA-t, és megfelelően kell-e díszítenie a lekéréses kérelmet (például címkét, megjegyzést). Egyszerűen kövesse a robot utasításait. Ezt csak egyszer kell elvégeznie az összes adattárban a CLA használatával.

Ez a projekt elfogadta a Microsoft nyílt forráskódú magatartási kódexének. További információkért lásd a magatartási kódexével kapcsolatos gyakori kérdéseket, vagy további kérdésekkel vagy megjegyzésekkel forduljon opencode@microsoft.com.

Ha hozzá szeretne járulni ehhez a kódtárhoz, olvassa el a közreműködői útmutatót, amelyből többet is megtudhat a kód összeállításáról és teszteléséről.