我正在尝试从 Azure REST API 中提取数据。
我想查询的端点是Recommendations - List
为了这样做,我需要:
一旦发送,一切都很好,我得到了我想要的结果。
现在,有没有办法在 Power BI 中执行相同的操作?
目标是每日刷新。
此外,有没有办法创建一个向 Azure REST API 请求新令牌的逻辑?
我可以看到在此 Power BI 查询线程和这个问题中设置的相关标头。
Azure REST API ──────┐
├─ GET /subscriptions/{subscription-id}/providers/
│ Microsoft.Advisor/recommendations
│
│ Headers ──┐
│ ├─ Authorization: Bearer {token}
│ └─ Accept: application/json
│
│ Query ────┐
│ └─ api-version=2023-01-01
│
└─ Response with Data
您可以使用 Power BI Desktop 中的 Power Query 编辑器来设置连接和查询。 (
'Home' > 'Get Data' > 'More...' > 'Online Services' > 'Blank Query'
)。单击“高级编辑器”并粘贴以下 M 代码:
let
url = "https://management.azure.com/subscriptions/f95326b6-759b-45c5-a123-ae6a9aa82754/providers/Microsoft.Advisor/recommendations?api-version=2023-01-01",
token = "Bearer YourTokenHere",
// HTTP Request headers
headers = [
Authorization=token,
// Include Accept header
Accept="application/json"
],
// Get the data
source = Json.Document(Web.Contents(url, [Headers=headers]))
in
source
要自动刷新承载令牌,您通常需要使用服务主体,或其他允许无人值守身份验证的身份验证方法。 Power BI 没有这方面的内置功能,因此您可以尝试:
对于 Power BI 服务中的每日刷新,您可以将数据集设置为每日刷新。但是,对于令牌刷新逻辑,您可能需要一个外部服务来安全地管理和刷新令牌(可能是Azure Key Vault),然后通过 API 更新 Power BI 数据源凭据(数据集 - 更新数据源) )。