You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需Azure Portal查看Azure Function执行日志的可行性问询

解决方案总览

完全可行,既支持类实时的日志流查看,也支持历史日志导出/查询,仅需要你所持有的service principal被分配目标Function应用对应的Monitoring Reader角色即可,无需Portal访问权限,符合安全管控要求。

操作步骤

1. 先使用service principal登录Azure CLI

执行以下命令完成身份认证:

az login --service-principal -u <Service Principal客户端ID> -p <Service Principal客户端密钥> --tenant <Azure租户ID>

登录成功后会输出订阅列表,确认目标订阅处于激活状态,否则执行az account set --subscription <目标订阅ID>切换订阅。

2. 类实时日志流查看(和Portal日志流效果一致)

执行以下命令即可获取近实时的应用执行日志,延迟通常在1-3秒:

az webapp log tail --name <Azure Functions应用名称> --resource-group <应用所属资源组名称>

可选扩展参数:

  • 仅筛选指定级别日志:追加--level error warning,支持的级别包括verbose、information、warning、error
  • 同时保存日志到本地文件:追加--file ./func_logs.txt

3. 非实时历史日志获取

方式1:直接导出全量日志包(无需依赖其他服务)

执行命令直接下载最近所有应用日志的压缩包,解压后即可查看主机日志、函数执行日志、请求日志等所有历史记录:

az webapp log download --name <Azure Functions应用名称> --resource-group <应用所属资源组名称> --log-file ./func_history_logs.zip

方式2:Application Insights日志查询(若应用绑定了App Insights,支持灵活筛选)

可直接通过CLI执行KQL查询自定义维度的日志,例如查询最近24小时内所有错误级别的日志:

az monitor app-insights query --app <绑定的Application Insights资源名称> --resource-group <资源组名称> --analytics-query 'traces | where severityLevel >= 2 | where timestamp > ago(24h) | project timestamp, message, operation_Name, customDimensions' --offset 24h
常见问题说明
  • 若执行日志相关命令提示权限不足,联系客户管理员为你的service principal在目标Function应用/所属资源组范围分配Monitoring Reader角色即可,该角色仅具备监控数据读取权限,无资源编辑权限,符合安全要求。
  • 若az webapp log tail无日志输出,可确认应用是否开启了文件系统日志记录,如需开启可执行az webapp log config --name <Function应用名称> --resource-group <资源组名称> --application-logging filesystem --level information,该操作需要Web Contributor权限,若客户不允许修改配置,可直接使用日志导出或App Insights查询方式获取日志。

内容的提问来源于stack exchange,提问作者MrMuppet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:57:05