如何排查此 AWS lambda 错误 - 发生错误:收到来自 Lambda 的错误响应:未处理



我是 AWS 的新手。我正在使用 aws lex 和 aws lambda c# 构建聊天机器人。我正在使用示例 aws lambda C# 程序

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# 错误。我遇到了云监视,但我不确定。

谢谢!

Lex 和 Lambda 之间的通信不像普通函数那样简单。Amazon Lex 希望 Lambda 以特定的 JSON 格式输出,插槽详细信息等数据也会以类似的 JSON 格式发送到 Lambda。您可以在此处找到它们的蓝图:Lambda 函数输入事件和响应格式。确保 C# 代码也以类似的方式返回 JSON,以便 Lex 能够理解并执行进一步的处理。

希望对您有所帮助!

以下是对我有用的方法:

Lex 以类类型发送请求LexEvent并期望以类类型LexResponse响应。所以我将参数从 string 更改为 LexEvent,并将返回类型从 string 更改为 LexResponse .

public LexResponse FunctionHandler(LexEvent lexEvent, ILambdaContext context)
    {
        //Your logic goes here.
        IIntentProcessor process;
        switch (lexEvent.CurrentIntent.Name)
        {
            case "BookHotel":
                process = new BookHotelIntentProcessor();
                break;
            case "BookCar":
                process = new BookCarIntentProcessor();
                break;                
            case "Greetings":
                process = new GreetingIntentProcessor();
                break;
            case "Help":
                process = new HelpIntentProcessor();
                break;
            default:
                throw new Exception($"Intent with name {lexEvent.CurrentIntent.Name} not supported");
        }

        return process.Process(lexEvent, context);// This is my custom logic to return LexResponse
    }

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

相关内容

  • 没有找到相关文章

最新更新