You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python连接Azure Confidential Ledger时如何修改API版本?

修改Azure Confidential Ledger Python客户端的API版本

问题重现

尝试使用以下Python代码连接并查询Azure Confidential Ledger:

from azure.confidentialledger import ConfidentialLedgerClient
from azure.confidentialledger.certificate import ConfidentialLedgerCertificateClient
from azure.identity import DefaultAzureCredential

identity_client = ConfidentialLedgerCertificateClient()
network_identity = identity_client.get_ledger_identity(
    ledger_id="testACL"
)

ledger_tls_cert_file_name = "ledger_certificate.pem"
with open(ledger_tls_cert_file_name, "w") as cert_file:
    cert_file.write(network_identity["ledgerTlsCertificate"])

credential = DefaultAzureCredential()
ledger_client = ConfidentialLedgerClient(
    endpoint="https://testACL.confidential-ledger.azure.com",
    credential=credential,
    ledger_certificate_path=ledger_tls_cert_file_name
)

ranged_result = ledger_client.list_ledger_entries()

for i, r in enumerate(ranged_result):
    print(i, r)

运行时出现以下错误,要求将API版本从2022-05-13改为2022-04-20-preview:

Traceback (most recent call last): File "X", line 23, in for i, r in enumerate(ranged_result):
File "C:\Users\Administrator.venv\lib\site-packages\azure\core\paging.py", line 128, in next return next(self._page_iterator)
File "C:\Users\Administrator.venv\lib\site-packages\azure\core\paging.py", line 76, in next self._response = self._get_next(self.continuation_token)
File "C:\Users\Administrator.venv\lib\site-packages\azure\confidentialledger_operations_operations.py", line 732, in get_next raise HttpResponseError(response=response)
azure.core.exceptions.HttpResponseError: (QueryParameterError) 解析的api-version 2022-05-13不可用,请使用以下版本之一:2022-04-20-preview、0.1-preview

解决方案

在初始化ConfidentialLedgerClient时,直接指定api_version参数即可切换到目标API版本。修改后的代码如下:

from azure.confidentialledger import ConfidentialLedgerClient
from azure.confidentialledger.certificate import ConfidentialLedgerCertificateClient
from azure.identity import DefaultAzureCredential

identity_client = ConfidentialLedgerCertificateClient()
network_identity = identity_client.get_ledger_identity(
    ledger_id="testACL"
)

ledger_tls_cert_file_name = "ledger_certificate.pem"
with open(ledger_tls_cert_file_name, "w") as cert_file:
    cert_file.write(network_identity["ledgerTlsCertificate"])

credential = DefaultAzureCredential()
ledger_client = ConfidentialLedgerClient(
    endpoint="https://testACL.confidential-ledger.azure.com",
    credential=credential,
    ledger_certificate_path=ledger_tls_cert_file_name,
    api_version="2022-04-20-preview"  # 指定目标API版本
)

ranged_result = ledger_client.list_ledger_entries()

for i, r in enumerate(ranged_result):
    print(i, r)

说明

Azure Python SDK的多数客户端类都支持通过api_version参数指定API版本,当服务端不支持客户端默认使用的版本时,直接在客户端初始化时传入目标版本即可解决版本不兼容问题。

内容的提问来源于stack exchange,提问作者OmT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:15:32