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.
Ebben a rövid útmutatóban létrehoz egy alapszintű Azure DocumentDB-alkalmazást a Rust használatával. Az Azure DocumentDB egy NoSQL-adattár, amellyel az alkalmazások a felhőben tárolhatják a dokumentumokat, és hivatalos MongoDB-illesztőprogramokkal érhetik el őket. Ez az útmutató bemutatja, hogyan hozhat létre dokumentumokat, és hogyan hajthat végre alapvető feladatokat az Azure DocumentDB-fürtben a Rust használatával.
API-referenciaForráskód | Csomag (crates.io)
Prerequisites
Azure-előfizetés
- Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot
- Rust 1.70 vagy újabb
Hozzon létre egy Azure DocumentDB-fürtöt
Első lépésként létre kell hoznia egy Azure DocumentDB-fürtöt, amely a NoSQL-adatok tárolásának és kezelésének alapja.
Jelentkezzen be az Azure Portalra (https://portal.azure.com).
Az Azure Portal menüjében vagy a Kezdőlapon válassza az Erőforrás létrehozása elemet.
Az Új lapon keresse meg és válassza ki az Azure DocumentDB-t.
Az Azure DocumentDB-fürt létrehozása oldal Alapok szakaszában válassza a Fürtszint szakaszban a Konfigurálás lehetőséget.
A Méretezés lapon konfigurálja ezeket a beállításokat, majd válassza a Mentés lehetőséget a fürtszintre vonatkozó módosítások megőrzéséhez.
Value Fürtszint M30 tier, 2 vCore, 8-GiB RAMTárterület szegmensenként 128 GiB
Az Alapok szakaszban konfigurálja a következő beállításokat:
Value Előfizetés Válassza ki Azure előfizetését Erőforráscsoport Új erőforráscsoport létrehozása vagy meglévő erőforráscsoport kiválasztása Klaszter neve Globálisan egyedi név megadása Helyszín Válasszon egy támogatott Azure-régiót az előfizetéséhez MongoDB-verzió A következők szerint válasszon: 8.0Rendszergazdai felhasználónév Felhasználónév létrehozása a fürt felhasználói rendszergazdaként való eléréséhez Jelszó A felhasználónévhez társított egyedi jelszó használata
Jótanács
Jegyezze fel a felhasználónévhez és jelszóhoz használt értékeket. Ezeket az értékeket az útmutató későbbi részében használjuk. Az érvényes értékekkel kapcsolatos további információkért tekintse meg a fürt korlátait.
Válassza ki a Tovább: Hálózatkezelés lehetőséget.
A Hálózatkezelés lap Tűzfalszabályok szakaszában konfigurálja az alábbi beállításokat:
Value Kapcsolati módszer Public accessNyilvános hozzáférés engedélyezése az Azure-ban lévő Azure-szolgáltatásokból és erőforrásokból ehhez a fürthöz Engedélyezett Adjon hozzá egy tűzfalszabályt a jelenlegi klienseszközhöz, hogy hozzáférést biztosítson a fürthöz a + Jelenlegi kliens IP-cím hozzáadása lehetőség kiválasztásával.
Jótanács
Számos vállalati környezetben a fejlesztői gép IP-címei vpn vagy más vállalati hálózati beállítások miatt rejtve vannak. Ezekben az esetekben ideiglenesen engedélyezheti az összes IP-cím elérését az
0.0.0.0-255.255.255.255IP-címtartomány tűzfalszabályként való hozzáadásával. Ezt a tűzfalszabályt csak ideiglenesen használja a kapcsolattesztelés és -fejlesztés részeként.Válassza az Áttekintés + létrehozás lehetőséget.
Tekintse át a megadott beállításokat, majd kattintson a Létrehozás-ra. A klaszter létrehozása néhány percet vesz igénybe. Várjon, amíg az erőforrás üzembe helyezése befejeződött.
Végül válassza a Go to resource opciót az Azure DocumentDB-fürthöz lépéshez a portálon.
Szerezze be a fürt hitelesítő adatait
Szerezd be a fürthöz való csatlakozáshoz használt hitelesítő adatokat.
A fürtoldalon válassza a Kapcsolati láncokat lehetőséget az erőforrás menüjében.
A Kapcsolati sztringek szakaszban másolja vagy rögzítse a Kapcsolati sztring mező értékét.
Important
A portál kapcsolati sztringje nem tartalmazza a jelszó értékét. A <password> helyettesítő szöveget le kell cserélnie a fürt létrehozásakor megadott hitelesítő adatokkal, vagy interaktívan be kell írnia a jelszót.
A projekt inicializálása
Hozzon létre egy új Rust-projektet az aktuális könyvtárban.
Kezdje egy üres mappában.
Nyisson egy terminált az aktuális könyvtárban.
Hozzon létre egy új Rust-projektet a Cargo használatával.
cargo new azure-documentdb-rust-quickstart cd azure-documentdb-rust-quickstart
Telepítse a klienskönyvtárat
Az klienskönyvtár a crates.io-n keresztül érhető el, mint mongodb csomag.
Adja hozzá a MongoDB Rust sofőrt a Cargo használatával.
cargo add mongodbAdja hozzá az aszinkron
tokioműveletek futtatókörnyezetét.cargo add tokio --features fullAdja hozzá a
serdecrate-et a szerializáció támogatásához.cargo add serde --features deriveAdja hozzá a
futurescrate-et aszinkron streamek műveleteihez.cargo add futuresNyissa meg az alkalmazás kódjához tartozó src/main.rs fájlt.
Importálja a szükséges modulokat az alkalmazáskódba:
use futures::TryStreamExt; use mongodb::{ bson::doc, options::ClientOptions, Client, Collection, }; use serde::{Deserialize, Serialize};
Objektummodell
| Name | Description |
|---|---|
Client |
A MongoDB-hez való csatlakozáshoz használt típus. |
Database |
Egy adatbázist jelöl a klaszterben. |
Collection<T> |
Egy adatbázison belüli gyűjteményt jelöl a fürtben. |
Példakódok
- Az ügyfél hitelesítése
- Gyűjtemény lekérése
- Dokumentum létrehozása
- Dokumentum lekérése
- Dokumentumok lekérdezése
Az alkalmazás kódja egy elnevezett adventureworks adatbázishoz és egy nevű productsgyűjteményhez csatlakozik. A products gyűjtemény olyan részleteket tartalmaz, mint a név, a kategória, a mennyiség, az egyedi azonosító és az egyes termékekhez tartozó értékesítési jelző. Az itt található kódminták a leggyakoribb műveleteket hajtják végre a gyűjtemények használatakor.
Az ügyfél hitelesítése
Először csatlakozzon az ügyfélhez egy egyszerű kapcsolati sztring használatával.
Hozza létre a fő aszinkron függvényt, és állítsa be a kapcsolati sztringet. Cserélje le
<your-cluster-name>,<your-username>és<your-password>a tényleges fürtinformációkkal.#[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { // Connection string for Azure DocumentDB cluster let connection_string = "mongodb+srv://<your-username>:<your-password>@<your-cluster-name>.global.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"; // Parse connection string into client options let client_options = ClientOptions::parse(connection_string).await?;Hozza létre a MongoDB-ügyfelet, és ellenőrizze a kapcsolatot.
// Create a new client and connect to the server let client = Client::with_options(client_options)?; // Ping the server to verify connection client .database("admin") .run_command(doc! { "ping": 1 }) .await?; println!("Successfully connected and pinged Azure DocumentDB");
Gyűjtemény lekérése
Most szerezze be az adatbázist és a gyűjteményt. Ha az adatbázis és a gyűjtemény még nem létezik, az illesztővel automatikusan létrehozhatja.
Az adatbázisra mutató hivatkozás lekérése.
// Get database reference let database = client.database("adventureworks"); println!("Connected to database: {}", database.name());Az adatbázison belüli gyűjteményre mutató hivatkozás lekérése.
// Get collection reference let collection: Collection<Product> = database.collection("products"); println!("Connected to collection: products");
Dokumentum létrehozása
Ezután hozzon létre néhány új dokumentumot a gyűjteményben. A dokumentumokat úgy állíthatja be, hogy az lecserélje a meglévő dokumentumokat, ha már léteznek ugyanazzal az egyedi azonosítóval.
Termékstruktúra definiálása és minta termékdokumentumok létrehozása.
// Define Product struct for type-safe operations #[derive(Debug, Serialize, Deserialize)] struct Product { #[serde(rename = "_id")] id: String, name: String, category: String, quantity: i32, price: f64, sale: bool, } // Create sample products let products = vec![ Product { id: "00000000-0000-0000-0000-000000004018".to_string(), name: "Windry Mittens".to_string(), category: "apparel-accessories-gloves-and-mittens".to_string(), quantity: 121, price: 35.00, sale: false, }, Product { id: "00000000-0000-0000-0000-000000004318".to_string(), name: "Niborio Tent".to_string(), category: "gear-camp-tents".to_string(), quantity: 140, price: 420.00, sale: true, }, ];Helyezze be a dokumentumokat "upsert" műveletek használatával.
// Insert documents with upsert for product in &products { let filter = doc! { "_id": &product.id }; let update = doc! { "$set": mongodb::bson::to_document(product)? }; let result = collection .update_one(filter, update) .upsert(true) .await?; if result.upserted_id.is_some() { println!("Inserted document with ID: {}", product.id); } else { println!("Updated document with ID: {}", product.id); } }
Dokumentum lekérése
Ezután végezzen pontolvasási műveletet egy adott dokumentum gyűjteményből való lekéréséhez.
Adja meg a szűrőt egy adott dokumentum azonosító alapján való megkereséséhez.
// Retrieve a specific document by ID let filter = doc! { "_id": "00000000-0000-0000-0000-000000004018" };Hajtsa végre a lekérdezést, és kérje le az eredményt.
let retrieved_product = collection.find_one(filter).await?; match retrieved_product { Some(product) => println!("Retrieved product: {} - ${:.2}", product.name, product.price), None => println!("Product not found"), }
Dokumentumok lekérdezése
Végül több dokumentumot is lekérdezhet a MongoDB lekérdezési nyelv (MQL) használatával.
Lekérdezés definiálása adott feltételeknek megfelelő dokumentumok megkereséséhez.
// Query for products on sale let query_filter = doc! { "sale": true }; let mut cursor = collection.find(query_filter).await?;Az összes egyező dokumentum lekéréséhez iterálja végig a kurzort.
println!("Products on sale:"); while let Some(product) = cursor.try_next().await? { println!( "- {}: ${:.2} (Category: {})", product.name, product.price, product.category ); } Ok(()) }
Adatok felfedezése a Visual Studio Code használatával
A Visual Studio Code DocumentDB bővítményével alapvető adatbázis-műveleteket hajthat végre, beleértve az adatok lekérdezését, beszúrását, frissítését és törlését.
Nyissa meg a Visual Studio Code-ot.
Lépjen a Bővítmények nézetre, és keresse meg a kifejezést
DocumentDB. Keresse meg a DocumentDB for VS Code bővítményt .Válassza a bővítmény Telepítés gombját. Várja meg, amíg a telepítés befejeződik. Töltse újra a Visual Studio kódot, ha erre felszólítják.
Lépjen a DocumentDB bővítményre a tevékenységsáv megfelelő ikonjának kiválasztásával.
A DocumentDB-kapcsolatok panelen válassza az + Új kapcsolat... lehetőséget.
A párbeszédpanelen válassza a Service Discovery , majd az Azure DocumentDB – Azure Service Discovery lehetőséget.
Válassza ki az Azure-előfizetését és az újonnan létrehozott Azure DocumentDB-fürtöt.
Jótanács
Számos vállalati környezetben a fejlesztői gép IP-címei vpn vagy más vállalati hálózati beállítások miatt rejtve vannak. Ezekben az esetekben ideiglenesen engedélyezheti az összes IP-cím elérését az
0.0.0.0-255.255.255.255IP-címtartomány tűzfalszabályként való hozzáadásával. Ezt a tűzfalszabályt csak ideiglenesen használja a kapcsolattesztelés és -fejlesztés részeként. További információ: tűzfal konfigurálása.Visszatérve a DocumentDB-kapcsolatok panelre, bontsa ki a fürt csomópontját, és keresse meg a meglévő dokumentum- és gyűjteménycsomópontokat.
Nyissa meg a gyűjtemény helyi menüjét, majd válassza a DocumentDB Scrapbook > New DocumentDB Scrapbook lehetőséget.
Adja meg a következő MongoDB lekérdezési nyelv (MQL) parancsokat, majd válassza az Összes futtatása lehetőséget. Figyelje meg a parancsok kimenetét.
db.products.find({ price: { $gt: 200 }, sale: true }) .sort({ price: -1 }) .limit(3)
Erőforrások tisztítása
Ha végzett az Azure DocumentDB-fürttel, törölheti a létrehozott Azure-erőforrásokat, így nem kell további díjakat fizetnie.
Az Azure Portal keresősávján keresse meg és válassza ki az erőforráscsoportokat.
A listában válassza ki a rövid útmutatóhoz használt erőforráscsoportot.
Az erőforráscsoport lapján válassza az Erőforráscsoport törlése lehetőséget.
A törlés megerősítését kérő párbeszédpanelen adja meg az erőforráscsoport nevét annak megerősítéséhez, hogy törölni kívánja azt. Végül válassza a Törlés lehetőséget az erőforráscsoport végleges törléséhez.