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

Ejemplos de autorizadores de Lambda para AWS SAM

El tipo de recurso AWS::Serverless::Api admite dos tipos de autorizadores de Lambda: TOKEN y REQUEST. Solo el tipo de recurso AWS::Serverless::HttpApi admite los autorizadores REQUEST. A continuación, se incluyen ejemplos de cada tipo.

Ejemplos de autorizadores TOKEN de Lambda (AWS::Serverless::Api)

Puede controlar el acceso a sus API definiendo un autorizador TOKEN Lambda en su plantilla de AWS SAM. Para ello, utilice el tipo de datos ApiAuth.

La siguiente es una sección de plantilla de AWS SAM de ejemplo para un autorizador TOKEN Lambda:

nota

En el siguiente ejemplo, el FunctionRole de SAM se genera implícitamente.

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 obtener más información sobre los autorizadores de Lambda, consulta Uso de autorizadores Lambda de API Gateway en la Guía para desarrolladores de API Gateway.

Ejemplos de autorizadores de Lambda REQUEST (AWS::Serverless::Api)

Puede controlar el acceso a sus API definiendo un autorizador REQUEST Lambda en su plantilla de AWS SAM. Para ello, utilice el tipo de datos ApiAuth.

La siguiente es una sección de plantilla de AWS SAM de ejemplo para un autorizador REQUEST Lambda:

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 obtener más información sobre los autorizadores de Lambda, consulta Uso de autorizadores Lambda de API Gateway en la Guía para desarrolladores de API Gateway.

Ejemplos de autorizadores de Lambda (AWS::Serverless::HttpApi)

Puede controlar el acceso a sus API HTTP definiendo un autorizador Lambda en su plantilla de AWS SAM. Para ello, utilice el tipo de datos HttpApiAuth.

La siguiente es una sección de plantilla de AWS SAM de ejemplo para un 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