Используйте aws -sdk в навыке Алекса - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь развить навык Alexa, который извлекает информацию из базы данных DynamoDB. Чтобы использовать это, я должен импортировать aws-sdk.

Но по какой-то причине, когда я импортирую его, мое умение перестает работать. Навык даже не открывается. Мой код размещен на консоли разработчика Alexa. Вот что происходит:

На панели тестирования, когда я ввожу «Open Cricket Update» (название приложения), Алекса отвечает: «Возникла проблема с ответом на запрошенный навык». Это происходит только когда я импортирую aws -sdk.

Что я делаю не так?

index. js

const Alexa = require('ask-sdk-core');
const AWS = require('aws-sdk');
AWS.config.update({region:'us-east-1'});

const table = 'CricketData';
const docClient = new AWS.DynamoDB.DocumentClient();

const LaunchRequestHandler = {
    canHandle(handlerInput) {
        return Alexa.getRequestType(handlerInput.requestEnvelope) === 'LaunchRequest';
    },
    handle(handlerInput) {
        const speakOutput = 'Hello! Welcome to cricket update.';
        return handlerInput.responseBuilder
            .speak(speakOutput)
            .reprompt(speakOutput)
            .getResponse();
    }
};

пакет. json

{
  "name": "hello-world",
  "version": "1.1.0",
  "description": "alexa utility for quickly building skills",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Amazon Alexa",
  "license": "ISC",
  "dependencies": {
    "ask-sdk-core": "^2.6.0",
    "ask-sdk-model": "^1.18.0",
    "aws-sdk": "^2.326.0"
  }
}

1 Ответ

0 голосов
/ 25 марта 2020

В конце вашего индекса отсутствует блок exports.handler. js, который "строит" навык, составленный из ваших обработчиков, например,

exports.handler = Alexa.SkillBuilders.custom()
.addRequestHandlers(LaunchRequestHandler)
.lambda();

Можно найти более полный пример здесь

...