Azure Blob存储触发器函数部署后异常停止触发,仅重启或打开页面时恢复
业务背景
- 开发了一款Blob存储触发类型的Azure Function,核心流程为:Blob存储新增文件时自动触发,读取上传的JSON内容并将信息写入数据库
- 本地运行阶段功能正常,初始上线阶段也符合业务预期
- 近期检查发现函数未触发、数据未正常写入数据库,但函数应用控制台显示状态为“运行中”
- 临时恢复规律:重启应用、或在浏览器端打开Azure Functions详情页面后,函数可恢复数小时正常运行,数小时后又会自动停止触发
- 当前函数配置:运行时版本3.0.15571.0,计费模式为Consumption消费计划,已接入Application Insights完成应用监控
- 目前对Azure Functions平台的使用经验较少,整理现有排查信息供问题定位参考
已完成排查及发现
Application Insights监控排查结果
- 拉取近3天的请求记录:函数仅在昨日手动排查的时段有大量触发记录,该时段为补拉所有未处理历史文件产生的请求
- 最后一条请求记录停留在昨日补数时段,后续无任何新的触发请求日志
- 排查过程留存两张界面快照:分别展示排查时段的请求量分布、最后请求的时间查询结果
Kudu日志排查结果
收集到的运行日志包含三类内容:
- 代码开发阶段预设写入的正常执行日志
- 系统层面记录的触发、执行日志,摘选片段如下:
2021-04-26T17:50:23.377 [Information] Executing 'FunctionSaveOnBDD' (Reason='New blob detected: containerforiotcentral/c618a003-9934-4b25-a674-cd709b6afb07/4/2021/03/27/11/22/vliwcspeyze7a', Id=34a100dc-135f-41ed-ba7b-209d85f28b63) 2021-04-26T17:50:23.377 [Information] Trigger Details: MessageId: 0113b888-75f7-4cb8-b9cd-562255e34c56, DequeueCount: 1, InsertionTime: 2021-04-26T17:39:03.000+00:00, BlobCreated: 2021-03-27T11:23:53.000+00:00, BlobLastModified: 2021-03-27T11:23:53.000+00:00 2021-04-26T17:50:23.378 [Information] Executing 'FunctionSaveOnBDD' (Reason='New blob detected: containerforiotcentral/c618a003-9934-4b25-a674-cd709b6afb07/4/2021/03/27/11/21/vliwcspeyze7a', Id=5e7ee513-346d-45d4-a8a4-b2f981ed470a) 2021-04-26T17:50:23.378 [Information] Trigger Details: MessageId: 7525894a-ba7c-47b9-802a-54faa60a603a, DequeueCount: 1, InsertionTime: 2021-04-26T17:39:03.000+00:00, BlobCreated: 2021-03-27T11:22:53.000+00:00, BlobLastModified: 2021-03-27T11:22:53.000+00:00 2021-04-26T17:50:23.378 [Information] Executing 'FunctionSaveOnBDD' (Reason='New blob detected: containerforiotcentral/c618a003-9934-4b25-a674-cd709b6afb07/4/2021/03/27/11/23/vliwcspeyze7a', Id=e3d0ca32-2d07-4b18-8bb9-4edda7de68b5) 2021-04-26T17:50:23.378 [Information] Trigger Details: MessageId: b8bbd557-9710-4cea-81f7-7a243aa96111, DequeueCount: 1, InsertionTime: 2021-04-26T17:39:03.000+00:00, BlobCreated: 2021-03-27T11:24:53.000+00:00, BlobLastModified: 2021-03-27T11:24:53.000+00:00 2021-04-26T17:50:23.379 [Information] Executed 'FunctionSaveOnBDD' (Succeeded, Id=704c2ace-9688-40da-8aa7-a19190ece7c1, Duration=702ms) 2021-04-26T17:50:23.399 [Information] C# Blob trigger function Processed blob Name:c618a003-9934-4b25-a674-cd709b6afb07/4/2021/03/27/11/04/vliwcspeyze7a Content: telemetry
- 本地测试阶段未复现的SQL执行异常日志,摘选片段如下:
2021-04-26T17:50:23.270 [Information] Microsoft.Data.SqlClient.SqlException (0x80131904): Transaction (Process ID 66) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, Boolean& dataReady) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean isAsync, Int32 timeout, Boolean asyncWrite) at Microsoft.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry, String methodName) at Microsoft.Data.SqlClient.SqlCommand.ExecuteNonQuery() at AzureFunctionBlobTrigger0103DEF.BlobTriggersaveonBDD.Run(Stream myBlob, String name, ILogger log) in C:\Users\Tere\source\repos\AzureFunctionBlobTrigger0103DEF\BlobTriggersaveonBDD.cs:line 52 ClientConnectionId:f46c83df-9566-4af9-866e-12728d39b646 Error Number:1205,State:18,Class:13 ClientConnectionId before routing:3f74ce3e-43a1-4c9c-8ddb-8e9c9d8610a9 Routing Destination:af4408adfd33.tr16.westeurope1-a.worker.database.windows.net,11040
内容的提问来源于stack exchange,提问作者Teresa Rey Alonso
相关产品推荐
相关产品推荐

