多个验证错误 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 了解更多信息。
我正在使用 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 了解更多信息。