You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amazon Connect调用Lambda开启录音返回ResourceNotFoundException错误排查

Amazon Connect 调用startContactRecording返回ResourceNotFoundException报错排查方案

核心问题1:参数取值错误

你代码中ContactId和InitialContactId直接写死为'$ContactId'、'$InitialContactId'字符串常量,没有从Amazon Connect触发Lambda时传入的event对象中读取真实的通话ID参数,导致API请求找不到对应的通话资源,这是最常见的触发该报错的原因。
Amazon Connect调用Lambda时会将通话相关参数放到event的Details.ContactData字段下,需要从该位置读取对应值。

核心问题2:异步逻辑执行时序错误

startContactRecording是异步API,你当前在调用API后立刻执行callback(null, event)返回结果,会导致Lambda在API请求还未完成执行时就被销毁,请求无法正常完成。需要将callback放到API的回调函数内,等待API执行完成后再返回。

配置类排查点

  • 确认你代码中填写的InstanceId值与你真实使用的Amazon Connect实例ID完全一致,没有拼写错误
  • 确认Lambda的执行角色(IAM Role)已添加connect:StartContactRecording的权限策略
  • 确认Lambda部署的区域与Amazon Connect实例所属的AWS区域完全一致,初始化AWS.Connect客户端时建议显式指定区域,避免默认区域不匹配的问题
  • 确认触发Lambda的通话在调用该接口时处于活跃状态,已经结束的通话也会触发资源不存在报错

修正后的参考代码

var AWS = require('aws-sdk');
// 显式指定和Connect实例一致的区域,比如us-east-1请替换为你的实际区域
var connect = new AWS.Connect({region: '你的AWS区域代码'});

exports.handler = (event, context, callback) => {
    // 从event中读取真实的通话参数
    var params = {
        ContactId: event.Details.ContactData.ContactId,
        InitialContactId: event.Details.ContactData.InitialContactId,
        InstanceId: 'ab71a95e-7b8a-46bd-bf37-8145924a7c85', // 确认该实例ID正确
        VoiceRecordingConfiguration: {
          VoiceRecordingTrack: "ALL"
        }
    };
    
    connect.startContactRecording(params, function(err, data) {
        if (err) {
            console.log(err, err.stack);
            callback(err); // 报错时返回错误信息
        } else {
            console.log(data);
            callback(null, event); // 接口调用成功后再返回
        }
    });
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 04:45:01