求助:排查Azure Blob存储数据源,上月未上传CSV至Azure SQL数据库
排查Azure Blob存储数据源的方法
1. 分析Blob存储访问日志
- 启用并查看存储账户的诊断日志,聚焦
PutBlob这类写入操作的记录,日志里会包含请求的源IP、发起者身份(Azure AD账户、SAS令牌、存储密钥等),能直接定位数据上传的发起方。 - 可通过Azure门户的「存储账户 -> 监控 -> 日志」查询,或用Azure CLI导出日志分析:
az monitor log-analytics query --workspace-id <你的工作区ID> --analytics-query "StorageBlobLogs | where OperationNameValue == 'PutBlob' and TimeGenerated between (datetime('上月起始日期') .. datetime('上月结束日期')) | project ClientIpAddress, Identity, ContainerName, BlobName"
2. 检查存储账户IAM权限
- 查看存储账户的IAM角色分配,找出拥有Blob数据贡献者「存储账户参与者」等写入权限的用户、服务主体,这类实体是最可能的数据源发起者。
- 重点排查自动化服务主体(比如Azure Function、Logic Apps、自动化账户),因为定期数据上传通常由这类服务触发。
3. 关联Azure服务排查
- 检查是否有Azure Logic Apps、Data Factory、Functions等服务配置了向该Blob存储写入的任务:
- Logic Apps:查看带 recurrence 触发器的流程,确认是否包含上传Blob的动作;
- Data Factory:检查管道中的Copy活动,目标是否指向该Blob存储容器;
- Functions:查看函数代码中的Blob写入逻辑,以及触发器的定时配置。
4. 排查外部/本地系统
- 如果数据源是本地应用或第三方系统,检查相关配置文件中是否有该Blob存储的SAS令牌或密钥,同时确认是否存在定时任务(Windows任务计划、Linux cron)负责CSV上传。
- 结合日志中的源IP,反向定位该IP对应的设备或系统。
5. 验证Blob容器生命周期规则
- 确认是否有生命周期规则自动删除了上月上传的Blob,导致误判为无数据上传。可在「存储账户 -> 数据管理 -> 生命周期管理」中查看规则配置。
内容的提问来源于stack exchange,提问作者Anirudh Mounasamy
相关产品推荐
相关产品推荐

