Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstartsguiden distribuerar du en enkel Azure Cosmos DB för en NoSQL-applikation med hjälp av Azure SDK för Rust. Azure Cosmos DB for NoSQL är ett schemalöst datalager som gör det möjligt för program att lagra ostrukturerade data i molnet. Fråga data i dina behållare och utför vanliga operationer på enskilda objekt med hjälp av Azure SDK för Rust.
Viktigt
Rust SDK för Azure Cosmos DB är för närvarande i offentlig förhandsvisning. Denna förhandsgranskning tillhandahålls utan ett servicenivåavtal, och vi rekommenderar inte att den används för produktionsarbetsbelastningar. Vissa funktioner stöds inte eller har begränsat stöd med begränsade funktioner.
För mer information, se Tilläggsvillkor för användning av Microsoft Azure förhandsversioner.
API-referensdokumentation | Källkod | för bibliotekCrate (Rust) | Azure Developer CLI
Prerequisites
- Docker Desktop
- Rust 1.80 eller senare
Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
Installera klientbiblioteket
Klientbiblioteket är tillgängligt via Rust, som azure_data_cosmos paketet.
- Om det inte redan är installerat, installera - azure_data_cosmosmed hjälp av- cargo install.- cargo add azure_data_cosmos
- Installera också - azure_identity-kitet om det inte redan är installerat.- cargo add azure_identity
Importera bibliotek
Importera typerna DefaultAzureCredential, CosmosClient, PartitionKeyoch Query till programkoden.
use azure_data_cosmos::{CosmosClient, PartitionKey, Query};
use azure_identity::DefaultAzureCredential;
Objektmodell
| Name | Beskrivning | 
|---|---|
| CosmosClient | Denna typ är den primära klienten och används för att hantera kontobred metadata eller databaser. | 
| DatabaseClient | Denna typ representerar en databas inom kontot. | 
| ContainerClient | Denna typ används främst för att utföra läs-, uppdaterings- och raderingsoperationer på antingen behållaren eller de föremål som lagras i behållaren. | 
Kodexempel
- Autentisera klienten
- Hämta en databas
- Hämta en behållare
- Skapa ett objekt
- Hämta ett objekt
- Frågeobjekt
Exempelkoden i mallen använder en databas som heter cosmicworks och en behållare som heter products. Containern products innehåller information som namn, kategori, kvantitet, en unik identifierare och en försäljningsflagga för varje produkt. Behållaren använder /category-egenskapen som en logisk partitionsnyckel.
Autentisera klienten
Det här exemplet skapar en ny instans av CosmosClient med användning av CosmosClient::new och autentiserar med en DefaultAzureCredential instans.
let credential = DefaultAzureCredential::new()?;
let client = CosmosClient::new(&endpoint, credential, None)?;
Skaffa en databas
Använd client.database för att hämta den befintliga databasen med namnet cosmicworks.
let database = client.database_client("cosmicworks");
Hämta en container
Hämta den befintliga products-containern med database.container.
let container = database.container_client("products");
Skapa ett objekt
Bygg en ny typ med alla medlemmar som du vill serialisera till JSON. I det här exemplet har typen en unik identifierare och fält för kategori, namn, kvantitet, pris och försäljning. Härled egenskapen för den serde::Serialize här typen så att den kan serialiseras till JSON.
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
pub struct Item {
    pub id: String,
    pub category: String,
    pub name: String,
    pub quantity: i32,
    pub price: f64,
    pub clearance: bool,
}
Skapa ett objekt i behållaren med hjälp av container.upsert_item. Denna metod "uppdaterar eller lägger till" posten och ersätter effektivt posten om den redan finns.
let item = Item {
    id: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb".to_string(),
    category: "gear-surf-surfboards".to_string(),
    name: "Yamba Surfboard".to_string(),
    quantity: 12,
    price: 850.00,
    clearance: false,
};
let partition_key = PartitionKey::from(item.category.clone());
        
let partition_key = PartitionKey::from(item.category.clone());
container.upsert_item(partition_key, item.clone(), None).await?;
Läs ett objekt
Utför en punktläsningsoperation genom att använda både den unika identifieraren (id) och partitionsnyckelfälten. Använd container.ReadItem för att effektivt hämta det specifika objektet.
let item_id = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb";
let item_partition_key = "gear-surf-surfboards";
let response = container.read_item(item_partition_key, item_id, None).await?;
let item: Item = response.into_json_body().await?;
Frågeobjekt
Utför en fråga över flera objekt i en container med hjälp av container.NewQueryItemsPager. Hitta alla objekt inom en specificerad kategori med hjälp av den här parameterstyrda frågan.
SELECT * FROM products p WHERE p.category = @category
let item_partition_key = "gear-surf-surfboards";
let query = Query::from("SELECT * FROM c WHERE c.category = @category")
    .with_parameter("@category", item_partition_key)?;
let mut pager = container.query_items::<Item>(query, item_partition_key, None)?;
while let Some(page_response) = pager.next().await {
    let page = page_response?.into_body().await?;
    for item in page.items {
        // Do something
    }
}
Utforska dina data
Använd Visual Studio Code-tillägget för Azure Cosmos DB för att utforska dina NoSQL-data. Du kan utföra grundläggande databasoperationer, inklusive men inte begränsat till:
- Utföra frågeställningar med hjälp av ett scrapbook eller frågeredigeraren
- Ändra, uppdatera, skapa och ta bort objekt
- Importera massdata från andra källor
- Hantering av databaser och containrar
För mer information, se hur du använder Visual Studio Code-tillägget för att utforska Azure Cosmos DB för NoSQL-data.