You need to enable JavaScript to run this app. Amazon Lex V2空闲超5分钟报The session has been destroyed错误求助
优惠活动
大模型
产品
解决方案
定价
更多

Amazon Lex V2空闲超5分钟报The session has been destroyed错误求助

问题原因

AWS Lex V2 服务端默认对空闲时间超过5分钟的会话执行自动销毁,同一个sessionId的两次请求间隔超过该阈值时,就会返回The session has been destroyed错误,属于服务端的默认会话管控逻辑,和你本地SDK的超时配置无关。

解决方案
  • 方案1:调整会话空闲超时阈值
    可以通过两种方式修改超时时间,最长支持设置为24小时(86400秒):
    1. 全局配置:进入Lex控制台对应机器人的「别名」配置页,修改「会话超时」参数,该配置对当前别名下所有会话生效。
    2. 单请求动态配置:调用recognizeText接口时,传入sessionState.sessionTimeoutInSeconds参数自定义当前会话的超时时间。
  • 方案2:捕获销毁错误后自动重建会话
    若业务允许超时后清空上下文新建会话,可在捕获到对应错误时,自动生成新的sessionId重发请求,无需上层业务感知。
  • 方案3:业务侧自行维护会话状态
    若需要长期保留会话上下文,不要依赖Lex的内置会话存储,可在业务数据库存储用户的会话状态(比如槽位信息、上下文属性),每次请求时主动传入sessionState参数,即使Lex侧会话销毁,也可以通过传入的状态恢复会话上下文。
代码修改示例
async sendTextMessageToAWS(textMessage, sessionId = uniqid()) {
    return new Promise((resolve, reject) => {
        const requestParams = {
            botAliasId: this.alias,
            botId: this.botName,
            text: textMessage,
            localeId: this.locale,
            sessionId: sessionId,
            // 可选:单请求指定超时时间,这里设为3600秒=1小时
            sessionState: {
                sessionTimeoutInSeconds: 3600
            }
        }
        this.lexruntime.recognizeText(requestParams, (err, response) => {
            if (err && err.message === "The session has been destroyed") {
                // 会话销毁时自动用新sessionId重发请求
                const newSessionId = uniqid();
                this.lexruntime.recognizeText({
                    ...requestParams,
                    sessionId: newSessionId
                }, (retryErr, retryRes) => {
                    if (retryErr) reject(retryErr);
                    else resolve({...retryRes, newSessionId});
                })
            } else if (err) reject(err);        
            else {
                console.log(JSON.stringify(response, undefined, 2));
                resolve(response);
            }
        })
    })
}

内容的提问来源于stack exchange,提问作者Damian Gonzalez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 04:21:01