使用运行状况检查在 Azure 逻辑应用中监视标准工作流的运行状况(预览版)
适用于:Azure 逻辑应用(标准)
备注
此功能为预览版,受 Azure 预览版补充使用条款约束。
为了帮助标准逻辑应用工作流以高可用性和性能运行,请在逻辑应用上设置运行状况检查功能以监视工作流运行状况。 通过提供以下优势,此功能可确保应用保持复原能力:
主动监视,以便在问题影响客户之前找到并解决它们。
从 Azure 的负载均衡器中删除不正常的实例以提高可用性。
通过替换不正常的实例自动恢复。
运行状况检查是一项 Azure 应用服务平台功能,可将请求从不正常的实例重定向,并在这些实例保持不正常时替换它们。 对于标准逻辑应用,可以指定为此目的和应用服务平台创建的“运行状况”工作流的路径,以定期执行 ping 操作。 例如,以下示例显示了基本最低工作流:
启用运行状况检查后,应用服务平台会按 1 分钟间隔对所有逻辑应用实例的指定工作流路径执行 ping 操作。 如果逻辑应用需要横向扩展,则 Azure 会立即新建实例。 应用服务平台再次对工作流路径执行 ping 操作,以确保新实例准备就绪。
如果实例上运行的工作流在 10 个请求后未响应 ping,则应用服务平台会确定该实例不正常,并从 Azure 的负载均衡器中删除该特定逻辑应用的实例。 至少使用两个请求,可以指定所需的失败请求数,以确定实例不正常。 有关替代默认行为的详细信息,请参阅配置:使用运行状况检查监视应用服务实例。
运行状况检查删除不正常的实例后,该功能会继续对实例执行 ping 操作。 如果实例使用正常状态代码(包括 200 到 299)做出响应,则运行状况检查会将实例返回到负载均衡器。 但是,如果实例在一小时内保持不正常,则运行状况检查会将实例替换为新的实例。 有关详细信息,请参阅应用服务利用运行状况检查进行哪些方面的监视。
Azure 帐户和订阅。 如果没有订阅,可以注册 Azure 帐户。
具有以下属性的标准逻辑应用资源:
缩放到两个或更多个实例的应用服务计划。
专门运行运行状况检查和以下元素的“运行状况”工作流:
从名为收到 HTTP 请求时的请求触发器开始。
包括名为响应的请求操作。 将此操作设置为在200与299之间以非独占方式返回状态代码。
还可以选择让此工作流运行其他检查,以确保依赖服务可用且按预期工作。 最佳做法是确保运行状况检查路径监视工作流中的关键组件。 例如,如果应用依赖于数据库和消息传送系统,请确保运行状况检查可以访问这些组件。
指定的路径长度必须少于 65 个字符。
运行状况检查的指定路径中的更改会导致逻辑应用重启。 为了减少对生产应用的影响,请设置和使用部署槽位。
运行状况检查不会遵循302状态代码的重定向,因此,请避免重定向,并确保选择应用中存在的有效路径。
在Azure 门户中,转到标准逻辑应用资源。
在逻辑应用菜单上,选择“诊断并解决问题”。
在诊断并解决问题页的搜索框中,找到并选择“运行状况检查功能”。
在运行状况检查功能部分中,选择“查看解决方案”。
在打开的窗格中,选择“配置和启用运行状况检查功能”。
在“运行状况检查”选项卡的“运行状况检查”旁边,选择“启用”。
在“运行状况探测路径”的“路径”框中,输入工作流的有效 URL 路径,例如:
/api/{workflow-name}/triggers/{request-trigger-name}/invoke?api-version=2022-05-01
保存所做更改。 在工具栏上选择“保存”。
在逻辑应用资源中,按照以下步骤更新host.json文件:
在逻辑应用菜单的“开发工具”下,选择“高级工具”“转到”>。
在“KuduPlus”工具栏上,打开“调试控制台”菜单,然后选择“CMD”。
浏览到site/wwwroot文件夹,然后在host.json文件旁边选择“编辑” 。
在host.json文件编辑器中,添加Workflows.HealthCheckWorkflowName属性和运行状况工作流名称以启用运行状况检查身份验证和授权,例如:
"extensions": { "workflow": { "settings": { "Workflows.HealthCheckWorkflowName" : "{workflow-name}" } } }
完成后,选择“保存”。
在逻辑应用菜单上,选择“诊断并解决问题”。
在“故障排除类别”下,选择“可用性和性能”。
查找并查看状态代码部分。
如果状态代码为401,请检查以下项:
确认Workflows.HealthCheckWorkflowName属性,并且运行状况工作流名称正确显示。
确认指定的路径与工作流和请求触发器名称匹配。
如果逻辑应用资源不正常,或者当资源无法访问关联的存储帐户时,可能会发生此行为。 尝试检查存储帐户是否有阻止访问的网络设置,或者你是否有阻止访问的网络防火墙策略。
检查资源是否可以访问关联的存储帐户。
例如,存储帐户是否有阻止访问的网络设置? 你是否有阻止访问的网络防火墙策略?
如果工作流以基于服务提供程序的触发器开头,请确保触发器按预期成功工作。
基于服务提供商的失败触发器可能会创建不必要的缩放,这会显著增加成本。
例如,一个常见的失误是设置触发器而不向逻辑应用授予对目标(例如服务总线队列、存储 blob 容器等)的权限或访问权限。
请确保随时监视此类触发器,以便可以及时检测和修复任何问题。
如果标准逻辑应用使用名为“工作流服务计划”且未托管在应用服务环境中的托管选项,请确保打开“运行时规模监视”,并且“始终就绪实例数”至少设置为 1。
在 Azure 门户中,找到并打开你的逻辑应用(如果尚未打开)。
在逻辑应用菜单上的“设置”下,选择“配置” 。
在“工作流运行时设置”选项卡上,选择“运行时缩放监视”旁边的“启用”。
在“配置”页面工具栏上,选择“保存”。
在逻辑应用菜单的“设置”下,选择“横向扩展(应用服务计划)”。
在“应用横向扩展”下,确保“始终就绪实例数”值未设置为 0。