Exemples de mécanismes d'autorisation Lambda - AWS Serverless Application Model

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemples de mécanismes d'autorisation Lambda

Le type de ressource AWS::Serverless::Api prend en charge deux types de mécanismes d'autorisation Lambda : les mécanismes d'autorisation de TOKEN et les mécanismes d'autorisation de REQUEST. Le type de ressource AWS::Serverless::HttpApi prend uniquement en charge les mécanismes d' autorisation REQUEST. Voici des exemples de chaque type.

Exemples d'autorisation Lambda TOKEN (AWS::Serverless::Api)

Vous pouvez contrôler l'accès à vos API en définissant un TOKEN autorisateur Lambda dans votre modèle. AWS SAM Vous devez pour cela utiliser le type de données ApiAuth.

Voici un exemple de section de AWS SAM modèle pour un autorisateur Lambda TOKEN :

Note

Dans l'exemple suivant, le SAM FunctionRole est généré implicitement.

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

Pour plus d'informations sur les mécanismes d'autorisation Lambda, consultez Utilisation des mécanismes d'autorisation pour les API Gateway Lambda dans le Guide du développeur API Gateway.

Exemples d'autorisation Lambda REQUEST (AWS::Serverless::Api)

Vous pouvez contrôler l'accès à vos API en définissant un REQUEST autorisateur Lambda dans votre modèle. AWS SAM Vous devez pour cela utiliser le type de données ApiAuth.

Voici un exemple de section de AWS SAM modèle pour un autorisateur Lambda REQUEST :

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

Pour plus d'informations sur les mécanismes d'autorisation Lambda, consultez Utilisation des mécanismes d'autorisation pour les API Gateway Lambda dans le Guide du développeur API Gateway.

Exemples d'autorisation Lambda (AWS::Serverless::HttpApi)

Vous pouvez contrôler l'accès à vos API HTTP en définissant un autorisateur Lambda dans votre modèle. AWS SAM Vous devez pour cela utiliser le type de données HttpApiAuth.

Voici un exemple de section de AWS SAM modèle pour un autorisateur 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