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

如何将特定Azure Functions调用追踪保存至文件并自动清理

可以实现,具体方案如下

1. 解决「只能看最近20条」的问题,获取全量调用追踪数据

Azure Functions门户默认仅展示20条调用记录,但全量追踪数据会存储在Azure Monitor日志中(前提是你已开启Application Insights或日志工作区集成)。你可以通过两种方式导出数据并生成独立文件:

方式一:定时Azure Function批量导出

写一个带TimerTrigger的定时函数(比如每小时运行一次),用Kusto查询从Azure Monitor拉取指定Function的所有调用详情,每条调用生成一个独立文件:

  • 核心Kusto查询示例(按需调整字段):
    traces
    | where CloudRoleName == "你的Function应用名称"
    | where OperationName == "FunctionInvocation"
    | project 调用时间=Timestamp, 调用ID=OperationId, 函数名=Name, 执行状态=Status, 耗时(毫秒)=DurationMs, 日志内容=Message, 附加属性=Properties
    
  • 遍历查询结果,将每条调用的详情序列化为JSON(或你需要的格式),上传到Azure Blob存储,文件命名可用invocation-{调用ID}.json保证唯一性。

方式二:Azure Monitor连续导出

在日志工作区配置「连续导出」,将筛选后的Function调用日志直接导出到Blob存储。这种方式会生成批量文件,若需要每条调用一个独立文件,可再加一个触发式Function,监听Blob存储的批量文件并拆分生成单个调用文件。

2. 配置自动清理,仅保留最近3天的记录

利用Azure Blob存储的原生功能实现自动清理,无需自行编写逻辑:

  • 进入Blob存储账户的「生命周期管理」页面,添加新规则
  • 规则范围选择存放调用记录的容器,设置「删除」动作,触发条件为「创建时间超过3天」
  • 保存规则后,Azure会定期自动清理超过3天的旧文件

注意事项

  • 确保你的Azure Functions已集成Application Insights或日志工作区,否则无法获取全量调用追踪数据
  • 日志工作区默认数据保留时间为30天,若需保留更久的原始数据可调整时长,但生命周期规则仅清理你导出到Blob的文件
  • 生成文件时,需确保包含你需要的所有调用详情字段(如调用ID、时间、状态、日志、耗时等),对应你附图中的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 05:55:15