我正在尝试使用此解决方案将我的Api-Gateway地图应用程序/x-wow-form-urlencoded到json:如何从Amazon API Gateway将参数从POST传递到AWS Lambda
但是到目前为止,我的lambda被成功触发,只有我的request.body总是空的。如果有人知道如何使用. net-core c#处理它,我真的很感激洞察力。
到目前为止,我的无服务器lambda函数是这样的,我收到了时间戳,但没有关于request.body
public async Task<APIGatewayProxyResponse> Post(APIGatewayProxyRequest request, ILambdaContext context)
{
var webHook = new WebHookClient("https://{urlHiddenForObviousReasons}");
var body = new BodyModel
{
Content = $"Trigger @ {DateTime.UtcNow}, {request.Body}"
};
await webHook.PostMessage(body);
var response = new APIGatewayProxyResponse
{
StatusCode = (int)HttpStatusCode.OK,
Body = "Alert received.",
Headers = new Dictionary<string, string> { { "Content-Type", "text/plain" } }
};
return response;
}
请注意,如果我使用代理集成,而不是传递表单值,我希望使用映射,这样我就可以让两个客户端使用相同的api和不同的post方法,并且让lambda只解析json。以这种方式传递表单值的设置示例:key=1
您需要添加映射模板。例如:
{
"name" : "$input.params('name')",
"body" : $input.json('$')
}
这里也有一个很好的例子。
另一个对我来说更复杂的例子:
#set($allParams = $input.params())
{
"body-json" : $input.json('$'),
"params" : {
#foreach($type in $allParams.keySet())
#set($params = $allParams.get($type))
"$type" : {
#foreach($paramName in $params.keySet())
"$paramName" : "$util.escapeJavaScript($params.get($paramName))"
#if($foreach.hasNext),#end
#end
}
#if($foreach.hasNext),#end
#end
}
}
我不能评论C#代码,因为我已经习惯了Javascript和Python,但它似乎很好。
它不同于-如何从POST将参数从AmazonAPI网关传递到AWS Lambda。因为我可以在API网关中转换参数,但不能用Golang传递或打印它。然而,同样的API网关在Python上运行良好。 下面是我的API网关和AWS Lambda(Golang)的日志。我可以看到POST参数已成功转换为JSON。但是,我在Lambda函数日志中看不到它。 API网关日志 Lambda函数码 Lambd
例如,如果我们想使用 或 如何将这两个示例作为参数传递给Lambda函数? 我在文档中看到了一些关于设置“Mapped From”的内容,但我在API网关控制台中找不到该设置。 用于在“方法请求”页中定义的名为的路径参数。 用于在“方法请求”页中定义的名为的查询字符串参数。 尽管我定义了一个查询字符串,但我没有看到这两个选项中的任何一个。
我正在尝试将API网关与Lambda代理集成, API服务器接收带有以下参数的请求,即邮政编码和住所 代码:
我正在为webste构建一个功能,用户可以在其中重置密码。他收到一封电子邮件,其中包含URL中生成的令牌。单击此链接时,用户将被发送到/Reset页面。该页的Get方法如下:
我已经阅读了安装https的amazon ec2指南并完成了几个步骤。但它仍然不起作用。 签一个SSL认证,我用的是自签名证书。 使用aws iam将SSL证书上传到亚马逊服务器。 在ec2控制平台中,在当前安全组的入站中添加端口80和端口443 创建新的负载均衡器,在新的负载均衡器中添加端口80、端口443和带有上传证书的https的超文本传输协议,并在负载均衡器中分配当前实例 最后,我检查了实