[英]How to get how much requests units consumed by cosmos query in Python SDK API
如何使用 python sdk 檢查 Azure comsos DB 查詢中每個請求消耗了多少請求單位。
下面的代碼僅打印來自特定 ReadItem 的響應的 output,我也對查詢消耗了多少請求單元感興趣。
# -------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See LICENSE.txt in the project root for
# license information.
# -------------------------------------------------------------------------
import azure.cosmos.cosmos_client as cosmos_client
import azure.cosmos.exceptions as exceptions
from azure.cosmos.partition_key import PartitionKey
from config import configs
HOST = configs['host']
MASTER_KEY = configs['key']
DATABASE_ID = configs['database_id']
CONTAINER_ID = configs['container_id']
client = cosmos_client.CosmosClient(HOST, {'masterKey': MASTER_KEY} )
def read_item(container, doc_id):
id = "9fedcb0991553b94b6e79595c9c26922b3c480940fc024fe4acd7dbad122d66b"
pk= "/c/file1"
response = container.read_item(item=id, partition_key=pk)
print(response)
def run_sample():
try:
# setup database for this sample
db = client.create_database_if_not_exists(id=DATABASE_ID)
# setup container for this sample
container = db.create_container_if_not_exists(id=CONTAINER_ID, partition_key=PartitionKey(path='/file_path', kind='Hash'))
read_item(container)
except exceptions.CosmosHttpResponseError as e:
print('\nrun_sample has caught an error. {0}'.format(e.message))
finally:
print("\nrun_sample done")
if __name__ == '__main__':
run_sample()
我嘗試了以下選項
request_charge = client.last_response_headers['x-ms-request-charge']
但是我遇到了以下錯誤
run_sample done
Traceback (most recent call last):
File "/Users/vcimalap/Library/CloudStorage/OneDrive-Microsoft/my_code/my_test_code/k8s/smb.yaml/cosmos_db/query.py", line 197, in <module>
run_sample()
File "/Users/vcimalap/Library/CloudStorage/OneDrive-Microsoft/my_code/my_test_code/k8s/smb.yaml/cosmos_db/query.py", line 175, in run_sample
read_item(container, item)
File "/Users/vcimalap/Library/CloudStorage/OneDrive-Microsoft/my_code/my_test_code/k8s/smb.yaml/cosmos_db/query.py", line 55, in read_item
request_charge = client.last_response_headers['x-ms-request-charge']
AttributeError: 'CosmosClient' object has no attribute 'last_response_headers'
您需要訪問 container.client_connection而不是客戶端,
request_charge = container.client_connection.last_response_headers['x-ms-request-charge']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.