ARM模板中Azure Web应用的App配置变量未生效问题咨询
Azure Flask容器Web App端口配置问题解决
不需要把配置放到其他资源对象里,问题出在配置层级、Flask自身设置或容器配置上,按以下步骤修正:
确认ARM模板配置层级
确保WEBSITES_PORT和PORT正确嵌套在Microsoft.Web/sites的siteConfig.appSettings数组中,正确的模板片段示例:{ "type": "Microsoft.Web/sites", "apiVersion": "2022-09-01", "name": "[parameters('siteName')]", "location": "[parameters('location')]", "properties": { "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName'))]", "siteConfig": { "appSettings": [ { "name": "WEBSITES_PORT", "value": "80" }, { "name": "PORT", "value": "80" } ], "linuxFxVersion": "[parameters('linuxFxVersion')]" } } }如果你用的是Linux容器,必须正确配置
linuxFxVersion(格式如DOCKER|你的镜像:标签),这是配置生效的前提。修正Flask启动代码
Flask默认监听127.0.0.1:5000,容器环境下要改为监听0.0.0.0,并读取环境变量指定的端口,示例代码:import os from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return "Hello World!" if __name__ == '__main__': app.run(host='0.0.0.0', port=int(os.getenv('PORT', 5000)))这样应用会优先使用你配置的
PORT环境变量值。检查Dockerfile配置
确认Dockerfile中包含EXPOSE 80指令,告知Azure容器内部暴露的端口,否则平台可能自动使用备用端口(比如8081)。验证部署后的配置
重新部署模板后,在Azure门户的Web App「配置→应用设置」中确认WEBSITES_PORT和PORT已设置为80,再通过日志流或az webapp log tail命令查看应用实际监听端口。
内容的提问来源于stack exchange,提问作者Álvaro
相关产品推荐
相关产品推荐

