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


Azure Tables ügyfélkódtár JavaScripthez – 13.2.2-es verzió

Az 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 Tables 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
  • Entitások lekérdezése/létrehozása/olvasása/frissítése/törlése

Az Azure Cosmos DB table API-t biztosít az Azure Table Storage-hoz írt alkalmazásokhoz, amelyekhez prémium szintű képességekre van szükség, például:

  • Kulcsrakész globális terjesztés.
  • Dedikált teljesítmény világszerte.
  • Az esetek 99%-ában egyszámjegyű ezredmásodperces késés.
  • Garantáltan magas szintű rendelkezésre állás.
  • Automatikus másodlagos indexelés.
  • Az Azure Tables ügyféloldali kódtára zökkenőmentesen megcélzhatja az Azure Table Storage-ot vagy az Azure Cosmos DB table service-végpontokat kódmódosítások nélkül.

Főbb hivatkozások:

Első lépések

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 Azure-előfizetéssel , tárfióktal vagy Azure CosmosDB-adatbázissal kell rendelkeznie.

Telepítse a(z) @azure/data-tables csomagot

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

Hitelesítés TableServiceClient

Az Azure Tables számos módszert támogat a hitelesítéshez. Az Azure Tables szolgáltatás használatához létre kell hoznia egy Tables-ügyfélpéldányt – TableServiceClient vagy TableClient például. A hitelesítésről további információt a létrehozási TableServiceClientmintákban talá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ók kapcsolati 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 a csomagkontraszt dokumentációjában talál további információt.

CORS

Ha böngészőkre van szüksége, be kell állítania az eltérő eredetű erőforrások megosztására (CORS) vonatkozó szabályokat a tárfiókhoz. Lépjen Azure Portal és Azure Storage Explorer, keresse meg a tárfiókot, hozzon létre új CORS-szabályokat a blob-/queue/file/table szolgáltatás(ok)hoz.

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

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

Fő fogalmak

  • TableServiceClient – Olyan ügyfél, amely a Table Service szintjén történő interakciót biztosító függvényeket biztosít, például táblákat hoz létre, listáz és töröl

  • TableClient – Olyan ügyfél, amely entitásszinten működő függvényeket biztosít, például entitásokat hoz létre, listáz és töröl egy táblán belül.

  • Table – A táblák entitásgyűjteményké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 Service leggyakoribb felhasználási módjai:

  • Több TB-nyi, webes méretű alkalmazások kiszolgálására alkalmas strukturált adat tárolása
  • Olyan adathalmazok tárolása, amelyekhez nincs szükség összetett illesztésekre, idegen kulcsokra vagy tárolt eljárásokra, és amelyek a gyors hozzáférés érdekében normalizálhatók
  • Adatok gyors lekérdezése fürtözött indexszel
  • Adatok elérése az OData protokoll szűrőkifejezéseinek használatával

Példák

A csomag importálása

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

const AzureTables = require("@azure/data-tables");

Azt is megteheti, hogy csak a szükséges típusokat importálja szelektíven:

const { TableServiceClient, AzureNamedKeyCredential } = require("@azure/data-tables");

A Table szolgáltatásügyfél létrehozása

A TableServiceClient használatához a table szolgáltatás URL-címe és egy hozzáférési hitelesítő adat szükséges. Emellett opcionálisan elfogad bizonyos beállításokat a options paraméterben.

TableServiceClient az AzureNamedKeyCredential használatával

A-val AzureNamedKeyCredential példányosíthat egy TableServiceClient példányt, ha argumentumként adja meg a fióknevet és a fiókkulcsot. (A fióknév és a fiókkulcs az Azure Portalon szerezhető be.) [CSAK NODE.JS FUTTATÓKÖRNYEZETBEN ÉRHETŐ EL]

const { TableServiceClient, AzureNamedKeyCredential } = require("@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 service-nek küldött kérések identitásalapú hitelesítéséhez a Storage-végpontok megcélzásakor. A Azure AD szerepköralapú hozzáférés-vezérléssel (RBAC) biztosíthat hozzáférést az Azure Table-erőforrásokhoz felhasználók, csoportok vagy alkalmazások számára.

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

A csomaggal zökkenőmentesen engedélyezheti a @azure/identity kéréseket fejlesztési és éles környezetben is. A Azure AD Azure Storage-integrációval kapcsolatos további információkért lásd: Azure.Identity README

const { TableServiceClient } = require("@azure/data-tables");
const { DefaultAzureCredential } = require("@azure/identity");

// DefaultAzureCredential expects the following three environment variables:
// - AZURE_TENANT_ID: The tenant ID in Azure Active Directory
// - AZURE_CLIENT_ID: The application (client) ID registered in the AAD tenant
// - AZURE_CLIENT_SECRET: The client secret for the registered application
const credential = new DefaultAzureCredential();
const account = "<account name>";

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

TableServiceClient SAS-jogkivonattal

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

const { TableServiceClient, AzureSASCredential } = require("@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)
);

A fiók tábláinak listázása

A fiókon belüli táblákat a függvényt TableServiceClient meghívó listTables példányon keresztül listázhatja. Ez a függvény egy olyan értéket PageableAsyncIterator ad vissza, amelyet felhasználhat a használatával for-await-of

const { TableServiceClient, AzureNamedKeyCredential } = require("@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
);

async function main() {
  let tablesIter = serviceClient.listTables();
  let i = 1;
  for await (const table of tablesIter) {
    console.log(`Table${i}: ${table.name}`);
    i++;
    // Output:
    // Table1: testTable1
    // Table1: testTable2
    // Table1: testTable3
    // Table1: testTable4
    // Table1: testTable5
  }
}

main();

Új tábla létrehozása

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

const { TableServiceClient, AzureNamedKeyCredential } = require("@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
);

async function main() {
  const tableName = `newtable`;
  // If the table 'newTable' already exists, createTable doesn't throw
  await serviceClient.createTable(tableName);
}

main();

Íme egy minta, amely bemutatja, hogyan tesztelheti, hogy a tábla már létezik-e a létrehozásakor:

const { TableServiceClient, AzureNamedKeyCredential } = require("@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
);

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

main();

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

A TableClient létrehozása ugyanúgy történik, mint az TableServiceClient a különbséggel, amely TableClient egy táblanevet vesz fel paraméterként

TableClient a AzureNamedKeyCredential

Az a-val TableClientAzureNamedKeyCredential történő példányosításhoz adja meg a fióknevet és a fiókkulcsot argumentumként. (A fióknév és a fiókkulcs az Azure Portalon szerezhető be.) [CSAK NODE.JS FUTTATÓKÖRNYEZETBEN ÉRHETŐ EL]

const { TableClient, AzureNamedKeyCredential } = require("@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 with TokenCredential (Azure Active Directory)

Az Azure Tables integrációt biztosít az Azure Active Directoryval (Azure AD) a Table szolgáltatásnak küldött kérések identitásalapú hitelesítéséhez a Storage-végpontok megcélzásakor. A Azure AD szerepköralapú hozzáférés-vezérléssel (RBAC) hozzáférést biztosíthat az Azure Table-erőforrásokhoz a felhasználók, csoportok vagy alkalmazások számára.

A táblaerőforráshoz TokenCredentialvaló hozzáféréshez 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 Storage Azure AD integrációjáról az Azure.Identity README című témakörben talál további információt.

const { TableClient } = require("@azure/data-tables");
const { DefaultAzureCredential } = require("@azure/identity");

// DefaultAzureCredential expects the following three environment variables:
// - AZURE_TENANT_ID: The tenant ID in Azure Active Directory
// - AZURE_CLIENT_ID: The application (client) ID registered in the AAD tenant
// - AZURE_CLIENT_SECRET: The client secret for the registered application
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

Közös hozzáférésű jogosultságkódokkal (SAS) példányosíthat egy példányt TableClient . Az SAS-jogkivonatot az Azure Portalról szerezheti be.

const { TableClient, AzureSASCredential } = require("@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)
);

TableClient TokenCredential (AAD) használatával

Az Azure Tables integrációt biztosít az Azure Active Directoryval (Azure AD) a Table szolgáltatásnak küldött kérések identitásalapú hitelesítéséhez a Storage-végpontok megcélzásakor. A Azure AD szerepköralapú hozzáférés-vezérléssel (RBAC) hozzáférést biztosíthat az Azure Table-erőforrásokhoz a felhasználók, csoportok vagy alkalmazások számára.

A táblaerőforráshoz TokenCredentialvaló hozzáféréshez 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 Storage Azure AD integrációjáról az Azure.Identity README című témakörben talál további információt.

const { TableClient } = require("@azure/data-tables");
const { DefaultAzureCredential } = require("@azure/identity");

// DefaultAzureCredential expects the following three environment variables:
// - AZURE_TENANT_ID: The tenant ID in Azure Active Directory
// - AZURE_CLIENT_ID: The application (client) ID registered in the AAD tenant
// - AZURE_CLIENT_SECRET: The client secret for the registered application
const credential = new DefaultAzureCredential();
const account = "<account name>";
const tableName = "<tableName>";

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

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

A táblán belüli entitásokat a függvényt meghívó TableClientlistEntities példányon keresztül listázhatja. Ez a függvény egy PageableAsyncIterator olyan értéket ad vissza, amelyet felhasználhat a használatával for-await-of

const { TableClient, AzureNamedKeyCredential } = require("@azure/data-tables");

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

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

async function main() {
  let entitiesIter = client.listEntities();
  let i = 1;
  for await (const entity of entitiesIter) {
    console.log(`Entity${i}: PartitionKey: ${entity.partitionKey} RowKey: ${entity.rowKey}`);
    i++;
    // Output:
    // Entity1: PartitionKey: P1 RowKey: R1
    // Entity2: PartitionKey: P2 RowKey: R2
    // Entity3: PartitionKey: P3 RowKey: R3
    // Entity4: PartitionKey: P4 RowKey: R4
  }
}

main();

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

Új entitást a függvényt meghívó példányon keresztül hozhat létre egy TableClientcreateEntity táblában. Ez a függvény az entitást paraméterként fogja beszúrni. Az entitásnak tartalmaznia kell a és rowKeya elemetpartitionKey.

const { TableClient, AzureNamedKeyCredential } = require("@azure/data-tables");

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

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

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

main();

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 hivatkozikUseDevelopmentStorage=true. A parancsikon egyenértékű az emulátor teljes kapcsolati sztring, amely az egyes Azure Storage-szolgáltatások fióknevét, fiókkulcsát és emulátorvégpontjait határozza meg: (lásd még). Ezzel a parancsikonlal az Azure Tables Client SDK beállítja az alapértelmezett kapcsolati sztring és allowInsecureConnection az ügyfélbeállításokat.

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 egyéni kapcsolati sztring megadásával manuálisan is csatlakozhat az azurite-hoz a kapcsolati sztring parancsikon használata nélkül. Azonban manuálisan kell beállítani, allowInsecureConnection 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 kérdések

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ódok

Naplózá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 környezeti változót a AZURE_LOG_LEVEL értékre info. A naplózás futásidőben is engedélyezhető a következő hívással setLogLevel@azure/logger:

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

Következő lépések

További kódminták hamarosan probléma#10531

Közreműködés

A projektben szívesen fogadjuk a hozzájárulásokat és a javaslatokat. A legtöbb hozzájáruláshoz el kell fogadnia egy Közreműködői licencszerződést (CLA-t), amelyben kijelenti, hogy jogosult arra, hogy ránk ruházza hozzájárulása felhasználási jogát, és ezt ténylegesen meg is teszi. További részletekért lásd: https://cla.microsoft.com.

A lekéréses kérelmek elküldésekor egy CLA-robot automatikusan meghatározza, hogy kell-e biztosítania CLA-t, és megfelelően kitölti a lekéréses kérelmet (például címke, megjegyzés). Egyszerűen csak kövesse a robot által megadott utasításokat. Ezt csak egyszer kell elvégeznie az összes olyan tárházban, amely a CLA-t használja.

A projekt a Microsoft nyílt forráskódú projekteket szabályozó etikai kódexe, a Microsoft Open Source Code of Conduct hatálya alá esik. További információkért lásd a viselkedési szabályzattal kapcsolatos gyakori kérdéseket , vagy vegye fel a kapcsolatot opencode@microsoft.com az esetleges további kérdésekkel vagy megjegyzésekkel.

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.

Megjelenések