部署Dynatrace日志转发包至Azure Function成功但无法运行求助
排查Azure Function部署Dynatrace日志转发包后无功能响应问题
针对你遇到的部署成功但日志转发功能未生效的问题,可按以下步骤逐一排查:
检查依赖安装状态
虽然SCM_DO_BUILD_DURING_DEPLOYMENT已设为true,但需确认部署过程中Python依赖是否正确安装:- 登录Azure Portal,进入目标Function App的部署中心,查看部署日志,确认是否有
pip install相关的报错(如依赖包缺失、版本冲突) - 也可通过Azure CLI命令拉取部署日志:
az webapp log deployment list --resource-group "${{ parameters.resourceGroup }}" --name "logforwarder-dev"
同时需确保下载的
log-forwarder.zip根目录包含requirements.txt,且文件内列出了所有必要依赖项。- 登录Azure Portal,进入目标Function App的部署中心,查看部署日志,确认是否有
验证Function触发与配置
由于是Event Hub日志转发,需确认:- Function的触发配置(
function.json)是否正确,触发类型应为eventHubTrigger,且指定了正确的Event Hub名称、连接字符串配置项 - Azure Function的应用设置中,已配置好Event Hub的连接字符串、Dynatrace的相关认证信息(如API令牌、环境URL),且配置项名称与代码中的引用一致
- Function的触发配置(
查看运行时错误日志
通过实时日志排查Python运行时的异常:- 使用Azure CLI命令查看实时日志:
az functionapp log tail --resource-group "${{ parameters.resourceGroup }}" --name "logforwarder-dev" - 或在Azure Portal的监控 > 日志中,查询Function的执行日志,重点关注是否有模块导入失败、权限不足、配置未找到等报错信息
- 使用Azure CLI命令查看实时日志:
确认部署包结构合规
Python Azure Function要求特定目录结构:- 单个Function的情况下,
function.json需放在根目录或一级子目录下 - 根目录需包含
requirements.txt
解压下载的log-forwarder.zip,检查是否符合上述结构,避免出现多层嵌套文件夹导致平台无法识别Function入口
- 单个Function的情况下,
修复
az functionapp deployment命令的配置覆盖问题
若需使用az functionapp deployment命令部署,可在部署脚本末尾添加配置恢复步骤,避免SCM_DO_BUILD_DURING_DEPLOYMENT被设为false:az functionapp deployment source config-zip ` --resource-group "${{ parameters.resourceGroup }}" ` --name "logforwarder-dev" ` --src "log-forwarder.zip" # 恢复构建配置 az functionapp config appsettings set ` --resource-group "${{ parameters.resourceGroup }}" ` --name "logforwarder-dev" ` --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
内容的提问来源于stack exchange,提问作者Andries
相关产品推荐
相关产品推荐

