首页 > 解决方案 > 如何构建 Azure 数据工厂和 Azure 函数以进行文件验证检查和发送错误邮件

问题描述

我在管道中有一个 Azure 数据工厂复制活动。复制活动正在运行。我有 2 个问题。第一个问题是如何构建 Azure 数据工厂或 Azure 函数来执行以下任何流程。

  1. 将上传的 csv 文件或 excel 文件复制到另一个容器。
  2. 对 python 编码的 azure 函数执行验证检查。
  3. 将包含错误消息的邮件作为附件发送,该文件由 Azure 发送网格的 SMTP 验证检查生成。
  4. 如果验证检查没有问题,将该文件复制到 SQL 数据库表中。

非常感谢您提前合作。

标签: pythonazure-functionssendgrid

解决方案


据我了解,以下回答您的问题。如果您需要其他内容或更多详细信息,请随时澄清。

将上传的 csv 文件或 excel 文件复制到另一个容器。

使用源 blob 作为输入和目标 blob 作为输出的复制数据

谢谢你。我得到了它。II也可以实现这一点。  

对 python 编码的 azure 函数执行验证检查

使用数据工厂中的Azure 函数活动来调用您的 http 触发函数(假设您的意思是对正在上传/复制的文件进行验证检查?)

是的,我愿意。该文件与我上传和复制的文件相同。如何使用消息队列触发器?由于大文件,我希望使用复制完成队列的触发器。

你不需要排队来处理自己。您可以使用内置的 Blob触发器 ,这将使您的生活更轻松。

将包含错误消息的邮件作为附件发送,该文件由 Azure 发送网格的 SMTP 验证检查生成。

您可以使用 SendGrid 绑定从同一 python Azure 函数通过 SendGrid 发送电子邮件。但函数绑定不支持在邮件中附加文件。为此,您可以使用 SendGrid SDK而不是使用内置绑定编写自定义代码。

我不知道函数 bindind 不支持附加文件。我尝试使用 sendgrid SDK 和 API

SendGrid API 我还应该看到下面链接的参考吗? 附件

是的你可以。我相信那是 REST API 规范。如果您使用 SendGrid SDK,它将为您处理好。

如果验证检查没有问题,将该文件复制到 SQL 数据库表中。

您的意思是将文件作为二进制文件保存在某些 SQL 表列中吗?尽管您可以在技术上将其存储在 varbinary 类型列中。但我建议存储 blob 链接而不是将整个文件存储在 SQL 中。您可以在管道中使用SQL 活动来调用存储过程,将 blob 链接作为参数传递。

我的评论包括错过单词。下面是正确的。如果验证检查没有问题,将文件中的信息复制到SQL数据库表中,以备我积累数据后需要分析数据。我不知道如何将迁移过程的触发器设置为 SQL 数据库。我使用 Strage blob 的复制完成的消息队列作为输出会更好吗?

如上所述,您不需要自定义队列,因为数据工厂已经有触发器来帮助您。


推荐阅读