【Azure Function App】解决Function App For Container 遇见ServiceUnavailable的异常

问题描述

在使用Terraform创建Function App 后,部署函数时候遇见 ServiceUnavailable (Bad Request — Encountered an error (ServiceUnavailable) from host runtime.) 问题。

查看Function App的高级工具(Kudu)站点和默认站点,均出现 Application Error页面。

【Azure Function App】解决Function App For Container 遇见ServiceUnavailable的异常

问题解答

查看Function App的Azure管理页面,有提示错误消息“ Configure Container Settings “ , 但是点击后,却没有任何反应, 无法查看具体的消息.

【Azure Function App】解决Function App For Container 遇见ServiceUnavailable的异常

然后查看Function App的部署中心页面, 也是没有任何信息输出,页面空白。

根据此处判断,UI上必定有JS错误,所以启用浏览器开发者模式(F12),查看Console中的错误信息。发现报错:Incorrect fxVersion set in the site config: DOCKER。

【Azure Function App】解决Function App For Container 遇见ServiceUnavailable的异常

判断出,是Function App for Container关于DOCKER的配置错误,所以对比一个正确的Function App Container发现关键信息为:

【Azure Function App】解决Function App For Container 遇见ServiceUnavailable的异常

由于对LinuxFxVersion的配置只说明了DOCKER,没有指定正确的Image 路径,所以Function App 无法加载部署中心,同时也无法正确的运行DOCKER指令和Kudu站点。

解决办法

通过az functionapp config set 指令,修改 –linux-fx-version的值,如:

 az functionapp config set --name <FUNCTION_APP>
 --resource-group <RESOURCE_GROUP>
 --linux-fx-version --% "DOCKER|mcr.microsoft.com/azure-functions/dotnet:4-appservice-quickstart"

For Windows)注意:由于在Powershell中 ”|“是终止符,所以如果没有特殊说明,执行上面的语句会下面的错误:

mcr.microsoft.com is not recognized as an internal or external command, operable program or batch file.

所以,需要加上 停止分析 (--%) 标记来阻止 PowerShell 将输入解释为 PowerShell 命令:

【Azure Function App】解决Function App For Container 遇见ServiceUnavailable的异常

或者是在Terraform中对linux-fx-version赋予完整的值。

  • linux_fx_version – (Optional) Linux App Framework and version for the AppService, e.g. DOCKER|(golang:latest).

修改后,Function App页面恢复正常。

【Azure Function App】解决Function App For Container 遇见ServiceUnavailable的异常

参考资料

Pin to a specific version on Linux: https://learn.microsoft.com/en-us/azure/azure-functions/set-runtime-version?tabs=portal#manual-version-updates-on-linux

Terraform设置Function App Linux fx version:*https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/function_app#linux_fx_version *

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容