Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze quickstart implementeert u een eenvoudige Azure Cosmos DB for NoSQL-toepassing met behulp van de Azure SDK voor .NET. Azure Cosmos DB for NoSQL is een schemaloos gegevensarchief waarmee toepassingen ongestructureerde gegevens in de cloud kunnen opslaan. Voer query's uit op gegevens in uw containers en voer algemene bewerkingen uit op afzonderlijke items met behulp van de Azure SDK voor .NET.
API-referentiedocumentatie | Bibliotheek broncode | Pakket (NuGet) | Azure Developer CLI
Vereisten
- Azure Developer CLI
- Docker Desktop
- .NET 9.0
Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.
Het project initialiseren
Gebruik de Azure Developer CLI (azd) om een Azure Cosmos DB for NoSQL-account te maken en een containertoepassing te implementeren. De voorbeeldtoepassing maakt gebruik van de clientbibliotheek voor het beheren, maken, lezen en opvragen van voorbeeldgegevens.
Open een terminal in een lege map.
Als u nog niet bent geverifieerd, moet u zich verifiëren bij de Azure Developer CLI met behulp van
azd auth login. Volg de stappen die door het hulpprogramma zijn opgegeven om te verifiëren bij de CLI met behulp van uw favoriete Azure-referenties.azd auth loginGebruik
azd initdit om het project te initialiseren.azd init --template cosmos-db-nosql-dotnet-quickstartConfigureer tijdens de initialisatie een unieke omgevingsnaam.
Implementeer het Azure Cosmos DB-account met behulp van
azd up. De Bicep-sjablonen implementeren ook een voorbeeldwebtoepassing.azd upSelecteer tijdens het inrichtingsproces uw abonnement, gewenste locatie en doelresourcegroep. Wacht tot het provisioningproces is voltooid. Het proces kan ongeveer vijf minuten duren.
Zodra het inrichten van uw Azure-resources is voltooid, wordt er een URL naar de actieve webtoepassing opgenomen in de uitvoer.
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.Gebruik de URL in de console om naar uw webtoepassing in de browser te navigeren. Bekijk de uitvoer van de actieve app.
De clientbibliotheek installeren
De clientbibliotheek is beschikbaar via NuGet, als pakket Microsoft.Azure.Cosmos .
Open een terminal en navigeer naar de
/src/webmap.cd ./src/webAls dit nog niet is geïnstalleerd, installeert u het
Microsoft.Azure.Cosmospakket met behulp vandotnet add package.dotnet add package Microsoft.Azure.Cosmos --version 3.*Installeer ook het
Azure.Identitypakket als dat nog niet is geïnstalleerd.dotnet add package Azure.Identity --version 1.12.*Open en controleer het bestand src/web/Cosmos.Samples.NoSQL.Quickstart.Web.csproj om te valideren dat de
Microsoft.Azure.CosmosenAzure.Identitybeide vermeldingen bestaan.
Bibliotheken importeren
Importeer de Azure.Identity en Microsoft.Azure.Cosmos naamruimten in uw toepassingscode.
using Azure.Identity;
using Microsoft.Azure.Cosmos;
Objectmodel
| Name | Beschrijving |
|---|---|
| CosmosClient | Deze klasse is de primaire clientklasse en wordt gebruikt voor het beheren van metagegevens of databases voor het hele account. |
| Database | Deze klasse vertegenwoordigt een database binnen het account. |
| Container | Deze klasse wordt voornamelijk gebruikt om lees-, update- en verwijderbewerkingen uit te voeren op de container of de items die zijn opgeslagen in de container. |
| PartitionKey | Deze klasse vertegenwoordigt een logische partitiesleutel. Deze klasse is vereist voor veel algemene bewerkingen en query's. |
Codevoorbeelden
- De client verifiëren
- Een database ophalen
- Een container ophalen
- Een item maken
- Een item ophalen
- Items opvragen
De voorbeeldcode in de sjabloon maakt gebruik van een database met de naam cosmicworks en container.products De products container bevat details zoals naam, categorie, hoeveelheid, een unieke id en een verkoopvlag voor elk product. De container gebruikt de /category eigenschap als een logische partitiesleutel.
De client verifiëren
In dit voorbeeld wordt een nieuw exemplaar van de CosmosClient klasse gemaakt en wordt geverifieerd met behulp van een DefaultAzureCredential exemplaar.
DefaultAzureCredential credential = new();
CosmosClient client = new(
accountEndpoint: "<azure-cosmos-db-nosql-account-endpoint>",
tokenCredential: new DefaultAzureCredential()
);
Een database ophalen
Gebruik client.GetDatabase deze om de bestaande database met de naam cosmicworksop te halen.
Database database = client.GetDatabase("cosmicworks");
Een container ophalen
Haal de bestaande products container op met behulp van database.GetContainer.
Container container = database.GetContainer("products");
Een item maken
Bouw een C#-recordtype met alle leden die u in JSON wilt serialiseren. In dit voorbeeld heeft het type een unieke id en velden voor categorie, naam, hoeveelheid, prijs en verkoop.
public record Product(
string id,
string category,
string name,
int quantity,
decimal price,
bool clearance
);
Maak een item in de container met behulp van container.UpsertItem. Met deze methode wordt het item "overschreven of ingevoegd", waarbij het effectief vervangen wordt als het al bestaat.
Product item = new(
id: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
category: "gear-surf-surfboards",
name: "Yamba Surfboard",
quantity: 12,
price: 850.00m,
clearance: false
);
ItemResponse<Product> response = await container.UpsertItemAsync<Product>(
item: item,
partitionKey: new PartitionKey("gear-surf-surfboards")
);
Een item lezen
Voer een puntleesbewerking uit met behulp van zowel de unieke id (id) als de partitiesleutelvelden. Gebruik container.ReadItem dit om het specifieke item efficiënt op te halen.
ItemResponse<Product> response = await container.ReadItemAsync<Product>(
id: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
partitionKey: new PartitionKey("gear-surf-surfboards")
);
Vraagitems
Voer een query uit op meerdere items in een container met behulp van container.GetItemQueryIterator. Zoek alle items in een opgegeven categorie met behulp van deze geparameteriseerde query:
SELECT * FROM products p WHERE p.category = @category
string query = "SELECT * FROM products p WHERE p.category = @category"
var query = new QueryDefinition(query)
.WithParameter("@category", "gear-surf-surfboards");
using FeedIterator<Product> feed = container.GetItemQueryIterator<Product>(
queryDefinition: query
);
Parseer de gepagineerde resultaten van de query door elke pagina met resultaten te doorlopen met behulp van feed.ReadNextAsync. Gebruik feed.HasMoreResults om te bepalen of er resultaten over zijn bij het begin van elke lus.
List<Product> items = new();
while (feed.HasMoreResults)
{
FeedResponse<Product> response = await feed.ReadNextAsync();
foreach (Product item in response)
{
items.Add(item);
}
}
Uw gegevens verkennen
Gebruik de Visual Studio Code-extensie voor Azure Cosmos DB om uw NoSQL-gegevens te verkennen. U kunt kerndatabasebewerkingen uitvoeren, waaronder, maar niet beperkt tot:
- Query's uitvoeren met behulp van een scrapbook of de query-editor
- Items wijzigen, bijwerken, maken en verwijderen
- Bulkgegevens importeren uit andere bronnen
- Databases en containers beheren
Zie De Visual Studio Code-extensie gebruiken om Azure Cosmos DB for NoSQL-gegevens te verkennen voor meer informatie.
Middelen opschonen
Wanneer u de voorbeeldtoepassing of resources niet meer nodig hebt, verwijdert u de bijbehorende implementatie en alle resources.
azd down