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.
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
Megjegyzés: Az Azure Active Directory (AAD) csak Az Azure Storage-fiókok esetében támogatott.
- szolgáltatásügyfél megosztott kulcsú
- szolgáltatásügyfél közös hozzáférésű jogosultságkódokkal
- Szolgáltatásügyfél TokenCredential (AAD)
- táblaügyfél megosztott kulcsú
- táblaügyfél közös hozzáférésű jogosultságkódokkal
- Táblaügyfél TokenCredential-lel (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ó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ölhetTableClient– 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
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