本文属于【Azure 架构师学习笔记】系列。
本文属于【Azure Logic Apps】系列。
接上文【Azure 架构师学习笔记】-Azure Logic Apps(5)- 标准和使用量类型的区别
前言
Logic Apps 和 ADF 的搭配使用是常见的组合,它们可以互相弥补各自的不足和发挥各自的长处。从ADF调用Logic Apps, 因为ADF 没有内置的activity,所以往往需要使用其他的如web, http等activities来调用。而从Logic Apps调用ADF 则相对简单,因为它有内置的connector。
下面来演示一下如何用Logic Apps触发ADF 的pipeline。
准备工作
配置ADF pipeline
首先在ADF 中创建一个测试pipeline,简单地从ADLS Gen2 的一个container 复制文件到另外一个container。 这个Pipeline是必须的,后续会看到原因。 因为测试所以pipeline名字随意,比如pipeline5, 不过正式环境中应该使用一些可标识的名字。
这个pipeline从下面路径:
把文件复制到下面的路径:
配置Logic Apps workflow
然后在Logic Apps中的模板打开“当收到HTTP 请求时”:
这里的正文不用写东西。这是其中一大特点,因为很多操作都需要指定JSON,这里不需要。
添加新步骤然后找到Azure Data Factory, 选择【Create a pipeline run】这个操作(Action):
接下来直接选择对应的pipeline,这里就是为什么要先创建好,因为在这个trigger中,可以选择需要触发的pipeline:
保存后点运行trigger:
检查结果
从Logic Apps和ADF都可以看到对应的workflow和pipeline都运行成功:
再检查ADLS Gen2 上的文件也成功复制过来。达到了我们的预期。
小结
Logic Apps本身作为一个业务逻辑的处理工具,在数据操作上面不如ADF, 而ADF 作为ETL工具,逻辑上又没有Logic Apps的强大,所以往往会组合使用,各取所长。
本文以简单的Logic Apps调用ADF 为例演示了如何实现这种跨服务调用。后续文章会演示更多的操作案例。