云函数 死信队列 - 开发指南
VIEW CONTENTS
摘要: 操作场景死信队列DLQ是一个用户账号下的消息队列,可用于收集错误事件信息、分析失败原因。如果您为函数配置了死信队列,以下情形的事件会被发送到死信队列:用户代码运行错误重试2次依然失败。超限错误和系统错 ...
点击领取2000元阿里云代金券,付款抵现金用,云服务器69元/年限时抢>>>    点击咨询成为阿里云VIP客户享永久折扣>>>
点击领取2860元腾讯云代金券,付款抵现金用云服务器88元/年限时抢>>>    点击成为腾讯云VIP客户享永久折扣优惠>>>
点击进入华为云最新优惠活动现场>>>    点击成为华为云VIP客户享永久折扣优惠>>>

操作场景

死信队列 DLQ 是一个用户账号下的消息队列,可用于收集错误事件信息、分析失败原因。如果您为函数配置了死信队列,以下情形的事件会被发送到死信队列:

  • 用户代码运行错误重试2次依然失败。
  • 超限错误和系统错误重试超过24小时。
  • 异步队列 消息堆积达到上限。
说明

死信队列功能目前处于内测阶段,如需使用请 提交工单 申请开通消息队列 CMQ。

死信队列消息属性

  • RequestId:(字符串)事件调用请求的唯一标识
  • ErrorCode:(数字)错误码状态
  • ErrorMessage:(字符串)错误信息

死信队列投递至消息队列 CMQ 时会把属性信息与事件信息封装在一个 JSON 请求体中,格式如下:

{
 "RequestId": "b615b896-d197-47d7-8919-xxx",
 "ErrorCode": -1,
 "ErrorMessage": "Traceback (most recent call last):\n File \"/var/user/index.py\", line 5, in main_handler\n if 'key1' in event.keys():\nNameError: global name 'event' is not defined",
 "Body": {
   "AppId": xxx,
   "Uin": "xxx",
   "SubAccountUin": "xxx",
   "RequestSource": "TRIGGER_TIMER",
   "FunctionName": "tabortest",
   "Namespace": "default",
   "Qualifier": "$DEFAULT",
   "InvocationType": "RequestResponse",
   "ClientContext": "{\"Type\":\"Timer\",\"TriggerName\":\"tabortimer\",\"Time\":\"2020-10-10T01:22:00Z\",\"Message\":\"\"}",
   "LogType": "",
   "TimeStampForInvoker": "160229310xxx",
   "RequestId": "b615b896-d197-47d7-8919-xxx",
   "PushTime": "2020-10-10T09:22:00.061824591+08:00",
   "RetryNum": 2,
   "Ttl": 0
 }
}
结构名 内容
AppId APPID。
Uin 主账号 ID。
SubAccountUin 创建者的子账号 ID(此字段可能返回 null,表示取不到有效值)。
RequestSource 触发器请求来源。
FunctionName 函数名称。
Namespace 命名空间。
Qualifier 触发函数的版本/别名。
ClientContext 运行函数时的参数,以 JSON 格式传入,最大支持的参数长度请参见 配额限制。
TimeStampForInvoker 调用函数时的毫秒级时间戳。
RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
PushTime 推送至消息队列的时间信息。
RetryNum 重试次数(0 - 2)。
Ttl 异步队列事件保留时长。

操作步骤

死信队列创建

说明:

云函数目前支持消息队列 CMQ 的主题模式和队列模式作为死信队列,您可自行选择配置。
函数别名的死信队列会跟随主版本的死信队列,主版本死信队列即在控制台创建别名时第一个选择并配置的死信队列。

  1. 登录 CMQ 消息队列控制台,创建您的死信队列。
    CMQ 的主题模式支持标签过滤与路由匹配两种筛选方案,为了确保您的订阅者可以收到所有错误信息,请在添加订阅者时标签栏筛选设为,BindingKey 筛选填“#”
  2. 登录 云函数控制台,创建您的函数。
  3. 配置死信队列。
    您可以在“新建函数”页面或“函数配置”页面进行死信队列的配置。

死信队列监控

使用死信队列时,权限错误、资源误配或消息的总大小超过目标队列或主题的限制大小均会导致死信投递失败。您可在云函数监控信息中查询“死信队列投递失败次数/次”。

  1. 登录 云函数控制台,选择左侧导航栏中的【函数服务】。
  2. 在主界面上方选择期望查看死信队列监控的函数所在地域,并单击列表页中期望查看监控的函数,进入函数详情页面。
  3. 在函数详情页中,单击【监控信息】即可查看死信队列投递失败次数。如下图所示:

路过

雷人

握手

鲜花

鸡蛋

相关阅读

2021-10-13 21:02| 发布者: xtyly| 查看: 72| 评论: 0



在线客服(工作时间:9:00-22:00)
400-600-6565

内容导航

微信客服

Copyright   ©2015-2019  云服务器社区  Powered by©Discuz!  技术支持:尊托网络     ( 湘ICP备15009499号-1 )