如何解决Azure 函数:在函数应用中检测到主机脱机
我们有一个与 VNET 集成的 Azure Function。函数使用 Key Vault 从中读取配置值。在功能上启用了 MSI,并在 KV 中添加了访问策略以允许功能访问它。限制从上述 VNET 到 Key Vault 的流量。我们昨天在诊断中收到了这个错误,这影响了我们的执行流程。该应用程序离线几分钟,导致失败。诊断报告是这样说的:
Detected host offline in your function app.
Description
A host error has occurred during startup operation 'd732fccb-40ae-40a1-8d14-ea3cdba0e725'.
Last offline at
5/4/2021 10:32:13 AM
Details
Microsoft.Azure.KeyVault.Models.KeyVaultErrorException : Client address is not authorized and caller is not a trusted service.
Client address: x.x.x.x
该功能在关闭约 4 分钟后开始正常工作。这可能是 VNET 集成的问题。 有没有人遇到过这个?有什么办法可以防止这种情况发生吗?
解决方法
在这种情况下,您可以添加 azure 函数的应用程序设置 WEBSITE_VNET_ROUTE_ALL = 1
,这将强制所有来自 azure 函数的出站流量进入该 VNet。
当您将所有出站流量路由到 VNet 时, 受适用于您的集成的 NSG 和 UDR 的约束 子网。当 WEBSITE_VNET_ROUTE_ALL 设置为 1 时,出站流量为 仍然从您的应用属性中列出的地址发送, 除非您提供将交通引向别处的路线。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。