多个验证错误 Aws SDK

Multiple Validation Errors Aws SDK

我正在使用 lambda 函数并使用节点、js 创建 AWS-SDK 历史指标报告的方法,但我收到以下错误。 有看一个SS的error

这是我的代码

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={};
    do{
        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 metricsList = [
        {
            Name : 'CONTACTS_HANDLED',
            Unit : 'COUNT',
            Statistic : 'SUM'
        },
        {
            Name : 'CONTACTS_ABANDONED',
            Unit : 'COUNT',
            Statistic : 'SUM'
        },
      ];
    // Metrics params
    var getMetricParams = {
        InstanceId: connectInstanceId,
        StartTime: 1592854200,
        EndTime: 1592855700,
        Filters: {
            Channels: ["VOICE"],
            Queues: queueARNsArray
        },
        CurrentMetrics: metricsList,
        Groupings: ["QUEUE"]
    };
    // get current metrics by queues
    var getMetricsPromise = connect
        .getMetricData(getMetricParams)
        .promise();
    var getMetricsResult = await getMetricsPromise;
    // console.log("current |||||||| 1 metrics:", JSON.stringify(getCurrentMetricsResult));
    let queueMetricsArray = [];
    if(getMetricsResult.MetricResults.length){
        getMetricsResult.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))
        });
    }else{
        keys.forEach(key => {
            let queueMetrics = {
                "Queue_Name" : getKeyByValue(event ,queue.Dimensions.Queue.Arn),
                "CONTACTS_HANDLED": 0,
                "CONTACTS_ABANDONED": 0
            }
            queueMetricsArray.push(queueMetrics);
        })
    }

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

};

我不知道这是什么错误。如果你们有人知道请帮我解决它谢谢。 我不知道参数中缺少所需的密钥 'HistoricalMetrics' 在哪里”我已经检查了参数,但我没有得到任何东西。

错误消息与您的这部分代码有关:

// Metrics params
var getMetricParams = {
    InstanceId: connectInstanceId,
    StartTime: 1592854200,
    EndTime: 1592855700,
    Filters: {
        Channels: ["VOICE"],
        Queues: queueARNsArray
    },
    CurrentMetrics: metricsList,
    Groupings: ["QUEUE"]
};

此处无法使用属性 CurrentMetrics,缺少所需的属性 HistoricMetrics

请查看 GetMetricData API reference 了解更多信息。