Exemplos de autorizadores do Lambda para o AWS SAM - AWS Serverless Application Model

Exemplos de autorizadores do Lambda para o AWS SAM

O tipo AWS::Serverless::Api de recurso oferece suporte a dois tipos de autorizadores Lambda: autorizadores e TOKEN autorizadores REQUEST. O tipo de recurso AWS::Serverless::HttpApi suporta somente autorizadores REQUEST. Veja a seguir exemplos de cada parâmetro.

Exemplo de TOKEN autorizador Lambda (AWS::Serverless::Api)

Você pode controlar o acesso às suas APIs definindo um autorizador TOKEN Lambda em seu modelo .AWS SAM Para fazer isso, você usa o tipo de ApiAuth dados.

Veja a seguir um exemplo de seção AWS SAM de modelo para um autorizador LambdaTOKEN:

nota

No exemplo a seguir, FunctionRole do SAM é gerado implicitamente.

Resources: MyApi: Type: AWS::Serverless::Api Properties: StageName: Prod Auth: DefaultAuthorizer: MyLambdaTokenAuthorizer Authorizers: MyLambdaTokenAuthorizer: FunctionArn: !GetAtt MyAuthFunction.Arn MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: index.handler Runtime: nodejs12.x Events: GetRoot: Type: Api Properties: RestApiId: !Ref MyApi Path: / Method: get MyAuthFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: authorizer.handler Runtime: nodejs12.x

Para obter mais informações sobre autorizadores do Lambda, consulte Usar autorizadores Lambda do API Gateway no Guia do desenvolvedor do API Gateway.

Exemplo de REQUEST autorizador Lambda (AWS::Serverless::Api)

Você pode controlar o acesso às suas APIs definindo um autorizador REQUEST Lambda em seu modelo .AWS SAM Para fazer isso, você usa o tipo de ApiAuth dados.

Veja a seguir um exemplo de seção AWS SAM de modelo para um autorizador LambdaREQUEST:

Resources: MyApi: Type: AWS::Serverless::Api Properties: StageName: Prod Auth: DefaultAuthorizer: MyLambdaRequestAuthorizer Authorizers: MyLambdaRequestAuthorizer: FunctionPayloadType: REQUEST FunctionArn: !GetAtt MyAuthFunction.Arn Identity: QueryStrings: - auth MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: index.handler Runtime: nodejs12.x Events: GetRoot: Type: Api Properties: RestApiId: !Ref MyApi Path: / Method: get MyAuthFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: authorizer.handler Runtime: nodejs12.x

Para obter mais informações sobre autorizadores do Lambda, consulte Usar autorizadores Lambda do API Gateway no Guia do desenvolvedor do API Gateway.

Exemplo de autorizador Lambda (AWS::Serverless::HttpApi)

Você pode controlar o acesso às suas APIs HTTP definindo um autorizador Lambda em seu modelo AWS SAM. Para fazer isso, você usa o tipo de HttpApiAuth dados.

Veja a seguir um exemplo de seção AWS SAM de modelo para um autorizador Lambda:

Resources: MyApi: Type: AWS::Serverless::HttpApi Properties: StageName: Prod Auth: DefaultAuthorizer: MyLambdaRequestAuthorizer Authorizers: MyLambdaRequestAuthorizer: FunctionArn: !GetAtt MyAuthFunction.Arn FunctionInvokeRole: !GetAtt MyAuthFunctionRole.Arn Identity: Headers: - Authorization AuthorizerPayloadFormatVersion: 2.0 EnableSimpleResponses: true MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: index.handler Runtime: nodejs12.x Events: GetRoot: Type: HttpApi Properties: ApiId: !Ref MyApi Path: / Method: get PayloadFormatVersion: "2.0" MyAuthFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: authorizer.handler Runtime: nodejs12.x