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

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplos de autorizadores Lambda para 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 ao seu APIs definindo um TOKEN autorizador 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, o SAM FunctionRole é 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 Lambda, consulte Usar autorizadores APILambda do Gateway no Guia do desenvolvedor do Gateway. API

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

Você pode controlar o acesso ao seu APIs definindo um REQUEST autorizador 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 Lambda, consulte Usar autorizadores APILambda do Gateway no Guia do desenvolvedor do Gateway. API

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

Você pode controlar o acesso ao seu HTTP APIs 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