共用方式為


快速入門:搭配適用於 Python 的 Azure SDK 使用適用於 NoSQL 的 Azure Cosmos DB

在本快速入門中,您會使用適用於 Python 的 Azure SDK 來部署基本的 Azure Cosmos DB for NoSQL 應用程式。 適用於 NoSQL 的 Azure Cosmos DB 是無結構描述的資料存放區,可讓應用程式將非結構化資料儲存在雲端中。 查詢容器中的資料,並使用適用於 Python 的 Azure SDK 對個別專案執行一般作業。

API 參考文件 | 程式庫原始程式碼 | 套件 (PyPI) | Azure Developer CLI

必要條件

  • Azure Developer CLI
  • Docker 桌面
  • Python 3.12

如果您沒有 Azure 帳戶,請在您開始之前先建立 免費帳戶

初始化專案

使用 Azure 開發人員 CLI (azd) 來建立適用於 NoSQL 的 Azure Cosmos DB 帳戶,並部署容器化範例應用程式。 應用程式範例使用用戶端程式庫管理、建立、讀取和查詢樣本資料。

  1. 在空的目錄中開啟終端機。

  2. 如果您尚未通過驗證,請使用 azd auth login向 Azure 開發人員 CLI 進行驗證。 依照工具指定的步驟,使用您慣用的 Azure 認證向 CLI 進行驗證。

    azd auth login
    
  3. 使用 azd init 來初始化專案。

    azd init --template cosmos-db-nosql-python-quickstart
    
  4. 在初始化期間,請設定唯一的環境名稱。

  5. 使用 azd up 部署 Azure Cosmos DB 帳戶。 Bicep 範本也會部署範例 Web 應用程式。

    azd up
    
  6. 在布建程式期間,選取您的訂用帳戶、所需的位置和目標資源群組。 等候佈建程序完成。 此流程「大約需要五分鐘」的時間。

  7. Azure 資源佈建完成後,輸出將包含正在執行的 Web 應用程式的 URL。

    Deploying services (azd deploy)
    
      (✓) Done: Deploying service web
    - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io>
    
    SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.
    
  8. 請使用主控台中的 URL,以在瀏覽器中導覽至您的 Web 應用程式。 觀察執行中應用程式的輸出。

螢幕擷取畫面,其中顯示執行中的 Web 應用程式。

安裝用戶端程式庫

用戶端程式庫可透過 Python 套件索引作為 azure-cosmos 程式庫來使用。

  1. 開啟終端機,然後導覽至 /src 資料夾。

    cd ./src
    
  2. 如果尚未安裝,則請使用 azure-cosmos 來安裝 pip install 套件。

    pip install azure-cosmos
    
  3. 也請安裝 azure-identity 套件 (如果尚未安裝)。

    pip install azure-identity
    
  4. 開啟並檢閱 src/requirements.txt 檔案,以驗證 azure-cosmosazure-identity 項目都存在。

匯入程式庫

DefaultAzureCredentialCosmosClient 類型匯入您的應用程式程式碼。

from azure.identity import DefaultAzureCredential
from azure.cosmos import CosmosClient

物件模型

名稱 描述
CosmosClient 此類別是主要用戶端類別,並且用來管理全帳戶中繼資料或資料庫。
DatabaseProxy 此類別代表帳戶內的資料庫。
ContainerProxy 此類別主要用來對容器或容器內所儲存的項目執行讀取、更新和刪除作業。
PartitionKey 此類別代表邏輯分割區索引鍵。 許多常見的作業和查詢都需要此類別。

程式碼範例

範本中的程式碼範例使用 cosmicworks 資料庫和 products 容器。 products 容器包含每個產品的名稱、類別、數量、唯一識別碼和銷售旗標這類詳細資料。 容器使用 /category 屬性作為邏輯分割區索引鍵。

驗證用戶端

此範例會建立 CosmosClient 類型的新執行個體,並使用 DefaultAzureCredential 執行個體來進行驗證。

credential = DefaultAzureCredential()

client = CosmosClient(url="<azure-cosmos-db-nosql-account-endpoint>", credential=credential)

取得資料庫

使用 client.get_database_client 來擷取名為 cosmicworks 的現有資料庫。

database = client.get_database_client("cosmicworks")

取得容器

使用 products 來擷取現有 database.get_container_client 容器。

container = database.get_container_client("products")

建立項目

建置新的物件,而此物件具有所有您想要序列化成 JSON 的成員。 在此範例中,此類型具有唯一識別碼,以及類別、名稱、數量、價格和銷售的欄位。 使用 container.upsert_item,以在容器中建立項目。 此方法會有效地 "upserts" 可取代項目 (如果已存在) 的項目。

new_item = {
    "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    "category": "gear-surf-surfboards",
    "name": "Yamba Surfboard",
    "quantity": 12,
    "sale": False,
}

created_item = container.upsert_item(new_item)

讀取項目

使用唯一識別碼 (id) 和分割區索引鍵欄位,來執行點讀取作業。 使用 container.read_item 有效率地擷取特定項目。

existing_item = container.read_item(
    item="aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    partition_key="gear-surf-surfboards",
)

查詢項目

使用 container.GetItemQueryIterator,以對容器中的多個項目執行查詢。 使用此參數化查詢,來尋找所指定類別內的所有項目:

SELECT * FROM products p WHERE p.category = @category
queryText = "SELECT * FROM products p WHERE p.category = @category"

results = container.query_items(
    query=queryText,
    parameters=[
        dict(
            name="@category",
            value="gear-surf-surfboards",
        )
    ],
    enable_cross_partition_query=False,
)

重複查看查詢的結果。

items = [item for item in results]

output = json.dumps(items, indent=True)

探索資料

使用適用於 Azure Cosmos DB 的 Visual Studio Code 擴充功能來探索您的 NoSQL 數據。 您可以執行核心資料庫作業,包括但不限於:

  • 使用剪貼簿或查詢編輯器執行查詢
  • 修改、更新、建立和刪除專案
  • 從其他來源匯入大量數據
  • 管理資料庫和容器

如需詳細資訊,請參閱 如何使用 Visual Studio Code 擴充功能來探索適用於 NoSQL 數據的 Azure Cosmos DB。

清除資源

當您不再需要範例應用程式或資源時,請移除對應的部署和所有資源。

azd down