首页 > 其他分享 >【Azure Function App】解决Function App For Container 遇见ServiceUnavailable的异常

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

时间:2023-11-06 21:33:34浏览次数:33  
标签:Function Container fx App version linux DOCKER

问题描述

在使用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的异常 _App

 

问题解答

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

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

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

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

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

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

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

因为对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的异常 _microsoft_05


或者是在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的异常 _microsoft_06

 

 

参考资料

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 




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

标签:Function,Container,fx,App,version,linux,DOCKER
From: https://blog.51cto.com/u_13773780/8217869

相关文章

  • 【Azure Function App】解决Function App For Container 遇见ServiceUnavailable的异
    问题描述在使用Terraform创建FunctionApp后,部署函数时候遇见 ServiceUnavailable(BadRequest-- Encounteredanerror(ServiceUnavailable)fromhostruntime.)问题。查看FunctionApp的高级工具(Kudu)站点和默认站点,均出现ApplicationError页面。 问题解答查看F......
  • uniApp:使用vue3+Vite4+pinia+sass技术栈构建(02)-封装api请求
    前言在纯vue3开发的时候,使用axios进行api请求,但在uniapp中还需要安装axios的适配器uniapp-axios-adapter,否则小程序或者app请求不兼容。文档地址uniapp-axios-adapter-DCloud插件市场但在这里我们不使用axios,而是使用uniapp提供的请求方法uni.request进行封装。uni.request方......
  • 短视频小程序app开发微视频网红短剧分销付费开发
      短视频小程序已成为网民娱乐消遣的工具,用户对内容的追求,都是在短剧平台上实现的,开发一款短剧小程序视频软件。该小程序软件是针对网红短剧,小程序软件是分销的付费形式,为用户提供更多优质内容。  短视频小程序软件主要功能包括:  1.随时都可以在手机上刷视频,无需下载......
  • 影视短剧app带分销支付小程序APP开发
      移动端软件的应用是目前使用群体最多的,影视短剧小程序软件作为一款娱乐性的软件,它正在逐步的成为人们日常休闲的重要工具。  一、设计理念  移动端影视小程序软件的核心点,注重的就是小程序的易用性,方便,带给用户的价值,让用户找到自己想要的内容。通过分销的功能,方便......
  • 基于[email protected]的Vue3 PDF在线预览
    目录认识vue3-pdf-app安装vue3-pdf-app代码子组件封装:PdfView.vue父组件调用:index.vue中文配置文件viewer.properties本文参考来自于CSDN作者theMuseCatcher《Vue3PDF预览(vue3-pdf-app)》认识vue3-pdf-appvue3-pdf-app的npm官方链接点我访问vue3-pdf-app的github仓......
  • 域名在线打包生成APP的优势
    大家好,凯撒又来更新了,现在这个互联网社会移动应用已经成为企业和个人不可或缺的工具,但是对于没有专业编程技能的人来说,开发一个功能完善的移动应用可能还是比较艰巨的。现在有一种更简便快捷的方式那就是使用域名在线打包生成APP。那域名在线打包有哪些优势呢。      ......
  • 获取小程序appid和path教程详细版
    打开你需要获取appid的小程序,这里以“饿了么”小程序为例,然后点击右上角的图标以下为小程序path获取方法登录你的小程序的微信公众平台https://mp.weixin.qq.com点击右上角的工具,进入后是下面的页面然后用你输入的微信号微信浏览“饿了么”小程序,浏览到你要获取path的页面,点......
  • uniapp+微信小程序 激励广告
    防忘首先在onready里面准备好代码 包括广告准备就绪 准备出错,广告关闭data(){return{showAd:false,canShowAd:false,rewardedVideoAd:null,}},onReady()......
  • Redis Functions 介绍之一
    Redis提供了编程接口(programminginterface)可以让你在Redis服务器端执行客户的脚本。一个重大的变化就是从Redis7开始,你可以选择使用RedisFunctions去管理和运行你的脚本,而在此之前你只能使用EVAL命令执行Lua脚本。通过EVAL命令执行的脚本是有缺陷的。如果在Redis服务器端执行......
  • 配置使用百度地图时出现:APP Referer校验失败。请检查该ak设置的白名单与访问所有的域
    如果是个人内部测试使用,直接将IP白名单设置为*  ......