0

尝试构建一个从 Azure REST API 检索有关Synapse Pipelines的数据的工作簿,该数据属于另一个端点( https://dev.azuresynapse.net ),不像 Azure 资源管理器 API ( https://management.azure.com )。在 Monitor Workbook 查询中,有一个用于 Azure RM API 的特殊数据源“Azure 资源管理器”,它非常适合我,因为内置了身份验证/授权(在后台工作)。然而,对于 Synapse 数据平面 API(由于另一个端点),最终需要使用“自定义端点”查询数据源。此处必须事先单独请求不记名(访问)令牌,与https://login.microsoftonline.com/{tenantId}/oauth2/token. 如果我尝试通过单独的查询来实现它,由于 CORS(参见附图),login.microsoftonline.com 不支持(该请求可能通过 AJAX 工作),因此它不起作用。 Synapse 的相同构造在邮差。谁能告诉我如何在工作簿中实现这样的 API 请求?

问候伊万

访问令牌请求查询(错误消息)

4

2 回答 2

0

这是当今工作簿中不直接支持的重要事情。

Azure 门户本身在各种扩展/资源提供程序之间进行身份验证的方式需要很多小细节才能使这样的交叉身份验证正常工作。

我将跟进 Synapse 团队,看看这对我们来说是否/多么容易实施。一旦该身份验证可用,我们就需要在工作簿中编写自定义数据源。(我相信我们已经要求他们可能通过 ARM 公开这些数据以摆脱这些额外的要求)如果您有具体的场景/示例,您可以通过电子邮件跟进吗?jgardner@MS

对于您与 CORS 相关的事情,如果您转到该屏幕截图的标题选项卡并选中删除所有额外标题的框,您可能能够克服该错误?它可能会因为它不期望的额外标头而拒绝那里的 CORS 请求?

于 2022-01-12T18:31:23.133 回答
0

我找到了一种解决方法,可以使用 Azure Monitor Workbook 自定义终结点(查询数据源)从突触工作区(触发器、管道、linkedServices 等)中检索配置数据。它仅适用于通过 Azure DevOps 服务链接到 git 的突触工作区。在这种情况下,您可以使用 Azure DevOps API 获取与生产环境相关的配置信息,如下所示:

https://dev.azure.com/{organization}/_apis/git/repositories/{repositoryId}/items?scopePath={Path}/TemplateForWorkspace.json&version=workspace_publish&download=true&api-version=6.0&Authorization Basic=BASE64PATSTRING

为此,您必须在 DevOps 端发行一个令牌。CORS 策略对于此类请求不是问题,因为它是 GET 而不是 PUT 一个

于 2022-02-09T14:46:05.727 回答