AWS лямбда-функция- 'Произошла ошибка: получен ответ об ошибке Lambda: Handled'

67
8

Работа с AWS Lex для создания ChatBot и использования Node.js в AWS Lambda.


Ошибка: произошла ошибка: получен ответ об ошибке от Lambda: Обработано



Лямбда-функция:


var aws = require('aws-sdk');
var ses = new aws.SES({region: 'us-east-1'});

exports.handler = function(event, context, callback) {

var eParams = {
Destination: {
ToAddresses: [event.currentIntent.slots.Email]
},
Message: {
Body: {
Text: {
Data: "Hi, How are you?"
}
},
Subject: {
Data: "Title"
}
},

Source: "abc@gmail.com"
};
var email = ses.sendEmail(eParams, function(err, data){
if(err)
else {

context.succeed(event);

}
});
};


Как получить правильный ответ от Lambda to Lex после успешного выполнения (Служба электронной почты работает правильно). Я пробовал context.done();, но это не сработало.


Изменить 1:
Попробовал добавить ниже тест ответа от Документация AWS для LEX, все еще получая тот же самый ответ об ошибке.


exports.handler = (event, context, callback) => { 

callback(null, {
"dialogAction": {
"type": "ConfirmIntent",
"message": {
"contentType": "PlainText or SSML",
"content": "message to convey to the user, i.e. Are you sure you want a large pizza?"
}

}

});

спросил(а) 2017-05-23T14:19:00+03:00 3 года, 1 месяц назад
1
Решение
66

Как уже упоминалось в документах формата lambda-input-response-format здесь fulfillmentState требуется свойство в ответе.


Другое дело, вы должны передать либо PlainText OR SSML для contentType в ответе. В вашем случае это просто PlainText.


    exports.handler = (event, context, callback) => {
callback(null, {
"dialogAction": {
"type": "ConfirmIntent",
"fulfillmentState": "Fulfilled", // <-- Required
"message": {
"contentType": "PlainText",
"content": "message to convey to the user, i.e. Are you sure you want a large pizza?"
}
}
});

Вышеупомянутый код должен решить вашу проблему.


Однако, если вы увидите req-res на вкладке сети, вы получите HTTP-ошибку 424, в которой будет указано DependencyFailedException, в котором говорится У Amazon Lex нет достаточных разрешений для вызова функции Lambda ", которая вводит в заблуждение.

ответил(а) 2017-05-25T16:53:00+03:00 3 года, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема