【发布时间】:2017-10-23 07:39:41
【问题描述】:
使用AWS Lex 创建聊天机器人并在AWS Lambda 中使用Node.js。
错误:发生错误:收到来自 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 获得对 Lex 的正确响应(电子邮件服务正常工作)。我试过context.done();,但没有成功。
编辑 1: 尝试从AWS Documentation for 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?"
}
}
});
【问题讨论】:
-
您是否收到类似
Received invalid response from Lambda的错误,但这似乎是来自此处的 424 DependencyFailedException -> docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html -
@yashhy 是的,我得到了错误,是的,它是 424 DependencyFailedException
-
知道你是如何解决这个错误的
424? -
@yashhy 尚未解决,我认为需要使用 IAM 角色授予 lex 权限
-
@yashhy 在 IAM 角色中已经获得了 Post Text '{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lex:PostText" ], "效果": "允许", "资源": "*" } ] }'
标签: node.js amazon-web-services lambda