在函数调用的过程中,可能有多种原因导致函数调用失败。不同的错误类型以及调用方式(同步调用、异步调用)都会影响重试策略。您可以配置 死信队列 收集错误事件信息、分析失败原因。
在函数调用的过程中,可能有多种原因导致函数调用失败。错误类型分为以下几类:
调用错误发生在函数实际执行前。以下情形均会产生调用错误:
运行错误发生在函数实际运行中。运行错误有以下情形:
函数平台的错误,例如 internal error。
不同错误类型以及调用方式(同步调用、异步调用)都会影响重试策略。
同步调用包含 云 API 触发器 的同步调用、API 网关触发器 及 CKafka 触发器。
由于同步调用的过程中,错误信息会直接返回给用户,所以在同步调用中发生错误时,平台不会自动重试,重试策略(是否重试、重试几次)均由调用方决定。
注意:Ckafka 触发器会创建后台模块作为消费者,连接 CKafka 实例并消费消息。后台模块在获取到消息后,同步调用触发函数。由于 CKafka 触发器的后台模块是由云函数侧维护,即使是同步调用,其重试策略仍由云函数侧控制。
- 对于运行错误(含用户代码错误和 Runtime 错误),CKafka 触发器会按照您配置的重试次数进行重试。默认重试10000次。
- 对于超限错误和系统错误,CKafka 触发器会采用指数退避的方式持续重试,直至成功为止。
异步调用包含 云 API 触发器 的异步调用、COS 触发器、定时触发器 及 CMQ Topic 触发器 等,具体触发器调用类型请参考相关触发器说明文档。
您可以根据业务诉求在函数配置中修改和自定义默认的【重试次数】,【最长等待时间】配置,该配置只适用于异步调用场景。
异步调用发生各种错误类型的重试策略:
错误类型 | 重试策略 |
---|---|
运行错误 (用户代码运行错误和 Runtime 错误) |
当发生该类错误时,函数平台将默认重试两次或使用配置的重试次数,固定间隔1分钟。在自动重试的同时,新的触发事件仍可正常处理。如果您配置了死信队列,三次失败后的事件将传入死信队列,否则事件将被函数平台丢弃。 |
系统错误 | 当发生该类错误时,函数平台会根据您配置的最长等待时间持续重试(默认持续重试6小时),重试间隔按照指数退避增加到5分钟。如果您配置了死信队列,重试超过最长等待时间仍失败的事件会被发送到死信队列,您可进一步处理,否则事件将被函数平台丢弃。 |
超限错误 | 当发生该类错误时,函数平台会根据您配置的最长等待时间持续重试(默认持续重试6小时),重试间隔为1分钟。如果您配置了死信队列,重试超过最长等待时间仍失败的事件会被发送到死信队列,您可进一步处理,否则事件将被函数平台丢弃。 |
调用请求错误和调用方错误 | 当发生该类错误时,除了超限错误,平台将不会对该类其他错误进行重试,原因为其他请求错误即便重试也不会成功。 |
日本京都动画公司第一工作室于18日发生纵火案,造成35人死亡。这一被粉丝昵称为...
登录云服务器的用户名和密码: Windows操作系统用户名:Administrator Linux操作...
小型网站如何进行服务器租用 随着互联网技术的快速发展,也带动了一大批中小型企...
ALIYUN::DBS::RestoreTask类型用于创建数据库备份DBS(Database Backup)恢复任...
讲师 徐希杰--阿里巴巴技术专家 视频地址 https://developer.aliyun.com/live/24...
托管服务器如何测试网速 网站作为一个宣传企业产品的重要平台,在企业运行过程中...
您可以通过编写Ansible playbook,使用ali_ros_stack模块自动完成资源栈的删除。...
如今,一个企业有自己的网站已随处可见,而随着网站的不断发展,企业业务也越做...
前言 工欲善其事,必先利其器。 所以说今天来看一看如何压榨 IDEA ,让你的 IDEA...
用过独立 服务器租用 的客户都知道独立服务器的价格比 VPS主机 高出很多,很多客...