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 TableServiceClient
mintákban talál.
Megjegyzés: Az Azure Active Directory (AAD) csak Az Azure Storage-fiókok esetében támogatott.
- Szolgáltatásügyfél megosztott kulccsal
- Szolgáltatásügyfél közös hozzáférésű jogosultságkódokkal
- Szolgáltatásügyfél TokenCredential (AAD) használatával
- Táblaügyfél megosztott kulccsal
- Táblaügyfél közös hozzáférésű jogosultságkódokkal
- Table client with TokenCredential (AAD)
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ölTableClient
– 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 TokenCredential
haszná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 TableClient
AzureNamedKeyCredential
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 TokenCredential
való 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 TokenCredential
való 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ó TableClient
listEntities
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 TableClient
createEntity
táblában. Ez a függvény az entitást paraméterként fogja beszúrni. Az entitásnak tartalmaznia kell a és rowKey
a 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.
Azure SDK for JavaScript
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: