Bibliothèque de client Tables Azure pour JavaScript - version 13.3.0
Tables Azure est un service cloud qui stocke des données NoSQL structurées, fournissant un magasin de clés/attributs avec une conception sans schéma. Le stockage de tables offre aux développeurs une flexibilité et une scalabilité avec toutes les meilleures parties du cloud Azure.
Utilisez la bibliothèque cliente pour :
- Créer/supprimer des tables
- Interroger/créer/lire/mettre à jour/supprimer des entités
Azure Cosmos DB fournit une API Table pour les applications écrites pour le stockage Table Azure et qui ont besoin de fonctionnalités Premium telles que :
- Distribution globale clé en main.
- Débit dédié dans le monde entier.
- Latences de millisecondes à un chiffre au 99e centile.
- Haute disponibilité garantie.
- Indexation secondaire automatique.
- La bibliothèque cliente Tables Azure peut cibler en toute transparence le stockage de tables Azure ou les points de terminaison de service de table Azure Cosmos DB sans aucune modification du code.
Liens clés :
- code source
- package
(NPM) - Documentation de référence de l’API
- documentation produit
- Exemples
Commencer
Conditions préalables
Environnements actuellement pris en charge :
- Versions LTS de Node.js
- Dernières versions de Safari, Chrome, Edge et Firefox
Vous devez disposer d’un abonnement Azure et d’un compte de stockage ou d’une base de données Azure CosmosDB pour utiliser ce package.
Installer le package @azure/data-tables
La méthode recommandée pour installer la bibliothèque cliente Tables Azure pour JavaScript consiste à utiliser le gestionnaire de package npm. Tapez ce qui suit dans une fenêtre de terminal :
npm install @azure/data-tables
Authentifier un TableServiceClient
Les tables Azure prennent en charge plusieurs façons de s’authentifier. Pour interagir avec le service Tables Azure, vous devez créer une instance d’un client Tables , TableServiceClient
ou TableClient
par exemple. Consultez exemples pour créer le TableServiceClient
pour en savoir plus sur l’authentification.
Remarque : Azure Active Directory (AAD) n’est pris en charge que pour les comptes stockage Azure.
- client de service avec de clé partagée
- client de service avec des signatures d’accès partagé
- client de service avec le TokenCredential (AAD)
- client table avec de clé partagée
- client table avec des signatures d’accès partagé
- client table avec le TokenCredential (AAD)
Les fonctionnalités, interfaces, classes ou fonctions suivantes sont disponibles uniquement dans Node.js
- Autorisation de clé partagée basée sur le nom du compte et la clé de compte
AzureNamedKeyCredential
- Chaîne de connexion de compte.
JavaScript Bundle
Pour utiliser cette bibliothèque cliente dans le navigateur, vous devez d’abord utiliser un bundler. Pour plus d’informations sur la procédure à suivre, reportez-vous à notre documentation de regroupement .
CORS
Vous devez configurer règles de partage de ressources cross-origin (CORS) pour votre compte de stockage si vous devez développer pour les navigateurs. Accédez au portail Azure et à l’Explorateur Stockage Azure, recherchez votre compte de stockage, créez de nouvelles règles CORS pour les services blob/file/file/table.
Par exemple, vous pouvez créer les paramètres CORS suivants pour le débogage. Mais personnalisez soigneusement les paramètres en fonction de vos besoins dans l’environnement de production.
- Origines autorisées : *
- Verbes autorisés : DELETE,GET,HEAD,MERGE,POST,OPTIONS,PUT
- En-têtes autorisés : *
- En-têtes exposés : *
- Âge maximal (secondes) : 86400
Concepts clés
TableServiceClient
- Client qui fournit des fonctions permettant d’interagir au niveau d’un service de table, comme la création, la liste et la suppression de tablesTableClient
: client qui fournit des fonctions permettant d’interagir au niveau d’une entité, comme créer, répertorier et supprimer des entités dans une table.Table
: les tables stockent les données sous forme de collections d’entités.Entity
- Les entités sont similaires aux lignes. Une entité a une clé primaire et un ensemble de propriétés. Une propriété est une paire nom-valeur typée, similaire à une colonne.
Les utilisations courantes du service Table sont les suivantes :
- Stockage de bases de données structurées capables de servir des applications à l’échelle web
- Stockage de jeux de données qui ne nécessitent pas de jointures complexes, de clés étrangères ou de procédures stockées et qui peuvent être désintégérés pour un accès rapide
- Interrogation rapide des données à l’aide d’un index cluster
- Accès aux données à l’aide des expressions de filtre de protocole OData
Exemples
Importer le package
Pour utiliser les clients, importez le package dans votre fichier :
const AzureTables = require("@azure/data-tables");
Vous pouvez également importer sélectivement uniquement les types dont vous avez besoin :
const { TableServiceClient, AzureNamedKeyCredential } = require("@azure/data-tables");
Créer le client du service Table
Le TableServiceClient
nécessite une URL vers le service de table et des informations d’identification d’accès. Il accepte également certains paramètres dans le paramètre options
.
TableServiceClient
avec AzureNamedKeyCredential
Vous pouvez instancier un TableServiceClient
avec un AzureNamedKeyCredential
en passant le nom du compte et la clé de compte en tant qu’arguments. (Le nom du compte et la clé de compte peuvent être obtenus à partir du portail Azure.) [DISPONIBLE UNIQUEMENT DANS NODE.JS RUNTIME]
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
avec TokenCredential (AAD)
Les tables Azure fournissent une intégration à Azure Active Directory (Azure AD) pour l’authentification basée sur l’identité des requêtes adressées au service Table lors du ciblage d’un point de terminaison de stockage. Avec Azure AD, vous pouvez utiliser le contrôle d’accès en fonction du rôle (RBAC) pour accorder l’accès à vos ressources table Azure aux utilisateurs, groupes ou applications.
Pour accéder à une ressource de table avec un TokenCredential
, l’identité authentifiée doit avoir le rôle « Contributeur aux données de table de stockage » ou « Lecteur de données de table de stockage ».
Avec le package @azure/identity
, vous pouvez autoriser en toute transparence les demandes dans les environnements de développement et de production.
Pour en savoir plus sur l’intégration d’Azure AD dans Stockage Azure, consultez la 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
avec un jeton SAP
En outre, vous pouvez instancier un TableServiceClient
avec des signatures d’accès partagé (SAP). Vous pouvez obtenir le jeton SAP à partir du portail Azure.
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)
);
Répertorier les tables dans le compte
Vous pouvez répertorier des tables au sein d’un compte via une instance TableServiceClient
appelant la fonction listTables
. Cette fonction retourne un PageableAsyncIterator
que vous pouvez consommer à l’aide de 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() {
const 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();
Créer une table
Vous pouvez créer une table via une instance de TableServiceClient
appelant la fonction createTable
. Cette fonction prend le nom de la table à créer en tant que paramètre.
Notez que createTable
ne génère pas d’erreur lorsque la table existe déjà.
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();
Voici un exemple qui montre comment tester si la table existe déjà lors de sa tentative de création :
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();
Créer le client de table
Le TableClient
est créé de la même façon que le TableServiceClient
avec la différence que TableClient
prend un nom de table comme paramètre
TableClient
avec AzureNamedKeyCredential
Vous pouvez instancier un TableClient
avec un AzureNamedKeyCredential
en passant le nom du compte et la clé de compte en tant qu’arguments. (Le nom du compte et la clé de compte peuvent être obtenus à partir du portail Azure.) [DISPONIBLE UNIQUEMENT DANS NODE.JS RUNTIME]
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
avec TokenCredential
(Azure Active Directory)
Les tables Azure fournissent une intégration à Azure Active Directory (Azure AD) pour l’authentification basée sur l’identité des requêtes adressées au service Table lors du ciblage d’un point de terminaison de stockage. Avec Azure AD, vous pouvez utiliser le contrôle d’accès en fonction du rôle (RBAC) pour accorder l’accès à vos ressources table Azure aux utilisateurs, groupes ou applications.
Pour accéder à une ressource de table avec un TokenCredential
, l’identité authentifiée doit avoir le rôle « Contributeur aux données de table de stockage » ou « Lecteur de données de table de stockage ».
Avec le package @azure/identity
, vous pouvez autoriser en toute transparence les demandes dans les environnements de développement et de production.
Pour en savoir plus sur l’intégration d’Azure AD dans Stockage Azure, consultez la azure.Identity README
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
avec un jeton SAP
Vous pouvez instancier un TableClient
avec des signatures d’accès partagé (SAP). Vous pouvez obtenir le jeton SAP à partir du portail Azure.
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
avec TokenCredential (AAD)
Les tables Azure fournissent une intégration à Azure Active Directory (Azure AD) pour l’authentification basée sur l’identité des requêtes adressées au service Table lors du ciblage d’un point de terminaison de stockage. Avec Azure AD, vous pouvez utiliser le contrôle d’accès en fonction du rôle (RBAC) pour accorder l’accès à vos ressources table Azure aux utilisateurs, groupes ou applications.
Pour accéder à une ressource de table avec un TokenCredential
, l’identité authentifiée doit avoir le rôle « Contributeur aux données de table de stockage » ou « Lecteur de données de table de stockage ».
Avec le package @azure/identity
, vous pouvez autoriser en toute transparence les demandes dans les environnements de développement et de production.
Pour en savoir plus sur l’intégration d’Azure AD dans Stockage Azure, consultez la azure.Identity README
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
);
Répertorier les entités dans une table
Vous pouvez répertorier des entités dans une table par le biais d’une instance de TableClient
appelant la fonction listEntities
. Cette fonction retourne un PageableAsyncIterator
que vous pouvez consommer à l’aide de 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() {
const 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();
Créer une entité et l’ajouter à une table
Vous pouvez créer une entité dans une table par le biais d’une instance TableClient
appelant la fonction createEntity
. Cette fonction prend l’entité à insérer en tant que paramètre. L’entité doit contenir partitionKey
et rowKey
.
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 et émulateur de stockage
Le Kit de développement logiciel (SDK) client Tables Azure fonctionne également avec Azurite, un émulateur de serveur compatible avec Stockage Azure et Tables. Reportez-vous au (référentiel Azurite) pour savoir comment commencer à l’utiliser.
Connexion à Azurite avec raccourci chaîne de connexion
Le moyen le plus simple de se connecter à Azurite à partir de votre application consiste à configurer une chaîne de connexion qui fait référence au raccourci UseDevelopmentStorage=true
. Le raccourci équivaut à la chaîne de connexion complète de l’émulateur, qui spécifie le nom du compte, la clé de compte et les points de terminaison de l’émulateur pour chacun des services stockage Azure : (voir plus de). À l’aide de ce raccourci, le Kit de développement logiciel (SDK) client Tables Azure configure la chaîne de connexion par défaut et allowInsecureConnection
dans les options du client.
import { TableClient } from "@azure/data-tables";
const connectionString = "UseDevelopmentStorage=true";
const client = TableClient.fromConnectionString(connectionString, "myTable");
Connexion à Azurite sans raccourci chaîne de connexion
Vous pouvez vous connecter manuellement à azurite sans utiliser le raccourci de chaîne de connexion en spécifiant l’URL du service et AzureNamedKeyCredential
ou une chaîne de connexion personnalisée. Toutefois, allowInsecureConnection
devez être défini manuellement au cas où Azurite s’exécute dans un point de terminaison http
.
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 }
);
Dépannage
Généralités
Lorsque vous interagissez avec le service Tables à l’aide du Kit de développement logiciel (SDK) Javascript/Typescript, les erreurs retournées par le service correspondent aux mêmes codes d’état HTTP retournés pour les demandes d’API REST : codes d’erreur du service table de stockage
Exploitation forestière
L’activation de la journalisation peut vous aider à découvrir des informations utiles sur les échecs. Pour afficher un journal des requêtes et réponses HTTP, définissez la variable d’environnement AZURE_LOG_LEVEL
sur info
. Vous pouvez également activer la journalisation au moment de l’exécution en appelant setLogLevel
dans la @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Étapes suivantes
Plus d’exemples de code seront bientôt disponibles Issue#10531
Contribuant
Ce projet accueille les contributions et suggestions. La plupart des contributions vous obligent à accepter un contrat de licence contributeur (CLA) déclarant que vous avez le droit, et en fait, de nous accorder les droits d’utilisation de votre contribution. Pour plus d’informations, visitez https://cla.microsoft.com.
Lorsque vous envoyez une demande de tirage( pull request), un bot CLA détermine automatiquement si vous devez fournir un CLA et décorer correctement la demande de tirage (par exemple, étiquette, commentaire). Suivez simplement les instructions fournies par le bot. Vous n’aurez besoin de le faire qu’une seule fois sur tous les dépôts à l’aide de notre CLA.
Ce projet a adopté le code de conduite Microsoft Open Source.
Pour plus d’informations, consultez le forum aux questions du Code de conduite
Si vous souhaitez contribuer à cette bibliothèque, lisez le guide de contribution pour en savoir plus sur la génération et le test du code.
Azure SDK for JavaScript