Azure Logic Apps中VM停止状态通知的条件配置问题
Azure Logic Apps中VM停止状态通知的条件配置问题
你好呀!别着急,看你说的情况,肯定是Logic Apps里判断VM停止状态的条件没配对,才会不管实际是成功还是失败,都只收到失败的通知。我结合你的场景给你梳理下排查和调整的思路:
你的核心需求:当VM停止操作成功或失败时,分别触发对应的通知,但目前所有情况都只会触发失败通知,试过多种配置都没解决。
咱们先从常见的问题点入手排查:
- 首先确认状态字段是否取对了:你截图里的参数应该是从VM停止操作的输出里提取的状态值吧?Azure里VM停止操作的成功状态通常是
Succeeded,失败是Failed,但很多人会踩坑——要么取错了字段路径(比如取了嵌套层级不对的字段),要么没注意到状态值是区分大小写的(比如写成了succeeded就匹配不到Succeeded)。 - 然后看条件分支的逻辑:你当前的条件是不是把“失败”设成了默认分支?或者判断逻辑写反了?比如应该把“等于Succeeded”设为第一个分支,“等于Failed”设为第二个分支,而不是反过来。
给你具体的调整步骤,照着来应该就能解决:
- 先找对状态字段的正确路径
运行一次你的Logic Apps流程,然后到「运行历史」里找到VM停止操作的输出JSON,找到里面的状态字段。通常这个字段的路径是body/status或者body/Properties/provisioningState,把你参数里的路径改成和这个一致的。 - 重新配置条件分支
- 新建条件,第一个分支设置为:「你的状态参数」 等于
Succeeded,然后配置成功的通知(比如发邮件或者Teams消息); - 第二个分支设置为:「你的状态参数」 等于
Failed,配置失败的通知; - 记得把默认分支留空,或者设置成“其他异常情况”的通知,避免误触发。
- 新建条件,第一个分支设置为:「你的状态参数」 等于
- 测试验证
手动触发一次VM停止操作(确保VM是运行状态),然后看流程的运行历史,检查状态字段的实际取值,再确认条件分支有没有正确触发对应的通知。
举个实际配置的小例子:假设你从VM停止操作里取的状态字段是@body('Stop_VM')?['status'],那参数VMStopStatus就设为这个值,然后条件里直接用这个参数匹配Succeeded和Failed就好。
备注:内容来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

