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.
Az Azure SDK for Rust-ládák segítenek elérni az Azure-szolgáltatásokat a Rust-alkalmazásokból. Ez a cikk bemutatja, hogyan használhatja ezeket a ládákat, beleértve a hitelesítést, a támogatott szolgáltatásokat és az ajánlott eljárásokat.
Ládákat | API-referenciadokumentáció | Forráskód
A ládák használatával történő fejlesztés előfeltételei
- Rust 1.85 vagy újabb. A verziót az Azure SDK for Rust crates Cargo.toml határozza meg.
- Egy Azure-előfizetés. Ingyenesen létrehozhat egyet.
- Azure CLI
- Azure Developer CLI
- Azure SDK for Rust-ládák
Jótanács
A legjobb fejlesztési élmény érdekében győződjön meg arról, hogy telepítve van a Rust legújabb stabil verziója.
Hitelesítési hitelesítő adatok megadása
Az Azure-ládáknak hitelesítő adatokra van szükségük a Microsoft Entra-azonosító hitelesítéséhez. Az Azure-szolgáltatások különböző hitelesítési módszereket biztosítanak a kapcsolathoz. Javasoljuk, hogy használja a azure_identity láda hitelesítéshez. További információ az Azure SDK for Rust-ládák hitelesítéséről.
Ügyfélobjektumok
Ügyfélobjektumokkal kezelheti az Azure-szolgáltatásokat. A szolgáltatás láda minden ügyfélobjektuma egy adott Azure-szolgáltatásnak felel meg, és metódusokat biztosít az adott szolgáltatáson végzett műveletek végrehajtásához. Például azure_security_keyvault_secrets::SecretClient az Azure Key Vault titkos kulcsainak kezelésére szolgál.
Az ügyfélobjektumok létrehozásakor megadhat egy paramétert ClientOptions a szolgáltatással való interakciók testreszabásához. Időtúllépések, újrapróbálkozások és egyéb konfigurációk beállítására használható ClientOptions .
use azure_identity::AzureCliCredential;
use azure_security_keyvault_secrets::SecretClient;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
dotazure::load()?;
let vault_url = std::env::var("AZURE_KEYVAULT_URL")
.map_err(|_| "AZURE_KEYVAULT_URL environment variable is required")?;
let credential = AzureCliCredential::new(None)?;
let client = SecretClient::new(&vault_url, credential.clone(), None)?;
Ok(())
}
Hibakezelés
Ha egy szolgáltatáshívás meghiúsul, a visszaadott válasz tartalmazza a status.
use azure_core::{error::ErrorKind, http::StatusCode};
use azure_identity::AzureCliCredential;
use azure_security_keyvault_secrets::SecretClient;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
dotazure::load()?;
let credential = AzureCliCredential::new(None)?;
let vault_url = std::env::var("AZURE_KEYVAULT_URL")
.map_err(|_| "AZURE_KEYVAULT_URL environment variable is required")?;
let client = SecretClient::new(&vault_url, credential.clone(), None)?;
match client.get_secret("secret-0", None).await {
Ok(secret) => println!("Secret value: {}", secret.into_body()?.value.unwrap_or_default()),
Err(e) => match e.kind() {
ErrorKind::HttpResponse { status, error_code, .. } if *status == StatusCode::NotFound => {
if let Some(code) = error_code {
println!("ErrorCode: {}", code);
} else {
println!("Secret not found, but no error code provided.");
}
},
_ => println!("An error occurred: {e:?}"),
},
}
Ok(())
}
Laperedmények
Ha egy szolgáltatáshívás több értéket ad vissza a lapokban, az a következőként Result<Pager<T>>Result tér visszaPager: .
use azure_identity::AzureCliCredential;
use azure_security_keyvault_secrets::SecretClient;
use futures::TryStreamExt;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
dotazure::load()?;
let credential = AzureCliCredential::new(None)?;
let vault_url = std::env::var("AZURE_KEYVAULT_URL")
.map_err(|_| "AZURE_KEYVAULT_URL environment variable is required")?;
let client = SecretClient::new(&vault_url, credential.clone(), None)?;
let mut pager = client.list_secret_properties(None)?.into_pages();
while let Some(page) = pager.try_next().await? {
let page = page.into_body()?;
println!("items_in_page: {}", page.value.len());
}
Ok(())
}
Lapozás az elemek egyes lapjainak feldolgozásához
Ha egy lapszámozott válasz összes elemét át szeretné iterálni, használja a into_pages() visszaadott Pagermetódust. Ez a metódus a lapok PageIteratoraszinkron adatfolyamát adja vissza, így az egyes oldalakat az elérhetővé válásukkor feldolgozhatja.
use azure_identity::AzureDeveloperCliCredential;
use azure_security_keyvault_secrets::{ResourceExt, SecretClient};
use futures::TryStreamExt;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
dotazure::load()?;
let credential = AzureDeveloperCliCredential::new(None)?;
let vault_url = std::env::var("AZURE_KEYVAULT_URL")
.map_err(|_| "AZURE_KEYVAULT_URL environment variable is required")?;
let client = SecretClient::new(vault_url.as_str(), credential.clone(), None)?;
let mut pager = client.list_secret_properties(None)?;
while let Some(secret) = pager.try_next().await? {
let name = secret.resource_id()?.name;
println!("Found secret with name: {}", name);
}
Ok(())
}
példakód
A cikkben látható kód a következő helyen https://github.com/azure-samples/azure-sdk-for-rust-docs/érhető el: .
Következő lépések
- Azure SDK-ládák Crates.io – Az elérhető Azure SDK-ládák listája
- Az Azure SDK tervezési irányelvei – Tervezési alapelvek és minták
- Azure SDK for Rust GitHub-adattár – Problémák és forráskód
- Rakománydokumentáció – Teljes rakományhivatkozás