You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否使用AWS SAM开发并部署Lambda授权器?其特殊性下是否仍适用?

AWS SAM 能否用于开发 Lambda 授权器?

当然可以用 AWS SAM 开发 Lambda 授权器——哪怕它的输入输出格式和通用 Lambda 函数不一样,SAM 早就针对这类场景做了适配支持。

核心配置方式

在 SAM 模板里,你可以通过以下步骤定义并关联 Lambda 授权器:

  • 先用 AWS::Serverless::Function 定义授权器对应的 Lambda 函数,和普通 Lambda 的配置逻辑一致,指定代码路径、运行时、权限等;
  • 在 API Gateway 的配置中,通过 Auth 字段关联这个授权器,还能自定义身份来源(比如请求头、查询参数)、验证规则等。

简单示例模板

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  # 定义Lambda授权器函数
  MyAuthFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: auth/
      Handler: app.lambdaHandler
      Runtime: nodejs20.x
      Policies:
        - AWSLambdaBasicExecutionRole

  # 关联授权器的API Gateway
  MyApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      Auth:
        DefaultAuthorizer: MyAuth
        Authorizers:
          MyAuth:
            FunctionArn: !GetAtt MyAuthFunction.Arn
            Identity:
              Header: Authorization
              ValidationExpression: ^Bearer [A-Za-z0-9-_.]+$

本地调试支持

和普通 Lambda 一样,你也能用 sam local invoke 测试授权器的逻辑。只需要提前构造一个符合授权器格式的事件 JSON(比如包含 type、methodArn、authorizationToken 字段),然后执行命令:

sam local invoke MyAuthFunction -e auth-event.json

总的来说,SAM 完全覆盖了 Lambda 授权器从开发、调试到部署的全流程,不用因为它是特殊 Lambda 就换工具。

内容的提问来源于stack exchange,提问作者Johnny Petro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 01:02:07