上云无忧 > 文档中心 > 腾讯云云函数使用教程 - 死信队列
云函数 SCF
腾讯云云函数使用教程 - 死信队列

文档简介:
操作场景: 死信队列 DLQ 是一个用户账号下的消息队列,可用于收集错误事件信息、分析失败原因。如果您为函数配置了死信队列,以下情形的事件会被发送到死信队列: 用户代码运行错误重试2次依然失败。 超限错误和系统错误重试超过24小时。 异步队列 消息堆积达到上限。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

操作场景

死信队列 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. 登录 Serverless 控制台,创建您的函数。
3. 配置死信队列。 您可以在“新建函数”页面或“函数配置”页面进行死信队列的配置。

死信队列监控

使用死信队列时,权限错误、资源误配或消息的总大小超过目标队列或主题的限制大小均会导致死信投递失败。您可在云函数监控信息中查询“死信队列投递失败次数/次”。
1. 登录 Serverless 控制台,选择左侧导航栏中的函数服务
2. 在主界面上方选择期望查看死信队列监控的函数所在地域,并单击列表页中期望查看监控的函数,进入函数详情页面。
3. 在函数详情页中,单击监控信息即可查看死信队列投递失败次数。
相似文档
  • 简介: 随着敏捷和 DevOps 的流行,CI/CD 已经成了所有开发者在开发过程中必不可少的最佳实践,主要目标是以更快的速度、更短的周期向用户交付行之有效的软件。
  • 对于函数运行后抛出的错误信息,您可以检索错误内容找到对应的问题产生原因和解决方案。
  • 常见错误码解决方法如下表所示: InvalidParameter.FunctionName: FunctionName 取值与规范不符,请参见 API 文档 修正后重试。 InvalidParameterValue.Action: 所请求的 API 不存在,请参见 API 文档 修正后重试。
  • 概述: Serverless Web IDE 是腾讯云 Serverless 和 CODING 基于浏览器的集成式开发环境 CloudStudio 深度合作推出的云函数在线开发 IDE,提供接近原生 IDE 的云端开发体验。
  • 概述: Serverless Cloud Framework 是业界非常受欢迎的无服务器应用框架,开发者无需关心底层资源即可部署完整可用的 Serverless 应用架构。Serverless Cloud Framework 具有资源编排、自动伸缩、事件驱动等能力,覆盖编码、调试、测试、部署等全生命周期,帮助开发者通过联动云资源,迅速构建 Serverless 应用。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部