

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 d'autorisateurs Lambda pour AWS SAM
<a name="serverless-controlling-access-to-apis-lambda-authorizer"></a>

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)
<a name="serverless-controlling-access-to-apis-lambda-token-authorizer"></a>

Vous pouvez contrôler l'accès à votre APIs en définissant un `TOKEN` autorisateur Lambda dans votre modèle. AWS SAM Vous devez pour cela utiliser le type de données [ApiAuth](sam-property-api-apiauth.md).

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](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html) dans le *Guide du développeur API Gateway*.

## Exemples d'autorisation Lambda `REQUEST` (AWS::Serverless::Api)
<a name="serverless-controlling-access-to-apis-lambda-request-authorizer"></a>

Vous pouvez contrôler l'accès à votre APIs en définissant un `REQUEST` autorisateur Lambda dans votre modèle. AWS SAM Vous devez pour cela utiliser le type de données [ApiAuth](sam-property-api-apiauth.md).

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](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html) dans le *Guide du développeur API Gateway*.

## Exemples d'autorisation Lambda (AWS::Serverless::HttpApi)
<a name="serverless-controlling-access-to-apis-lambda-authorizer-httpapi"></a>

Vous pouvez contrôler l'accès à votre HTTP APIs en définissant un autorisateur Lambda dans votre modèle. AWS SAM Vous devez pour cela utiliser le type de données [HttpApiAuth](sam-property-httpapi-httpapiauth.md).

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
```