共用方式為


快速入門:搭配 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 箱子來使用。

  1. 如果尚未安裝,請使用 cargo install安裝 azure_data_cosmos 建立。

    cargo install azure_data_cosmos
    
  2. 此外,如果尚未安裝,請 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。

後續步驟