快速入門:搭配 Azure SDK for Rust 使用適用於 NoSQL 的 Azure Cosmos DB
在本快速入門中,您會使用 Azure SDK for Rust 部署適用於資料表的基本 Azure Cosmos DB 應用程式。 Azure Cosmos DB for Table 是無架構的數據存放區,可讓應用程式將結構化數據表數據儲存在雲端中。 您將瞭解如何使用 Azure SDK for Rust,在 Azure Cosmos DB 資源內建立數據表、數據列和執行基本工作。
重要
適用於 Azure Cosmos DB 的 Rust SDK 目前為公開預覽狀態。 此預覽版本沒有服務等級協定,不建議將其用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。
如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
API 參考文件 | 連結庫原始碼 | Crate (Rust) | Azure Developer CLI
必要條件
- Docker Desktop
- Rust 1.80 或更新版本
如果您沒有 Azure 帳戶,請在您開始之前先建立 免費帳戶。
安裝用戶端程式庫
用戶端連結庫可透過 Rust 作為 azure_data_cosmos
箱子來使用。
如果尚未安裝,請使用
cargo install
安裝azure_data_cosmos
建立。cargo install azure_data_cosmos
此外,如果尚未安裝,請
azure_identity
安裝板箱。cargo install azure_identity
物件模型
名稱 | 描述 |
---|---|
CosmosClient |
此類型是主要用戶端,可用來管理全帳戶元數據或資料庫。 |
DatabaseClient |
此類型代表帳戶內的資料庫。 |
CollectionClient |
此類型主要用於在容器或容器內儲存的專案上執行讀取、更新和刪除作業。 |
程式碼範例
範本中的程式碼範例使用 cosmicworks
資料庫和 products
容器。
products
容器包含每個產品的名稱、類別、數量、唯一識別碼和銷售旗標這類詳細資料。 容器使用 /category
屬性作為邏輯分割區索引鍵。
驗證用戶端
此範例會使用 CosmosClient::new
建立 CosmosClient
的新執行個體,並使用 DefaultAzureCredential
執行個體來進行驗證。
let credential = DefaultAzureCredential::new()?;
let client = CosmosClient::new(&endpoint, credential, None)?;
取得資料庫
使用 client.database
來擷取名為 cosmicworks
的現有資料庫。
let database = client.database_client("cosmicworks");
取得容器
使用 database.container
來擷取現有 products
容器。
let container = database.container_client("products");
建立項目
使用您想要串行化為 JSON 的所有成員,建置新的類型。 在此範例中,此類型具有唯一識別碼,以及類別、名稱、數量、價格和銷售的欄位。
serde::Serialize
在此類型上衍生特性,使其可以串行化為 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,
}
使用 container.upsert_item
,以在容器中建立項目。 此方法會有效地 "upserts" 可取代項目 (如果已存在) 的項目。
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?;
讀取項目
使用唯一識別碼 (id
) 和分割區索引鍵欄位,來執行點讀取作業。 使用 container.ReadItem
有效率地擷取特定項目。
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?;
查詢項目
使用 container.NewQueryItemsPager
,以對容器中的多個項目執行查詢。 使用此參數化查詢,來尋找所指定類別內的所有項目:
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
}
}
探索資料
使用適用於 Azure Cosmos DB 的 Visual Studio Code 擴充功能來探索您的 NoSQL 數據。 您可以執行核心資料庫作業,包括但不限於:
- 使用剪貼簿或查詢編輯器執行查詢
- 修改、更新、建立和刪除專案
- 從其他來源匯入大量數據
- 管理資料庫和容器
如需詳細資訊,請參閱 如何使用 Visual Studio Code 擴充功能來探索適用於 NoSQL 數據的 Azure Cosmos DB。