如何构建Azure Data Factory和Azure函数以进行文件验证检查并发送错误邮件

问题描述

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

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

非常感谢您的合作。

解决方法

据我所知,回答以下问题。随时澄清您是否需要其他或更详细的信息。

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

使用Copy Data,源blob作为输入,目标blob作为输出

谢谢。我知道了。我也可以实现这一点。

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

在数据工厂中使用Azure Function activity来调用您触发的http 功能(假设您是要验证要上传/复制的文件吗?)

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

您将不需要队列来处理自己。您可以使用内置的Blob Trigger,这将使您的生活更轻松。

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

您可以使用以下相同的Python Azure函数通过SendGrid发送电子邮件: SendGrid binding。但是功能绑定不支持在邮件中附加文件。为此,您可以编写custom code using SendGrid SDK而不是使用内置绑定。

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

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

可以。我相信这是REST API规范。如果您使用SendGrid SDK,那将为您解决。

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

您是说要在某个SQL表列中将文件保留为二进制文件?尽管您可以从技术上将其存储在varbinary type列中。但是我建议存储blob链接,而不是将整个文件存储在SQL中。您可以在管道中使用SQL activity来调用将blob链接作为参数传递的存储过程。

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

如上所述,由于Data Factory已经有trigger可以帮助您,因此您不需要自定义队列。