【问题标题】:serverless framework: configuring a pre-existing lambda authenticator for HTTP API Gateway routes in serverless.yml无服务器框架:在 serverless.yml 中为 HTTP API 网关路由配置预先存在的 lambda 身份验证器
【发布时间】:2023-02-01 04:33:40
【问题描述】:

我想使用无服务器框架将预先存在的 lambda 身份验证器添加到预先存在的 http api 网关的路由中。我已按照文档进行操作,据此我在 provider.httpApi 下指定了授权方详细信息(第 15 至 18 行),并且我在下面的路线(第 27 和 28 行)中引用了授权方。虽然我收到错误消息:

无法为外部配置的 HTTP API 设置授权方

我在这里做错了什么?它必须用于 HTTP API 网关而不是 REST API 网关,因为这就是当前基础设施的配置。谢谢

【问题讨论】:

    标签: frameworks serverless serverless-framework api-gateway


    【解决方案1】:

    看起来您正在使用外部配置的 HTTP API(我从正在设置的 id 猜测)。在这种情况下,您不能以这种方式配置授权方,您只能在将 HTTP API 作为无服务器服务的一部分进行配置时这样做。您可以在那里做的是以更手动的方式设置共享授权方,如此处文档中所述:https://www.serverless.com/framework/docs/providers/aws/events/http-api#shared-authorizer

    【讨论】:

      【解决方案2】:

      我在研究如何使用 API 网关授权器和无服务器框架时遇到了这篇文章。我正在改造 API 网关,因此也需要改造授权方。创建时,我将授权方 ID 存储在参数存储条目中。这是一个 6 个字符的字母数字值,例如 tw9qgj。然后我引用了参数如下:

      custom:
        authorizerId: ${ssm:api_gateway_authoriser}
      

      然后将以下块添加到每个 API,例如

            - httpApi:
                path: /protected
                method: get
                authorizer:
                  id: ${self:custom.authorizerId}
      

      【讨论】:

        猜你喜欢
        • 2015-02-28
        • 2018-01-19
        • 1970-01-01
        • 2018-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-05
        • 1970-01-01
        相关资源
        最近更新 更多