我正在使用 AWS Api 网关。
我已经使用 API Gateway 创建了资源和方法。
我创建了 Lambda 函数,用于生成 json 格式的签名 URL,以通过 CloudFront 访问 s3 存储桶。
当我使用 GET 方法调用 lambda 函数时。我将“channekID”作为查询字符串传递。我还想发送 X-API-Key 自定义标头以进行授权。
我尝试了很多事情但没有找到任何解决方案。
如何在 Lambda 函数中发送自定义标头?
并在 Lambda 中访问标头值后
如何使用 x-api-key 进行授权?
您无法使用 Lambda 访问标头。但您可以做的是在 Api 网关中创建一个映射模板,将标头值放入事件对象中。
标题应该位于$input.params(x)
可在映射模板中使用的变量。请参阅完整的文档如何准确地整合这一点。
更新:在您的映射模板中(在 api 网关 -> 您的端点 -> 集成请求下),添加如下内容:
#set($inputRoot = $input.path('$'))
{
"apikey" : "$input.params('X-Api-Key')"
}
现在您可以在下面的 lambda 函数中访问 api 密钥event.apikey
(我没有对此进行测试,但我们在生产中使用类似的东西)。请注意,您可以对所有标头变量以及正文中的变量执行此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)