基于Docker的Python v2函数应用报错:WorkerConfig for runtime: python not found
排查与修复基于Docker的Python v2 Azure函数部署问题
1. 先搞定核心错误「WorkerConfig for runtime: python not found」
这个错误是导致部署失败、触发器不显示的根源,优先排查以下几点:
- 必须用官方Azure Functions Python镜像:Dockerfile基础镜像不能随便选,直接用
mcr.microsoft.com/azure-functions/python:4-python3.10(替换成你本地用的Python版本,比如3.9/3.11),这类镜像预装了Python运行时和Azure Functions Worker,不会缺配置。 - 强制设置环境变量:Dockerfile里必须加这几行,确保Worker能识别Python运行时:
ENV AzureWebJobsScriptRoot=/home/site/wwwroot ENV FUNCTIONS_WORKER_RUNTIME=python ENV FUNCTIONS_EXTENSION_VERSION=~4 - 确认代码路径正确:Dockerfile的COPY命令要把所有函数文件(
function_app.py、requirements.txt等)复制到/home/site/wwwroot目录,比如:COPY requirements.txt /home/site/wwwroot/ RUN pip install --no-cache-dir -r /home/site/wwwroot/requirements.txt COPY . /home/site/wwwroot/
2. 验证Python v2触发器写法(别用v1的老语法)
Python v2的触发器注册方式和v1完全不同,写错了门户就识别不出来:
- 定时器触发器正确示例:
import azure.functions as func import logging app = func.FunctionApp() @app.timer_trigger(schedule="0 */5 * * * *", arg_name="myTimer", run_on_startup=True) def timer_trigger(myTimer: func.TimerRequest) -> None: if myTimer.past_due: logging.info('定时器已超时') logging.info('Python定时器触发器执行成功') - HTTP触发器正确示例:
@app.route(route="http_trigger", auth_level=func.AuthLevel.ANONYMOUS) def http_trigger(req: func.HttpRequest) -> func.HttpResponse: logging.info('Python HTTP触发器处理请求') return func.HttpResponse("HTTP触发器响应内容")
所有触发器必须注册到func.FunctionApp()实例上,不能有语法错误。
3. 核对Azure门户与本地配置
- 本地
local.settings.json里必须包含:{ "IsEncrypted": false, "Values": { "FUNCTIONS_WORKER_RUNTIME": "python", "FUNCTIONS_EXTENSION_VERSION": "~4", "AzureWebJobsStorage": "你的存储账户连接字符串" } } - 部署到Azure后,去门户「配置」→「应用程序设置」确认:
FUNCTIONS_WORKER_RUNTIME值为pythonFUNCTIONS_EXTENSION_VERSION值为~4- 容器设置里的镜像路径、标签要和本地构建的一致,启动命令留空(官方镜像自带启动逻辑)
4. 本地预验证避免重复部署踩坑
- 先在本地用
func start测试,看终端输出里有没有加载触发器的日志,确保无语法错误 - 本地构建Docker镜像并运行,验证功能:
docker build -t my-python-func . docker run -p 8080:80 -e AzureWebJobsStorage="你的连接字符串" my-python-func
访问http://localhost:8080/api/http_trigger看是否返回响应,同时查看容器日志确认定时器触发器是否正常启动
内容的提问来源于stack exchange,提问作者Vaishnavi Vaishu
相关产品推荐
相关产品推荐

