将 Microsoft API 附件二进制响应转换为 Excel

问题描述 投票:0回答:1

我目前正在使用数据工厂自动接收每日电子邮件。 我通过 Microsoft API 发出请求以检索电子邮件附件(始终是 Excel 文件),但调用返回字节。

目前,我的工作流程从 SharePoint 读取 Excel 文件并处理其中包含的数据。 我想将这些字节作为 Excel 文件直接写入 SharePoint,或者如果可能的话,跳过保存到 SharePoint 的步骤并直接在数据工厂内的 copyActivity 中使用 API 调用。我希望获得有关如何实现这一目标的指导。

备注:

唯一可用的工具是 ADF 和 SQL Server。 我们无法访问除 SharePoint 之外的外部存储(无 ADL)。 我们无法使用 Azure Functions 或 Python 等高级 ADF 功能(除了 T-SQL 之外没有其他编码)。

azure t-sql microsoft-graph-api azure-data-factory microsoft-graph-mail
1个回答
0
投票

正如你提到的

如果可能,请跳过将数据保存到 SharePoint 的步骤并 直接使用数据工厂中我的 copyActivity 中的 API 调用。

我发现了以下使用 Azure 数据工厂从 Microsoft Graph API 提取数据的方法。

感谢@Kyle Gibson 提供的出色文档。

我尝试了以下方法将 ADLS 中的数据接收为 .json 格式。

以下是步骤:

创建应用程序注册并转到 api 权限,为您的应用程序注册提供所需的 Graph API 权限。

enter image description here

从“值”列复制密钥并将其安全存储,因为这将是查看密钥值的唯一时间。并将这些值存储在 Azure Key Vault 中。

现在在 ADF 中使用具有以下参数的

Rest
服务创建链接服务:

enter image description here

创建数据集:

像创建链接服务时一样,转到服务和应用程序,然后选择与链接服务相同的

REST
。 创建一个名为端点的数据集参数并使用添加动态内容
@dataset().endpoint

enter image description here

创建一个管道,设置一个 Web 活动来获取 Graph API 的不记名令牌。

使用类似以下格式

URL:  https://login.microsoftonline.com/YourTenantID/oauth2/v2.0/token

如果您使用的是 Azure Key Vault,请使用以下命令:

https://login.microsoftonline.com/@{activity('Get Tenant ID’).output.value}/oauth2/v2.0/token

enter image description here

使用以下内容来使用 Azure Key Vault:

grant_type=client_credentials&client_id=@{activity(‘Get Client ID’).output.value}&client_secret=@{activity(‘Get Client Secret’).output.value}&scope=https://graph.microsoft.com/.default

接下来使用复制活动配置源,使用与 Rest 服务相同的数据集。

enter image description here

对于授权:Bearer @{activity(‘获取Token’).output.access_token}

对于分页规则,您可以使用以下规则:

AbsoluteUrl[‘@odata.nextLink’]

在SINK配置中,您可以选择ADLS并将其写入

.json
格式。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.