【发布时间】:2019-10-09 00:47:09
【问题描述】:
我正在尝试按照这个 azure 文档进行数据分区刷新(发布):https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-async-refresh
无论是通过发布还是让我得到 401 Unauthorized(即使服务关闭!)。
我从 azure AD (ServicePrincipalCredential) 获得了令牌。 我将 AD 添加为 Analysis Services 管理员 (https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-server-admins) 我将所有者角色分配给了 Analysis Services IAM 中的 AD。
它与 Analysis Services 管理 rest api (https://docs.microsoft.com/en-us/rest/api/analysisservices/operations/list) 使用相同的身份验证(得到代码响应 200)
我的python代码:
from azure.common.credentials import ServicePrincipalCredentials
import requests
credentials = ServicePrincipalCredentials(client_id="ad_client_id",
secret="ad_secret",
tenant="ad_tenant")
token = credentials.token
url = "https://westeurope.asazure.windows.net/servers/{my_server}/models/{my_model}/refreshes"
test_refresh = {
"Type": "Full",
"CommitMode": "transactional",
"MaxParallelism": 1,
"RetryCount": 1,
"Objects": [
{
"table": "my_table",
"partition": "my_partition"
}
]
}
header={'Content-Type':'application/json', 'Authorization': "Bearer {}".format(token['access_token'])}
r = requests.post(url=url, headers=header, data=test_refresh)
import json
print(json.dumps(r.json(), indent=" "))
我得到的回应:
{
"code": "Unauthorized",
"subCode": 0,
"message": "Authentication failed.",
"timeStamp": "2019-05-22T13:39:03.0322998Z",
"httpStatusCode": 401,
"details": [
{
"code": "RootActivityId",
"message": "aab22348-9ba7-42c9-a317-fbc231832f75"
}
]
}
我绝望了,你能帮我澄清一下吗?
【问题讨论】:
-
当服务关闭并且您仍然收到响应时,您正在联系与预期不同的服务。您会收到 401,因为该其他服务使用不同的凭据。
-
是的,我明白,但我只是使用微软提供的基本 url,我不知道这是怎么发生的......
标签: python azure rest api azure-analysis-services