алекса умение местное не мог написать динамод - PullRequest
0 голосов
/ 20 сентября 2018

Я пишу навык node.js, используя ask-sdk и использую alexa-skill-local для проверки конечной точки.Мне нужно сохранить данные в DynamoDb в одном из обработчиков.Но я продолжаю получать "ошибку отсутствующего региона"Пожалуйста, найдите мой код ниже:

'use strict';

// use 'ask-sdk' if standard SDK module is installed
const Alexa = require('ask-sdk');

const { launchRequestHandler, HelpIntentHandler, CancelAndStopIntentHandler, SessionEndedRequestHandler } = require('./commonHandlers');

const ErrorHandler = {
    canHandle() {
        return true;
    },
    handle(handlerInput, error) {
        return handlerInput.responseBuilder
            .speak('Sorry, I can\'t understand the command. Please say again.')
            .reprompt('Sorry, I can\'t understand the command. Please say again.')
            .getResponse();
    },
};

////////////////////////////////
// Code for the handlers here //
////////////////////////////////
exports.handler = Alexa.SkillBuilders
    .standard()
    .addRequestHandlers(
        launchRequestHandler,
        HelpIntentHandler,
        CancelAndStopIntentHandler,
        SessionEndedRequestHandler,
        ErrorHandler
    )
    .withTableName('devtable')
    .withDynamoDbClient()
    .lambda();

И в одном из обработчиков я пытаюсь получить постоянные атрибуты, как показано ниже:

handlerInput.attributesManager.getPersistentAttributes().then((data) => {
    console.log('--- the attributes are ----', data)
})

Но я продолжаю получать следующую ошибку:

(node:12528) UnhandledPromiseRejectionWarning: AskSdk.DynamoDbPersistenceAdapter Error: Could not read item (amzn1.ask.account.AHJECJ7DTOPSTT25R36BZKKET4TKTCGZ7HJWEJEBWTX6YYTLG5SJVLZH5QH257NFKHXLIG7KREDKWO4D4N36IT6GUHT3PNJ4QPOUE4FHT2OYNXHO6Z77FUGHH3EVAH3I2KG6OAFLV2HSO3VMDQTKNX4OVWBWUGJ7NP3F6JHRLWKF2F6BTWND7GSF7OVQM25YBH5H723VO123ABC) from table (EucerinSkinCareDev): Missing region in config
    at Object.createAskSdkError (E:\projects\nodejs-alexa-sdk-v2-eucerin-skincare-dev\node_modules\ask-sdk-dynamodb-persistence-adapter\dist\utils\AskSdkUtils.js:22:17)
    at DynamoDbPersistenceAdapter.<anonymous> (E:\projects\nodejs-alexa-sdk-v2-eucerin-skincare-dev\node_modules\ask-sdk-dynamodb-persistence-adapter\dist\attributes\persistence\DynamoDbPersistenceAdapter.js:121:45)

Можем ли мы читать и записывать атрибуты из DynamoDb, используя alexa-skill-local?Нужны ли нам другие настройки для этого?

Спасибо

1 Ответ

0 голосов
/ 22 сентября 2018

Предположительно, у вас есть профиль конфигурации AWS, который используется вашим умением при локальном запуске.

Вам необходимо отредактировать файл .config и установить там регион по умолчанию (т.е. us-east-1).Регион должен совпадать с регионом, в котором существует ваша таблица.

В качестве альтернативы, если вы хотите иметь возможность работать полностью изолированно, вам может потребоваться написать условную логику come и заменить клиент Dynamo на один, нацеленный на экземпляр DynamoDB.Локальный запуск на вашей машине.

...