如何在ADF中实现REST API的HTTPS URL可用性检测与重试告警
ADF实现HTTPS REST API可访问性预校验方案
前期准备
- 配置ADF REST类型链接服务,指向目标API根地址,按照API要求配置身份验证规则,确保ADF所用集成运行时(IR)的出口IP已加入目标API防火墙白名单,手动测试链接服务连通性正常
- 提前准备发邮件的HTTP调用端点:可以通过Azure Logic Apps、Azure Function实现简单的邮件触发逻辑,逻辑接收HTTP请求后将预设的故障通知发送到指定邮箱即可
核心Pipeline配置
第一步:定义Pipeline变量
新建3个Pipeline层级的变量:
- 整数类型
retryCount,初始值设为0,记录当前已重试次数 - 整数类型
maxRetry,初始值设为5,对应要求的最大重试次数 - 布尔类型
isAccessSuccess,初始值设为false,标记接口是否校验通过
第二步:配置重试校验循环
添加Until循环活动,循环终止条件设置为:@or(variables('isAccessSuccess'), greaterOrEquals(variables('retryCount'), variables('maxRetry')))
循环内部按如下配置活动:
- 新增Web活动,命名为
CheckAPIHealth- URL填写目标检测接口地址,请求方法按API要求配置(一般为
GET),身份验证复用之前创建的REST链接服务配置 - 关闭该活动的ADF自带重试策略,避免和自定义重试逻辑冲突
- URL填写目标检测接口地址,请求方法按API要求配置(一般为
- 配置Web活动的成功分支:添加
设置变量活动,将isAccessSuccess变量赋值为true,标记校验通过,直接退出循环 - 配置Web活动的失败分支:
- 先添加
等待活动,设置等待时长为10秒,满足重试间隔要求 - 再添加
设置变量活动,将retryCount变量值加1,赋值表达式为@add(variables('retryCount'), 1)
- 先添加
第三步:配置故障通知逻辑
在Until循环结束后添加If条件活动,判断条件设置为:@and(not(variables('isAccessSuccess')), greaterOrEquals(variables('retryCount'), 3))
- 条件为真(连续3次及以上尝试失败):添加Web活动,调用之前准备好的发邮件端点,可在请求体中传入接口地址、重试次数、错误信息等自定义内容,触发故障邮件发送
- 条件为假(校验通过):直接对接后续下载接口数据的正常业务流程即可
可选优化配置
- 如果目标API的合法返回状态码不是默认的200,可以在
CheckAPIHealth活动的成功状态码配置项中添加对应合法状态码,避免误判 - 可将接口地址、重试次数、间隔时长、通知邮箱这些参数设置为Pipeline参数,方便后续调整
内容的提问来源于stack exchange,提问作者AutotelicLearner
相关产品推荐
相关产品推荐

