函数计算,API网关调试FC http触发,报-客户端主动取消请求,这个是什么原因?
在阿里云函数计算中,当API网关调试FC HTTP触发时,如果出现“客户端主动取消请求”错误,可能是因为以下几个原因:
客户端断开连接,报错Invocation canceled by client怎么办?
https://help.aliyun.com/zh/fc/support/how-to-handle-the-invocation-canceled-by-client-error?spm=a2c4g.435270.0.i10
可能原因
发起调用的客户端主动取消了请求,导致函数执行异常中断,函数执行报错。
解决方案
排查步骤如下所示。
根据报错日志,确认客户端主动取消请求时,函数已执行的时间。
本文示例中,duration: 4912ms表示函数运行接近5s。
根据业务情况判断该运行时间是否符合预期。
如果符合预期,则需要增加客户端超时时间。具体操作,请参见函数执行时间符合预期。
如果不符合预期,则需要根据日志排查函数的运行链路,确认具体是哪部分逻辑导致执行时间增加。具体操作,请参见函数执行时间不符合预期。
函数执行时间符合预期
如果您通过SDK/API调用函数,建议将请求的超时时间设置为大于函数配置的超时时间。
例如,使用Golang语言和函数计算API调用函数,可以通过http.Client中的Timeout属性设置请求超时时间。如果在发起请求时使用了context.Context,可以调整Context的截止时间或超时时间。
如果您通过其他服务调用函数,可以在该服务的控制台修改后端超时时间。
例如,前端通过API网关调用函数,可以在API网关控制台修改API的后端超时配置。具体操作,请参见创建 API。
如果您通过控制台调用函数,请勿在函数未执行完成前单击取消请求手动取消或关闭网页。
函数执行时间不符合预期
程序执行的耗时一般包括以下两类。
I/O操作
I/O操作,尤其网络的I/O,是执行延时增大的主要原因。建议排查程序中所有访问外部服务的操作,可以在访问外部服务前后添加日志,确认耗时是否正常。
计算操作
大量的计算操作也可能导致延时增加,建议调大CPU规格。
"客户端主动取消请求" 是指客户端在发送请求后,主动关闭连接或者取消了请求。客户端的代码逻辑可能存在错误,在发送请求后,可能由于某些条件或者逻辑判断而导致请求被取消。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。