如何使用Logic App Flows提前30天发送密钥库到期邮件通知?
搭建Azure密钥库到期提前30天通知的Logic App流程
一、核心流程逻辑
每日定时触发 → 查询密钥库内的证书/密钥/机密 → 筛选出30天内到期的资源 → 向指定邮箱发送通知邮件
二、分步搭建指南
1. 创建空白逻辑应用
登录Azure门户,搜索“逻辑应用”,点击“创建”,选择消耗型或标准型,完成订阅、资源组、名称等基础配置后创建。
2. 添加定时触发器
在逻辑应用设计器中,搜索并选择Recurrence触发器,设置触发频率为每天,间隔1天。
3. 连接密钥库并查询资源
- 添加新动作,搜索“Azure Key Vault”,根据监控需求选择
Get Secrets/Get Certificates/Get Keys动作。 - 配置密钥库连接:选择目标密钥库,或新建连接(需后续配置权限)。
- 勾选“Include expired secrets”选项,确保能获取资源的到期日期属性。
4. 筛选30天内到期的资源
- 添加
Filter array动作,设置From为上一步返回的资源列表(如@body('Get_Secrets'))。 - 配置筛选条件:
该条件会筛选出“当前时间已达到到期日期前30天”的资源。@lessOrEquals(utcNow(), addDays(item()?['attributes']?['exp'], -30))
5. 判断是否需要发送通知
- 添加
Condition动作,判断筛选结果是否为空:@empty(body('Filter_array'))- 若结果为是:流程终止,无到期资源需通知。
- 若结果为否:进入邮件发送步骤。
6. 发送通知邮件
- 在条件的“否”分支中,添加邮件动作(如
Office 365 Outlook - Send an email (V2))。 - 配置收件人、主题(例如「⚠️ 密钥库资源即将到期通知」)。
- 邮件正文需遍历筛选后的资源列表,可使用
Apply to each循环,示例正文内容:以下密钥库资源将在30天内到期:
- 资源名称:
@{item()?['name']} - 到期时间:
@{formatDateTime(item()?['attributes']?['exp'], 'yyyy-MM-dd HH:mm:ss')}
- 资源名称:
7. 权限配置与测试
- 为逻辑应用的系统分配身份(或用户分配身份)在密钥库的访问策略中添加
Secrets Reader/Certificates Reader/Keys Reader权限,确保能读取资源属性。 - 保存流程后手动触发测试,验证筛选和邮件发送功能是否正常。
内容的提问来源于stack exchange,提问作者LearnIt
相关产品推荐
相关产品推荐

