Azure Function Blob触发器失效及部署报错排查求助
Azure Functions Python应用:Blob触发器失效、部署Oryx错误及旧应用无响应问题
背景信息
2-3年前使用Python 3.9开发了一个Azure Function App,通过Visual Studio Code部署,包含2个Blob触发器和1个HTTP触发器,初始运行正常,上传文件至指定容器时可触发。
近期需修改函数时发现:
- 旧函数应用完全无响应:即使向指定容器上传新文件,Blob触发器也未触发
- 函数应用监控板块近30天无任何日志,HTTP触发器调用也无日志记录
- 排查后确认旧应用已数月未运行(函数应用与关联存储账户分属不同资源组)
新部署遇到的问题
为恢复功能,尝试通过Visual Studio Code将旧v1格式源码部署至新建函数应用:
- 首次部署成功,但上传文件至容器后Blob触发器仍未触发
- 第二次部署时出现Oryx相关错误(对应报错信息见本地截图),函数应用日志流中可看到对应报错记录(对应日志见截图)
- 尝试将源码重新部署至旧函数应用时,同样出现另一类Oryx错误
已确认的配置文件
host.json
{ "version": "2.0", "logging": { "applicationInsights": { "samplingSettings": { "isEnabled": true, "excludedTypes": "Request" } } }, "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle", "version": "[2.*, 3.0.0)" } }
.vscode/settings.json
{ "azureFunctions.deploySubpath": ".", "azureFunctions.scmDoBuildDuringDeployment": true, "azureFunctions.pythonVenv": ".venv", "azureFunctions.projectLanguage": "Python", "azureFunctions.projectRuntime": "~4", "debug.internalConsoleOptions": "neverOpen" }
.vscode/tasks.json
{ "version": "2.0.0", "tasks": [ { "type": "func", "command": "host start", "problemMatcher": "$func-python-watch", "isBackground": true, "dependsOn": "pip install (functions)" }, { "label": "pip install (functions)", "type": "shell", "osx": { "command": "${config:azureFunctions.pythonVenv}/bin/python -m pip install -r requirements.txt" }, "windows": { "command": "${config:azureFunctions.pythonVenv}\\Scripts\\python -m pip install -r requirements.txt" }, "linux": { "command": "${config:azureFunctions.pythonVenv}/bin/python -m pip install -r requirements.txt" }, "problemMatcher": [] } ] }
.vscode/launch.json
{ "version": "0.2.0", "configurations": [ { "name": "Attach to Python Functions", "type": "python", "request": "attach", "port": 9091, "preLaunchTask": "func: host start" } ] }
.vscode/extensions.json
{ "recommendations": [ "ms-azuretools.vscode-azurefunctions", "ms-python.python" ] }
已执行的排查步骤
- 确认部署时配置的存储账户连接字符串正确无误
- 尝试切换部署目标(新建函数应用/旧函数应用),均未解决问题
预期目标
成功部署函数应用,确保Blob触发器在文件上传至指定容器时能够正常激活,同时HTTP触发器可正常响应并生成日志。
内容的提问来源于stack exchange,提问作者ravina dable
相关产品推荐
相关产品推荐

