【问题标题】:Setup AWS API gateway custom authorizers in serverless framework在无服务器框架中设置 AWS API 网关自定义授权者
【发布时间】:2018-08-27 18:19:37
【问题描述】:

我需要将 AWS API 网关自定义授权方添加到 Lambda 函数。目前我已经为每个端点添加了授权者。如以下serverless.yml

serverless.yml

service: test-service

provider:
    name: aws
    runtime: nodejs6.10
    stage: dev
    region: us-east-1

functions:
    bff:
        handler: app.handler
        events:
            - http:
                path: /home
                method: get
                cors: true
                authorizer :
                    arn: arn:aws:lambda:us-east-1:xxxxxx:function:token-verifier
                    resultTtlInSeconds: 0
                    identitySource: method.request.header.Authorization
                    identityValidationExpression: '.*'

如何将自定义授权方添加到整个 lambda 函数中 而不是分别添加到每个端点?

【问题讨论】:

标签: amazon-web-services aws-lambda aws-api-gateway serverless-framework


【解决方案1】:

您混淆了 AWS API Gateway 和 AWS Lambda 之间的界限。这不是你的错。 无服务器框架非常好,它几乎模糊了这两件事。


严格来说,AWS Lambda 函数不需要需要自定义授权方。

授权器用于保护 API Gateway 端点用于 AWS Lambda 函数。

因此,您需要为需要授权的每个端点定义授权方


如果您通过不多次重复授权方定义来使您的serverless.yml 更加简洁,您可以定义一次并在您的端点中引用它。

service: test-service

custom:
    authorizer:
        arn: arn:aws:lambda:us-east-1:xxxxxx:function:token-verifier
        resultTtlInSeconds: 0
        identitySource: method.request.header.Authorization
        identityValidationExpression: '.*'

provider:
    name: aws
    runtime: nodejs6.10
    stage: dev
    region: us-east-1

functions:
    bff:
        handler: app.handler
        events:
            - http:
                path: /home
                method: get
                cors: true
                authorizer: ${self:custom.authorizer}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-01
    • 2020-11-16
    • 2020-02-02
    • 2019-12-15
    • 2020-08-21
    • 1970-01-01
    • 2019-04-05
    • 2022-07-01
    相关资源
    最近更新 更多