该错误码为访问目标服务超时。
云函数运行的超时时间最大为10s,超过这个时间会被终止。
发生该错误,到开发者控制台链路分析查看函数执行过程中的超时节点和错误节点。一般函数超时,函数日志会返回执行时间为10秒,具体在哪个节点超时,需要到链路明细中查看。
云函数超时日志详情
内部调用HTTP外联超时返回日志详情
错误产生的可能原因:
1)数据库调用耗时过长:数据库未建索引或者查询条件缺失,导致全表扫描;
2)外联调用耗时过长:
远程服务调用超时(错误信息一般为java.util.concurrent.TimeoutException: Request timeout);
被防火墙拦截、与服务器连接超时(错误信息一般为java.net.ConnectException: connection timed out)。
云应用调用默认超时时间为3s,最大超时时间为10s,超过云应用调用所设置的超时时间,会报访问目标服务器超时。
参见云应用调用文档,可以先试着调大云应用的超时时间。
在开发者控制台日志分析处查看具体错误信息。
发生该类错误,需要查看容器是否正常启动,流量接入是否正常。详情参见应用发布部署文档。
1)云应用基础监控指标,比如cpu 内存,云应用实例是否正常(比如可能因为jvm oom一直在重启,比如cpu内存水位负载是否高)。
2)slb控制台监控,比如流量以及rt的异常变动、slb监听是否正常等。详细参见slb及流量接入常见问题。
负载均衡的云监控数据,如连接数、数据包数和流量等各项指标详细说明请参见:点击访问。
确定下是不是云应用访问超时:
1)远程登录到云应用容器,curl localhost:容器启动端口/xxx,测试容器本身是否可以访问;
如果容器无法访问,请自行排查应用问题;
2)容器内curl slb的ip:slb监听端口/xxx,测试流量接入的slb是否可以正常访问。
问题产生原因:
① 远程服务超时;
② 数据库有慢sql。
问题产生原因:
① 被防火墙拦截;
② 后端服务器accept队列满,导致后端服务器不回复syn_ack报文,客户端超时。