我需要将 AWS API 网关自定义授权方添加到 Lambda 函数。目前我已经为每个端点添加了授权方。如下所示serverless.yml
。
无服务器.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 函数而不是单独添加到每个端点?
您混淆了 AWS API Gateway 和 AWS Lambda 之间的界限。这不是你的错。无服务器框架是如此之好,以至于它几乎模糊了这两件事。
严格来说,AWS lambda函数不要需要定制的授权人。
授权方用于保护 API 网关端点,而不是用于 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}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句