当前位置: 首页 > 知识库问答 >
问题:

API GW V2 HTTP API和旧版lambda授权程序

董琦
2023-03-14

我正在尝试将API GWV2 HTTP API与遗留(有效载荷1.0版)自定义lambda授权器集成。它能够调用自定义lambda授权程序,但在具有500个状态的网关日志($context.authorizer.statushttps://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-logging-variables.html)中得到的响应($context.authorizer.error)低于

来自Lambda授权器函数的响应与API网关期望的格式不匹配。“context”的值无效

这表明它不遵守这里提到的响应格式--https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html#http-api-lambda-authorizer.payload-format-response

但是相同的遗留lambda在API GWV1 REST API中运行良好。同样,不能像REST API那样启用执行日志,因此不能看到lambda返回的实际响应,如果它没有返回正确的响应,但我对此表示怀疑。

共有1个答案

贡俊
2023-03-14

所以问题似乎是API GW HTTP API不喜欢Lambda Authorizer的上下文变量中的null值。现在,我们要抑制空值,但理想情况下,API GW应该优雅地处理空值。另一个问题是,如果Lambda授权器占用的时间超过10秒,它似乎会超时,但没有办法为Lambda授权器配置超时。

 类似资料:
  • 我得到了一个运行在Lambda中的graphql服务器,一切都运行得很好,我希望我的endpoint只能由经过身份验证的用户访问,我的身份验证提供者是cognito identity和cognito user pool以及Facebook。那么如何检查发送请求的用户是否经过身份验证呢?我是AWS的新手,所以,我的问题可能会让AWS专家感到困惑,但我的主要问题是“如何检查请求是否来自经过身份验证的用

  • 我已经实现了一个lambda授权器,并将其与API网关上的lambda代理集成进行了集成。 当我从API网关测试authorizer时,它工作得很好,但是当我试图从Postman调用第二个lambda上的endpoint时,请求似乎跳过了authorizer并直接命中第二个lambda。

  • 我们正在使用AWS Lambda授权器和API网关来保护我们的下游API。 下面是我们基于Java的lambda授权程序的代码片段 我们需要401(“未经授权”)作为一个回应,有人能请帮助如何做这一点吗?我们有用Java编写的lambda授权器。

  • 本书是《Ruby on Rails Tutorial: Learn Web Development with Rails (Third Edition)》一书的简体中文版,由作者 Michael Hartl 授权安道翻译和销售。版权归 Michael Hartl 和安道所有。 本书受版权法保护,任何组织或个人不得以任何形式分发或做商业使用。 书中代码基于 MIT 协议和 Beerware 协议发布

  • 但是看起来在我的lambda响应和API网关之间发生了一些奇怪的事情, 变量在内部的某个地方被压缩得更低, 而我仍然得到了相同的解析错误, 它会接受其他格式的响应吗?字符串也不起作用。 我还应该尝试什么?我的策略格式错误吗? 我从这些站点获得了两种不同的策略格式- 1。http://docs.aws.amazon.com/apigateway/latest/developerguide/use-c