gpt4 book ai didi

python - Azure QueueClient Python 无法使用 DefaultAzureCredential

转载 作者:行者123 更新时间:2023-12-03 05:12:08 25 4
gpt4 key购买 nike

我正在使用 azure.identity 中的 DefaultAzureCredential() 来获取凭据并使用它来建立 TableServiceClient (azure.data.table) 连接。有用。如果我尝试对 QueueClient (azure.storage.queue) 执行相同的操作,则会收到以下错误。据我了解文档,应该可以使用 DefailtAzureCredential() 来实现。

[2023-05-06T08:40:40.331Z] Response status: 403
Response headers:
'Content-Length': '279'
'Content-Type': 'application/xml'
'Server': 'Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0'
'x-ms-request-id': '30a41a1b-a003-0004-71f6-7f25a6000000'
'x-ms-client-request-id': 'adedb50b-ebe9-11ed-b983-001a7dda7113'
'x-ms-version': 'REDACTED'
'x-ms-error-code': 'REDACTED'
'Date': 'Sat, 06 May 2023 08:40:39 GMT'

我正在通过以下方式连接。如果我使用存储帐户 key 切换凭据,它就可以工作。

credential = DefaultAzureCredential()
queue_service_client = QueueClient(
account_url = os.environ["STORAGE_ENDPOINT_QUEUE"],
credential=credential,
queue_name = "smsnotification"
)

def pushNotifyToQueune(queue_service_client, playerId):
logging.info(f"Push notify to queune")
try:
response = queue_service_client.send_message("m")
logging.info(f"Print response form queune {response}")
except:
logging.info(f"Something goes wrong when pusing notify to queune")
#TODO use ErrorName

我尝试使用存储帐户 key 并且它有效。 DefaultAzureCredential 也适用于 TableServiceClient,但不适用于队列。

最佳答案

请确保为您的用户帐户分配了与存储队列相关的 RBAC 角色之一。您的用户帐户必须分配有 Storage Queue Data Contributor 中的一项或多项, Storage Queue Data Message Processor , Storage Queue Data Message Sender ,或Storage Queue Data Reader角色取决于您的要求。

关于python - Azure QueueClient Python 无法使用 DefaultAzureCredential,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76187997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com