如何解决此AWS lambda错误 - 发生错误:Lambda收到错误响应:未处理?

时间:2017-05-11 11:21:14

标签: amazon-web-services aws-lambda amazon-iam chatbot amazon-lex

我是AWS的新手。我使用aws lex和aws lambda c#构建了chatbot。我正在使用示例aws lambda C#program

namespace AWSLambda4
{
    public class Function
    {

        /// <summary>
        /// A simple function that takes a string and does a ToUpper
        /// </summary>
        /// <param name="input"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public string FunctionHandler(string input, ILambdaContext context)
        {
            try
            {
                return input?.ToUpper();
            }
            catch (Exception e)
            {

                return "sorry i could not process your request due to " + e.Message;
            }
        }
    }
}

我在aws lex中创建了一个插槽来映射第一个参数输入。但是我总是收到此错误发生错误:Lambda收到错误响应:未处理

在Chrome网络标签中,我可以看到错误 - 424失败的依赖关系,这与身份验证有关。

请帮助解决如何解决aws lex使用的AWS lambda C#错误。我遇到过cloudwatch,但我对此并不确定。

谢谢!

2 个答案:

答案 0 :(得分:4)

Lex和Lambda之间的沟通并不像普通函数那样直截了当。 Amazon Lex期望Lambda以特定的JSON格式输出,而插槽细节等数据也会以类似的JSON发送给Lambda。你可以在这里找到他们的蓝图:Lambda Function Input Event and Response Format。确保您的C#代码也以类似的方式返回JSON,以便Lex能够理解并进行进一步处理。

希望它有所帮助!

答案 1 :(得分:0)

这对我有用:

Lex以LexEvent类类型发送请求,并期望LexResponse类类型中的响应。所以我将参数从string更改为LexEvent并从{{1}返回类型转到string

LexResponse

但我不确定问题的根本原因。