gpt4 book ai didi

amazon-web-services - 如何使用 Lambda 访问 AWS API Gateway 请求的 HTTP header ?

转载 作者:行者123 更新时间:2023-12-03 06:46:34 24 4
gpt4 key购买 nike

我在 API Gateway FAQ 中看到可以访问发送到 API 网关的请求 header ...

If you already utilize OAuth tokens or any other authorization mechanism, you can easily setup API Gateway not to require signed API calls and simply forward the token headers to your backend for verification.

但是,我在文档中找不到如何执行此操作的示例,并且不清楚如何使用 Lambda 访问此数据。

我能够设置开放 API 并获得对 POST ( Walkthrough: API Gateway and Lambda Functions ) 一部分的 JSON 对象的访问权限,但为了使用我自己的提供程序实现 OAuth 2.0 风格的 API,我需要访问“授权” header 。

我的偏好是使用 Lambda 和 Java 8 进行设置,但使用 Node.js 的示例也有助于理解如何完成此操作。

最佳答案

您可以在集成请求中使用以下映射模板,将所有路径、查询和 header 参数一般映射到 Lambda 事件中。您仍然需要在 API 网关的方法请求部分中注册它们,但您至少可以将映射模板与您要使用的特定参数解耦。这样,您就不必在每次更改 header 、查询或路径参数时都更改映射模板代码。

我写了一篇博客文章,提供了映射模板的更多详细信息和一些解释:http://kennbrodhagen.net/2015/12/06/how-to-create-a-request-object-for-your-lambda-event-from-api-gateway/

这是您可以使用的映射模板:

{
"method": "$context.httpMethod",
"body" : $input.json('$'),
"headers": {
#foreach($param in $input.params().header.keySet())
"$param": "$util.escapeJavaScript($input.params().header.get($param))" #if($foreach.hasNext),#end

#end
},
"queryParams": {
#foreach($param in $input.params().querystring.keySet())
"$param": "$util.escapeJavaScript($input.params().querystring.get($param))" #if($foreach.hasNext),#end

#end
},
"pathParams": {
#foreach($param in $input.params().path.keySet())
"$param": "$util.escapeJavaScript($input.params().path.get($param))" #if($foreach.hasNext),#end

#end
}
}

关于amazon-web-services - 如何使用 Lambda 访问 AWS API Gateway 请求的 HTTP header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31372167/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com