AWS简单的lambda功能



我正在尝试学习lambda,但是我正在用一个简单的功能来努力,该功能将字符串作为输入参数和上部案例:

它写在C#中。

    public class Function
    {
        public string FunctionHandler(string input, ILambdaContext context)
        {
            return input?.ToUpper();
        }
    }
然后,我设置了一个带有Get请求的API网关。它在集成请求上具有映射模板,例如:
{
    "input":$input.params("text")
}

我试图在URL上称呼它:

https://xxxxxxx.execute-api.xxxxxxx.amazonaws.com/prod?test=hello

但我返回了一个错误:

{ "消息":"无法将请求主体解析为json:意外字符('} '(代码125((:期望一个值 n在[源:(byte [](" { n n n "输入": n n} "; line:5,列:2]"}

正如joaofs在评论中所建议的那样,修复程序是使我功能处理程序的输入成为一个复杂的类型。然后它开始神奇地工作。

出于某种原因,传递的原始字符串在我的本地盒子(使用SAMS测试工具(上正常工作,但是当从AWS内使用它时,它不起作用。

这是我的新示例代码:

public string FunctionHandler(Employee input, ILambdaContext context)
{
   context.Logger.LogLine(string.Format("{0}:{1} - {2}", context.AwsRequestId, 
   context.FunctionName, input));
   return input.Name?.ToUpper();
}

和员工类型定义:

public class Employee
{
   public string Name { get; set; }
}

最新更新