我目前正在使用数据工厂自动接收每日电子邮件。 我通过 Microsoft API 发出请求以检索电子邮件附件(始终是 Excel 文件),但调用返回字节。
目前,我的工作流程从 SharePoint 读取 Excel 文件并处理其中包含的数据。 我想将这些字节作为 Excel 文件直接写入 SharePoint,或者如果可能的话,跳过保存到 SharePoint 的步骤并直接在数据工厂内的 copyActivity 中使用 API 调用。我希望获得有关如何实现这一目标的指导。
备注:
唯一可用的工具是 ADF 和 SQL Server。 我们无法访问除 SharePoint 之外的外部存储(无 ADL)。 我们无法使用 Azure Functions 或 Python 等高级 ADF 功能(除了 T-SQL 之外没有其他编码)。
正如你提到的
如果可能,请跳过将数据保存到 SharePoint 的步骤并 直接使用数据工厂中我的 copyActivity 中的 API 调用。
我发现了以下使用 Azure 数据工厂从 Microsoft Graph API 提取数据的方法。
感谢@Kyle Gibson 提供的出色文档。
我尝试了以下方法将 ADLS 中的数据接收为 .json 格式。
以下是步骤:
创建应用程序注册并转到 api 权限,为您的应用程序注册提供所需的 Graph API 权限。
从“值”列复制密钥并将其安全存储,因为这将是查看密钥值的唯一时间。并将这些值存储在 Azure Key Vault 中。
现在在 ADF 中使用具有以下参数的
Rest
服务创建链接服务:
创建数据集:
像创建链接服务时一样,转到服务和应用程序,然后选择与链接服务相同的
REST
。
创建一个名为端点的数据集参数并使用添加动态内容@dataset().endpoint
创建一个管道,设置一个 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
使用以下内容来使用 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 服务相同的数据集。
对于授权:Bearer @{activity(‘获取Token’).output.access_token}
对于分页规则,您可以使用以下规则:
AbsoluteUrl:[‘@odata.nextLink’]
在SINK配置中,您可以选择ADLS并将其写入
.json
格式。