我是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,但我对此并不确定。
谢谢!
答案 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
但我不确定问题的根本原因。