操作場景
死信隊列 DLQ 是一個用戶賬號下的消息隊列,可用于收集錯誤事件信息、分析失敗原因。如果您為函數(shù)配置了死信隊列,以下情形的事件會被發(fā)送到死信隊列:
說明
死信隊列功能目前處于內(nèi)測階段,如需使用請 提交工單 申請開通消息隊列 CMQ。
死信隊列消息屬性
死信隊列投遞至消息隊列 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
}
}
結(jié)構(gòu)名內(nèi)容
AppId
APPID。
Uin
主賬號 ID。
創(chuàng)建者的子賬號 ID(此字段可能返回 null,表示取不到有效值)。
觸發(fā)器請求來源。
函數(shù)名稱。
命名空間。
觸發(fā)函數(shù)的版本/別名。
運行函數(shù)時的參數(shù),以 JSON 格式傳入,最大支持的參數(shù)長度請參見 。
調(diào)用函數(shù)時的毫秒級時間戳。
唯一請求 ID獲取安裝包信息失敗,每次請求都會返回。定位問題時需要提供該次請求的 。
推送至消息隊列的時間信息。
重試次數(shù)(0 - 2)。
Ttl
異步隊列事件保留時長。
操作步驟死信隊列創(chuàng)建
說明:
云函數(shù)目前支持消息隊列 CMQ 的主題模式和隊列模式作為死信隊列,您可自行選擇配置。
函數(shù)別名的死信隊列會跟隨主版本的死信隊列獲取安裝包信息失敗,主版本死信隊列即在控制臺創(chuàng)建別名時第一個選擇并配置的死信隊列。
登錄 CMQ 消息隊列控制臺,創(chuàng)建您的死信隊列。
CMQ 的主題模式支持標簽過濾與路由匹配兩種篩選方案,為了確保您的訂閱者可以收到所有錯誤信息,請在添加訂閱者時標簽欄篩選設(shè)為空, 篩選填“#”。登錄 控制臺,創(chuàng)建您的函數(shù)。配置死信隊列。
您可以在“新建函數(shù)”頁面或“函數(shù)配置”頁面進行死信隊列的配置。死信隊列監(jiān)控
使用死信隊列時,權(quán)限錯誤、資源誤配或消息的總大小超過目標隊列或主題的限制大小均會導(dǎo)致死信投遞失敗。您可在云函數(shù)監(jiān)控信息中查詢“死信隊列投遞失敗次數(shù)/次”。
登錄 控制臺,選擇左側(cè)導(dǎo)航欄中的函數(shù)服務(wù)。在主界面上方選擇期望查看死信隊列監(jiān)控的函數(shù)所在地域,并單擊列表頁中期望查看監(jiān)控的函數(shù),進入函數(shù)詳情頁面。在函數(shù)詳情頁中,單擊監(jiān)控信息即可查看死信隊列投遞失敗次數(shù)。