Azure Web App部署出现503错误,但Flask应用本地运行正常
Flask应用部署到Azure Web App后出现503服务不可用错误排查求助
已成功将GitHub仓库中的Flask应用部署到Azure Web App,本地通过GitHub Codespace运行完全正常,但访问Azure Web App分配的域名时出现503服务不可用错误。
已知情况
- Azure门户显示部署成功
- 该Python Flask应用包含存放在GitHub仓库中的若干大型模型
- 本地运行无任何问题
- 已反复检查日志,但未找到能解释Azure上应用不可用的相关错误
Flask应用代码
from flask import Flask, request, jsonify import numpy as np import tensorflow as tf import joblib import os # Required to access environment variables # Initialize the Flask app app = Flask(__name__) # Get the API key from environment variables api_key = os.getenv('API_KEY') # Load models and scalers def load_models(): my code # Preload the models and scalers load_models() @app.route('/predict', methods=['POST']) def predict(): my code # Run the Flask app if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
requirements.txt内容
Flask==2.2.5 numpy==1.26.4 tensorflow==2.17.0 joblib==1.4.2 requests==2.32.3 pyngrok==7.2.0
已尝试的操作
- 确认Flask应用本地运行无问题
- 使用Azure内置部署工具直接从GitHub部署到Azure Web App
- 验证Azure中的设置(如App Service Plan、环境变量、启动命令)
- 检查Azure服务器日志,但未找到指向503错误原因的信息
部分日志内容
2024-09-30T21:09:24.703Z ERROR - Container esraafactory_0_ed1d428d for site esraafactory did not start within expected time limit. Elapsed time = 232.319653 sec 2024-09-30T21:09:25.013Z ERROR - Container esraafactory_0_ed1d428d didn't respond to HTTP pings on port: 8000, failing site start. See container logs for debugging. 2024-09-30T21:09:25.304Z INFO - Stopping site esraafactory because it failed during startup. 2024-09-30T21:09:31.0708108Z Container is terminating. Grace period: 0 seconds. 2024-09-30T21:09:31.2297871Z Stop and delete container. Retry count = 0 2024-09-30T21:09:31.2395158Z Stopping container: esraafactory_kudu_c75f8eb4. 2024-09-30T21:09:32.3659006Z Deleting container: esraafactory_kudu_c75f8eb4. Retry count = 0 2024-09-30T21:09:33.6837850Z Container spec TerminationMessagePolicy path 2024-09-30T21:09:33.6940792Z Container is terminated. Total time elapsed: 2612 ms./home/LogFiles/2024_10_01_lw0ldlwk0003P0_default_docker.log 2024-10-01T14:10:25.652152756Z ^^^^^^^^^^^^^^^^ 2024-10-01T14:10:25.652157156Z File "/opt/python/3.12.2/lib/python3.12/pickle.py", line 1205, in load 2024-10-01T14:10:25.652163656Z dispatch[key[0]](self) 2024-10-01T14:10:25.652168056Z ~~~~~~~~^^^^^^^^ 2024-10-01T14:10:25.652172557Z KeyError: 118 2024-10-01T14:10:25.652176957Z [2024-10-01 14:10:25 +0000] [95] [INFO] Worker exiting (pid: 95) 2024-10-01T14:10:27.664242936Z [2024-10-01 14:10:27 +0000] [87] [ERROR] Worker (pid:95) exited with code 3 2024-10-01T14:10:27.664777951Z [2024-10-01 14:10:27 +0000] [87] [ERROR] Shutting down: Master 2024-10-01T14:10:27.664806952Z [2024-10-01 14:10:27 +0000] [87] [ERROR] Reason: Worker failed to boot./home/LogFiles/2024_10_01_lw0ldlwk0003P0_docker.log 2024-10-01T14:08:54.561Z INFO - docker run -d --expose=8000 --name esraafactory_0_bc140daf -e WEBSITE_USE_DIAGNOSTIC_SERVER=false -e WEBSITE_SITE_NAME=EsraaFactory -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=esraafactory-e3dugrg8cqfsdsbj.westeurope-01.azurewebsites.net -e WEBSITE_INSTANCE_ID=59be3e435403af8aafd67963991260c0f723c0cdf77e39cf7540425bb7018979 appsvc/python:3.12_20240619.2.tuxprod 2024-10-01T14:08:54.561Z INFO - Logging is not enabled for this container.Please use linux-diagnostics to enable logging to see container logs here. 2024-10-01T14:08:55.343Z INFO - Initiating warmup request to container esraafactory_0_bc140daf for site esraafactory 2024-10-01T14:09:25.913Z INFO - Waiting for response to warmup request for container esraafactory_0_bc140daf. Elapsed time = 30.5700783 sec 2024-10-01T14:09:41.084Z INFO - Waiting for response to warmup request for container esraafactory_0_bc140daf. Elapsed time = 45.7410913 sec 2024-10-01T14:09:56.272Z INFO - Waiting for response to warmup request for container esraafactory_0_bc140daf. Elapsed time = 60.9289723 sec 2024-10-01T14:10:28.298Z ERROR - Container esraafactory_0_bc140daf for site esraafactory has exited, failing site start 2024-10-01T14:10:28.305Z ERROR - Container esraafactory_0_bc140daf didn't respond to HTTP pings on port: 8000, failing site start. See container logs for debugging. 2024-10-01T14:10:28.310Z INFO - Stopping site esraafactory because it failed during startup./home/LogFiles/AppServiceAppLogs_Feature_Installer/startup_0.log 2024-09-30 21:19:37,159 [MainThread] [DEBUG] : Initialized AppServiceAppLogging 2024-09-30 21:23:06,855 [MainThread] [DEBUG] : Initializating AppServiceAppLogging 2024-09-30 21:23:06,856 [Thread-1 (] [DEBUG] : Did not find any previously bound socket 2024-09-30 21:23:06,856 [MainThread] [DEBUG] : Initialized AppServiceAppLogging 2024-10-01 13:45:13,324 [MainThread] [DEBUG] : Initializating AppServiceAppLogging 2024-10-01 13:45:13,348 [Thread-1 (] [DEBUG] : Did not find any previously bound socket 2024-10-01 13:45:13,348 [MainThread] [DEBUG] : Initialized AppServiceAppLogging 2024-10-01 14:09:56,887 [MainThread] [DEBUG] : Initializating AppServiceAppLogging 2024-10-01 14:09:56,888 [Thread-1 (] [DEBUG] : Did not find any previously bound socket
需求
希望Azure Web App域名能正常访问Flask应用,如同本地环境一样。503错误表明应用服务响应异常,但无法从现有日志中定位问题,恳请提供排查建议。
内容的提问来源于stack exchange,提问作者Lara Mamdouh
相关产品推荐
相关产品推荐

