Что я должен добавить / удалить в этом коде, чтобы получить правильные данные от Динамо и Лекса? - PullRequest
0 голосов
/ 03 октября 2019

У меня есть лямбда-функция, которую я написал для получения данных от Amazon Lex, которая при запуске перейдет в имеющуюся у меня DynamoDB и запросит в таблице информацию, предоставленную через Lex. Однако в настоящее время я не могу заставить запрос работать, так как он не показывает результаты, которые я ищу. Как я могу получить информацию, собранную через lex, и сопоставить то, что они сказали, с некоторой информацией в «Динамо»? (у Dynamodb есть список из более чем 400 возможных элементов, из которых они могут выбрать, ЛОТ из них похожи)

Я попытался отсканировать, и это не сработало для того, для чего он мне нужен. Это не даст правильные данные, которые были заданы в параметре теста.

'use strict';

const aws = require('aws-sdk');
const dynamo = new aws.DynamoDB();

module.exports.handler = function(intentRequest, context, callback) {
  console.log(intentRequest);
  dynamo.query({
    TableName:'ServiceOfferings',
    KeyConditionExpression: '#name = :searchName',
    ExpressionAttributeNames: {
      "#name": "name",
    },
    ExpressionAttributeValues: {
      ":searchName":{"S":"PCC"} //PCC is an example of what i need searched through lex. That value needs to be dynamic.
    }
  },(err, data)=>{
    console.log(data);
    callback(err, data);
  });
};

Вот ответ, который я получаю от параметра теста:

Response:
{
  "Items": [],
  "Count": 0,
  "ScannedCount": 0
}

Request ID:
"ca1d95ce-161e-487d-8ca5-db80d5799724"

Function Logs:
START RequestId: ca1d95ce-161e-487d-8ca5-db80d5799724 Version: $LATEST
2019-10-03T14:59:00.139Z    ca1d95ce-161e-487d-8ca5-db80d5799724    INFO    { 'dialog-state': 'ReadyForFulfillment',
  'input-transcript': 'PCC',
  slots: { list: 'PCC' },
  'intent-name': 'getServiceOffering' }
2019-10-03T14:59:00.899Z    ca1d95ce-161e-487d-8ca5-db80d5799724    INFO    { Items: [], Count: 0, ScannedCount: 0 }
END RequestId: ca1d95ce-161e-487d-8ca5-db80d5799724
REPORT RequestId: ca1d95ce-161e-487d-8ca5-db80d5799724  Duration: 1034.16 ms    Billed Duration: 1100 ms    Memory Size: 128 MB Max Memory Used: 92 MB  Init Duration: 414.90 ms    

1 Ответ

0 голосов
/ 03 октября 2019

Заменить ":searchName":{"S":"PCC"} на ":searchName":"\"PCC\"" (с учетом кавычек ключа хеширования)

Кроме того, необходимо зафиксировать ввод данных в ключе хеширования, оставив ExpressionAttributeValues ​​значение ":searchName":"PCC"

...