通过服务主体调用Power BI REST API获取租户数据集刷新记录失败
Power BI服务主体无法获取数据集刷新记录的问题
我拥有一个GUID为[$group]的Power BI工作区,其中包含一个GUID为[$dataset]的数据集。使用个人凭据通过Azure Cloud Shell执行以下代码可正常获取最近3条刷新记录:
Connect-PowerBIServiceAccount # 使用个人凭据登录 $Url = 'https://api.powerbi.com/v1.0/myorg/groups/' + $group + '/datasets/' + $dataset + '/refreshes?$top=3' $results = $(Invoke-PowerBIRestMethod -Url $Url -Method Get | ConvertFrom-Json).value
但我需要修改代码以获取租户下所有工作区的刷新记录,因此改用服务主体登录:
Connect-PowerBIServiceAccount -ServicePrincipal -Credential $Credentials -Tenant $TenantId
此时执行原刷新记录查询代码会报错:
Invoke-PowerBIRestMethod: One or more errors occurred. ({ "code": "ItemNotFound", "message": "Couldn't find dataset id " })
经排查,在URL中加入/admin后可成功获取指定工作区的数据集:
$Url = 'https://api.powerbi.com/v1.0/myorg/admin/groups/'+$group+'/datasets' $results_datasets = $(Invoke-PowerBIRestMethod -Url $Url -Method Get | ConvertFrom-Json).value
且已确认[$dataset]存在于返回的数据集ID中,但尝试以下URL获取该数据集的刷新记录时,均报错“找不到匹配的HTTP资源”:
$Url = 'https://api.powerbi.com/v1.0/myorg/admin/groups/' + $group + '/datasets/' + $dataset $Url = 'https://api.powerbi.com/v1.0/myorg/admin/groups/' + $group + '/datasets/' + $dataset + '/refreshes' $Url = 'https://api.powerbi.com/v1.0/myorg/admin/groups/' + $group + '/datasets/' + $dataset + '/refreshes?$top=3'
请问为何能获取数据集但无法获取其刷新记录?是否有更优的方式通过服务主体获取刷新数据?
注:服务主体所在安全组已启用Allow service principals to use Power BI APIs和Dataset Execute Queries REST API权限。
内容的提问来源于stack exchange,提问作者57Jimmy
相关产品推荐
相关产品推荐

