我正在编写我的第一个Scala lambda,我遇到了一些问题,我认为这应该很简单,但我很难找到答案。
因此,我有以下代码,它将允许我接受json并在lambda中使用它。
--eventTest.scala
val stream : InputStream = getClass.getResourceAsStream("/test_data/body.json")
--request handler
def handleRequest(input: InputStream): Unit = {
val name = scalaMapper.readValue(input, classOf[NameInfo])
val result = s"Hello there, ${name.firstName} ${name.lastName}."
println(result)
}这工作得很好,但我在弄清楚如何能够获取URL参数时遇到了问题。它会自动使用相同的输入流吗?在Scala中,关于这一点的文档似乎很少。
谢谢
发布于 2020-08-25 21:06:12
Lambda函数的event是一个JSON对象。Lambda运行时将内省处理程序函数,并尝试根据函数签名提取或转换该对象。我认为最简单的表示是java.util.Map[String,String] (iirc,Lambda没有Scala运行时,所以你必须使用Java类并对它们进行转换)。
来自API Gateway代理集成的示例事件:https://github.com/awsdocs/aws-lambda-developer-guide/blob/master/sample-apps/nodejs-apig/event.json
有关Java运行时的更多信息,请访问:https://docs.aws.amazon.com/lambda/latest/dg/java-handler.html
https://stackoverflow.com/questions/63578827
复制相似问题