Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce démarrage rapide, vous déployez une application de base Azure Cosmos DB for Table à l’aide du Kit SDK Azure pour .NET. Azure Cosmos DB for Table est un magasin de données sans schéma qui permet aux applications de stocker des données de table structurées dans le cloud. Vous apprenez à créer des tables, des lignes et à effectuer des tâches de base au sein de votre ressource Azure Cosmos DB à l’aide du SDK Azure pour .NET.
Documentation de référence sur l’API | Code source de la bibliothèque | Package (NuGet) | Azure Developer CLI
Prérequis
- Azure Developer CLI
- Docker Desktop
- .NET 9.0
Si vous ne disposez pas d’un compte Azure, créez-en un gratuitement avant de commencer.
Initialiser le projet
Utilisez l’interface Azure Developer CLI (azd) pour créer un compte Azure Cosmos DB for Table et déployer un exemple d’application conteneurisé. L’exemple d’application utilise la bibliothèque de client pour gérer, créer, lire et interroger des exemples de données.
Ouvrez un terminal dans un répertoire vide.
Si vous n’êtes pas encore authentifié, authentifiez-vous auprès d’Azure Developer CLI à l’aide de
azd auth login. Suivez les étapes spécifiées par l’outil pour vous authentifier auprès de l’interface CLI à l’aide de vos informations d’identification Azure préférées.azd auth loginUtilisez
azd initpour initialiser le projet.azd init --template cosmos-db-table-dotnet-quickstartLors de l’initialisation, configurez un nom d’environnement unique.
Déployez le compte Azure Cosmos DB en utilisant
azd up. Les modèles Bicep déploient également un exemple d’application web.azd upPendant le processus d’approvisionnement, sélectionnez votre abonnement, l’emplacement souhaité et le groupe de ressources cible. Attendez la fin du processus de provisionnement. Le processus peut prendre environ cinq minutes.
Une fois le provisionnement de vos ressources Azure effectué, une URL vers l’application web en cours d’exécution est incluse dans la sortie.
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io> SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.Utilisez l’URL dans la console pour accéder à votre application web dans le navigateur. Observez la sortie de l’application en cours d’exécution.
Installer la bibliothèque de client
La bibliothèque cliente est disponible via NuGet, en tant que package Azure.Data.Tables.
Ouvrez un terminal et accédez au dossier
/src/web.cd ./src/webS’il n’est pas déjà installé, installez le package
Azure.Data.Tablesà l’aide dedotnet add package.dotnet add package Azure.Data.TablesOuvrez et examinez le fichier src/web/Microsoft.Samples.Cosmos.Table.Quickstart.Web.csproj pour vérifier que l’entrée
Azure.Data.Tablesexiste.
Importer des bibliothèques
Importez les espaces de noms Azure.Identity et Azure.Data.Tables dans votre code d’application.
using Azure.Identity;
using Azure.Data.Tables;
Modèle objet
| Nom | Description |
|---|---|
| TableServiceClient | Il s’agit de la classe cliente principale utilisée pour gérer les métadonnées ou les bases de données à l’échelle du compte. |
| TableClient | Cette classe représente le client d’une table dans le compte. |
Exemples de code
L’exemple de code du modèle utilise une table nommée cosmicworks-products. La table cosmicworks-products contient des détails tels que le nom, la catégorie, la quantité, le prix, un identificateur unique et un indicateur de vente pour chaque produit. Le conteneur utilise un identifiant unique comme clé de ligne et une catégorie comme clé de partition.
Authentifier le client
Cet exemple crée une instance de la classe TableServiceClient.
DefaultAzureCredential credential = new();
TableServiceClient serviceClient = new(
endpoint: new Uri("<azure-cosmos-db-table-account-endpoint>"),
credential
);
Trouver une table
Cet exemple crée une instance de la classe TableClient à l’aide de la méthode GetTableClient de la classe TableServiceClient.
TableClient client = serviceClient.GetTableClient(
tableName: "<azure-cosmos-db-table-name>"
);
Créer une entité
Le moyen le plus simple de créer une nouvelle entité dans une table est de créer une classe qui implémente l’interface ITableEntity. Vous pouvez ensuite ajouter vos propres propriétés à la classe pour remplir des colonnes de données dans cette ligne de table.
public record Product : ITableEntity
{
public required string RowKey { get; set; }
public required string PartitionKey { get; set; }
public required string Name { get; set; }
public required int Quantity { get; set; }
public required decimal Price { get; set; }
public required bool Clearance { get; set; }
public ETag ETag { get; set; } = ETag.All;
public DateTimeOffset? Timestamp { get; set; }
};
Créez une entité dans la table en appelant la classe Product via TableClient.AddEntityAsync<T>.
Product entity = new()
{
RowKey = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
PartitionKey = "gear-surf-surfboards",
Name = "Surfboard",
Quantity = 10,
Price = 300.00m,
Clearance = true
};
Response response = await client.UpsertEntityAsync<Product>(
entity: entity,
mode: TableUpdateMode.Replace
);
Obtenir une entité
Vous pouvez récupérer une entité spécifique à partir d’une table à l’aide de la méthode TableClient.GetEntityAsync<T>. Fournissez les paramètres partitionKey et rowKey pour identifier la ligne appropriée afin d’effectuer une lecture rapide de cette entité.
Response<Product> response = await client.GetEntityAsync<Product>(
rowKey: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
partitionKey: "gear-surf-surfboards"
);
Interroger des entités
Après avoir inséré une entité, vous pouvez également exécuter une requête pour obtenir toutes les entités qui correspondent à un filtre spécifique en utilisant la méthode TableClient.Query<T>. Cet exemple filtre les produits par catégorie à l’aide de la syntaxe LINQ (Language Integrated Query), qui est un avantage de l’utilisation de modèles ITableEntity typés comme la classe Product.
string category = "gear-surf-surfboards";
AsyncPageable<Product> results = client.QueryAsync<Product>(
product => product.PartitionKey == category
);
Analysez les résultats paginés de la requête en parcourant chaque page de résultats à l’aide d’une boucle asynchrone.
List<Product> entities = new();
await foreach (Product product in results)
{
entities.Add(product);
}
Nettoyer les ressources
Lorsque vous n’avez plus besoin de l’exemple d’application ou de ressources, supprimez le déploiement correspondant et toutes les ressources.
azd down