Lambda 函数中未显示 AWS Sdk 响应

AWS Sdk response not showing in Lambda Function

我正在研究 lambda 函数并使用节点 js 创建 AWS-SDK 历史指标报告的方法。该方法 运行 成功,但响应没有显示任何内容。看看回复。

这是我的代码

function getKeyByValue(object, value) {
    return Object.keys(object).find(key =>  
            object[key] === value); 
} 
exports.handler = async (event) => {
    const AWS = require('aws-sdk');
    var connect = new AWS.Connect({ apiVersion: '2017-08-08' });
    let queueARN = event.queueARN || null;
    const connectInstanceId = process.env.instanceID;
    let flag =0, nextToken = null;
    let queueARNsObject = {}, queueARNsArray=[], queueTypeObject={},listQueuesResult;
    console.log('At line 12 entring do while loop....')
    do{
        console.log('How many times do I stay here???')
        let listQueuesParams = {
            InstanceId: connectInstanceId, /* required */
            QueueTypes: [
                "STANDARD",
            ],
            NextToken: nextToken,
        };
        let listQueuesPromise = connect.listQueues(listQueuesParams).promise();
        listQueuesResult = await listQueuesPromise;
        // console.log(listQueuesResult);
        listQueuesResult.QueueSummaryList.forEach(queue => {
            if(queueARN != null){
                if (queue.Arn == queueARN){
                    queueARNsArray = [queue.Arn];  
                    queueARNsObject[queue.Name]= queue.Arn;
                    queueTypeObject[queue.QueueType]= queue.Arn;
                    flag = 1;
                    return;
                }
            }else{
                queueARNsObject[queue.Name]= queue.Arn;
                queueTypeObject[queue.QueueType]= queue.Arn;
                queueARNsArray.push(queue.Arn);
                nextToken = listQueuesResult.NextToken;
            }
        });
    }while (flag=0 && nextToken != null);
    const HistoricalMetrics = [
        {
            Name : "CONTACTS_HANDLED",
            Unit : "COUNT",
            Statistic : "SUM"
        },
        {
            Name : "CONTACTS_ABANDONED",
            Unit : "COUNT",
            Statistic : "SUM"
        },
      ];
    // Metrics params
    var getHistoricalMetricsParams = {
        InstanceId: connectInstanceId,
        StartTime: 1593099900,
        EndTime: 1593129300,
        Filters: {
            Channels: ["VOICE"],
            Queues: queueARNsArray
        },
        HistoricalMetrics: HistoricalMetrics,
        Groupings: ["QUEUE"]
    };
    // console.log(getHistoricalMetricsParams);
    // get current metrics by queues
    var getHistoricalMetricsPromise = connect 
        .getMetricData(getHistoricalMetricsParams)
        .promise();
    var getHistoricalMetricsResult = await getHistoricalMetricsPromise;
    console.log("historical metrics",getHistoricalMetricsResult);
    // console.log("current |||||||| 1 metrics:", JSON.stringify(getCurrentMetricsResult));
    let queueMetricsArray = [];
    if(getHistoricalMetricsResult.MetricResults.length){
        getHistoricalMetricsResult.MetricResults.forEach(queue => {
            let queueMetrics = {
                "Queue_Name" : getKeyByValue(queueARNsObject ,queue.Dimensions.Queue.Arn),
                "CallsHandled": queue.Collections[0].Value, 
                "CallsAbanoded": queue.Collections[1].Value, 
            }
            queueMetricsArray.push(queueMetrics);
            console.log("TYPE||||", getKeyByValue(queueTypeObject ,queue.Dimensions.Queue.Arn))
        });
    }

    const response = {
        responseCode: 200,
        metricResults: queueMetricsArray
    };
    return response;

};

我不知道为什么它没有显示任何内容。如果你们有人知道请帮我解决它谢谢。我不知道缺少什么我几乎检查了所有内容,但我什么也没得到。

您可以查看几个常规区域:

  1. 指定区域。 AWS.Connect({ apiVersion: '2017-08-08', region:'xxxxx' });

  2. 直接用listQueues方法使用Await

let listQueuesPromise = await connect.listQueues(listQueuesParams).promise();

  1. 检查权限 - 确保有足够的权限

  2. Lambda 配置 - 增加超时和内存大小

PS: 控制台记录了什么 listQueuesPromise return?