

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.

# AWS::Serverless::HttpApi
<a name="sam-resource-httpapi"></a>

Crée une API HTTP Amazon API Gateway, qui vous permet de créer RESTful APIs avec une latence et des coûts inférieurs à ceux de REST APIs. Pour plus d'informations, consultez la section [Working with HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html) dans le *guide du développeur d'API Gateway*.

Nous vous recommandons d'utiliser CloudFormation des hooks ou des politiques IAM pour vérifier que les ressources API Gateway sont associées à des autorisateurs afin de contrôler l'accès à celles-ci.

Pour plus d'informations sur l'utilisation CloudFormation des hooks, consultez la section [Enregistrement des hooks](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/registering-hook-python.html) dans le *guide de l'utilisateur de la CloudFormation CLI* et dans le [apigw-enforce-authorizer](https://github.com/aws-cloudformation/aws-cloudformation-samples/tree/main/hooks/python-hooks/apigw-enforce-authorizer/) GitHub référentiel.

Pour plus d'informations sur l'utilisation de politiques IAM, veuillez consulter [Exiger que les routes d'API disposent d'une autorisation](https://docs.aws.amazon.com/apigateway/latest/developerguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-require-authorization) dans le *Guide du développeur API Gateway*.

**Note**  
Lorsque vous déployez vers AWS CloudFormation, vos AWS SAM ressources sont AWS SAM transformées en CloudFormation ressources. Pour de plus amples informations, veuillez consulter [CloudFormation Ressources générées pour AWS SAM](sam-specification-generated-resources.md).

## Syntaxe
<a name="sam-resource-httpapi-syntax"></a>

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

### YAML
<a name="sam-resource-httpapi-syntax.yaml"></a>

```
Type: AWS::Serverless::HttpApi
Properties:
  [AccessLogSettings](#sam-httpapi-accesslogsettings): [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings)
  [Auth](#sam-httpapi-auth): HttpApiAuth
  [CorsConfiguration](#sam-httpapi-corsconfiguration): String | HttpApiCorsConfiguration
  [DefaultRouteSettings](#sam-httpapi-defaultroutesettings): [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)
  [DefinitionBody](#sam-httpapi-definitionbody): JSON
  [DefinitionUri](#sam-httpapi-definitionuri): String | HttpApiDefinition
  [Description](#sam-httpapi-description): String
  [DisableExecuteApiEndpoint](#sam-httpapi-disableexecuteapiendpoint): Boolean
  [Domain](#sam-httpapi-domain): HttpApiDomainConfiguration
  [FailOnWarnings](#sam-httpapi-failonwarnings): Boolean
  Name: String
  PropagateTags: Boolean
  [RouteSettings](#sam-httpapi-routesettings): [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)
  [StageName](#sam-httpapi-stagename): String
  [StageVariables](#sam-httpapi-stagevariables): [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables)
  [Tags](#sam-httpapi-tags): Map
```

## Propriétés
<a name="sam-resource-httpapi-properties"></a>

 `AccessLogSettings`   <a name="sam-httpapi-accesslogsettings"></a>
Les paramètres pour la journalisation des accès dans une étape.  
*Type :* [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings)` propriété d'une `AWS::ApiGatewayV2::Stage` ressource.

 `Auth`   <a name="sam-httpapi-auth"></a>
Configure l'autorisation pour le contrôle de l'accès à votre API HTTP API Gateway.  
Pour plus d'informations, consultez la section [Contrôle de l'accès au protocole HTTP APIs avec les autorisateurs JWT](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) dans le guide du *développeur d'API Gateway*.  
*Type :* [HttpApiAuth](sam-property-httpapi-httpapiauth.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `CorsConfiguration`   <a name="sam-httpapi-corsconfiguration"></a>
Gère le partage de ressources entre origines (CORS) pour tous vos API Gateway HTTP. APIs Spécifiez le domaine à autoriser en tant que chaîne ou spécifiez un objet `HttpApiCorsConfiguration`. Notez que CORS nécessite AWS SAM de modifier votre définition OpenAPI. CORS ne fonctionne donc que si `DefinitionBody` la propriété est spécifiée.  
Pour plus d'informations, consultez la [Configuration CORS pour une API HTTP](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) dans le *Guide du développeur API Gateway*.  
Il `CorsConfiguration` est défini à la fois dans une définition OpenAPI et au niveau de la propriété, puis AWS SAM fusionne les deux sources de configuration avec les propriétés prioritaires. Si cette propriété est définie sur `true`, alors toutes les origines sont autorisées.
*Type* : Chaîne \$1 [HttpApiCorsConfiguration](sam-property-httpapi-httpapicorsconfiguration.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `DefaultRouteSettings`   <a name="sam-httpapi-defaultroutesettings"></a>
Les paramètres d'acheminement par défaut pour cette API HTTP. Ces paramètres s'appliquent à tous les acheminements sauf s'ils sont remplacés par le paramètre `RouteSettings` pour certains acheminements.  
*Type :* [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)` propriété d'une `AWS::ApiGatewayV2::Stage` ressource.

 `DefinitionBody`   <a name="sam-httpapi-definitionbody"></a>
La définition OpenAPI qui décrit votre API HTTP. Si vous ne spécifiez pas a `DefinitionUri` ou a`DefinitionBody`, AWS SAM génère un `DefinitionBody` pour vous en fonction de la configuration de votre modèle.  
*Type* : JSON  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est similaire à celle `[Body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-body)` d'une `AWS::ApiGatewayV2::Api` ressource. Si certaines propriétés sont fournies, vous AWS SAM pouvez y insérer du contenu ou le modifier `DefinitionBody` avant qu'il ne soit transmis à CloudFormation. Les propriétés incluent le type `Auth` et le type `EventSource` HttpApi de la `AWS::Serverless::Function` ressource correspondante.

 `DefinitionUri`   <a name="sam-httpapi-definitionuri"></a>
L'URI Amazon Simple Storage Service (Amazon S3), le chemin d'accès au fichier local ou l'objet d'emplacement de la définition OpenAPI qui définit l'API HTTP. L'objet Amazon S3 auquel cette propriété fait référence doit être un fichier de définition OpenAPI valide. Si vous ne spécifiez pas a `DefinitionUri` ou n'`DefinitionBody`êtes pas spécifié, AWS SAM génère un `DefinitionBody` pour vous en fonction de la configuration de votre modèle.  
Si vous fournissez un chemin d'accès au fichier local, le modèle doit passer par le flux de travail qui inclut le fichier `sam deploy` ou la commande `sam package` pour que la définition soit correctement transformée.  
Les fonctions intrinsèques ne sont pas prises en charge dans les fichiers de OpenApi définition externes auxquels vous faites référence`DefinitionUri`. Pour importer une OpenApi définition dans le modèle, utilisez la `DefinitionBody` propriété avec la [transformation Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html).  
*Type* : Chaîne \$1 [HttpApiDefinition](sam-property-httpapi-httpapidefinition.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est similaire à celle `[BodyS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-bodys3location)` d'une `AWS::ApiGatewayV2::Api` ressource. Les propriétés imbriquées d'Amazon S3 sont nommées différemment.

 `Description`   <a name="sam-httpapi-description"></a>
Description de la ressource d'API HTTP.  
Lorsque vous spécifiez`Description`, la OpenApi définition de la ressource d'API HTTP AWS SAM sera modifiée en définissant le `description` champ. Les scénarios suivants entraînent une erreur :  
+ La `DefinitionBody` propriété est spécifiée avec le `description` champ défini dans la définition de l'API ouverte. Cela entraîne un conflit de `description` champ qui AWS SAM ne sera pas résolu.
+ La `DefinitionUri` propriété est spécifiée : elle AWS SAM ne modifiera pas une définition d'API ouverte extraite d'Amazon S3.
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `DisableExecuteApiEndpoint`   <a name="sam-httpapi-disableexecuteapiendpoint"></a>
Spécifie si les clients peuvent appeler votre API à l'aide du point de terminaison `execute-api` par défaut `https://{api_id}.execute-api.{region}.amazonaws.com`. Par défaut, les clients peuvent appeler votre API avec le point de terminaison par défaut. Pour exiger que les clients utilisent uniquement un nom de domaine personnalisé pour appeler votre API, désactivez le point de terminaison par défaut.  
Pour utiliser cette propriété, vous devez spécifier la `DefinitionBody` propriété au lieu de la `DefinitionUri` propriété ou définir `x-amazon-apigateway-endpoint-configuration` avec `disableExecuteApiEndpoint` dans votre définition OpenAPI.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est similaire à celle `[ DisableExecuteApiEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint)` d'une `AWS::ApiGatewayV2::Api` ressource. Il est transmis directement à la propriété `disableExecuteApiEndpoint` d'une extension `[ x-amazon-apigateway-endpoint-configuration](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html)`, qui est ajoutée à la propriété ` [ Body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-body)` d'une ressource `AWS::ApiGatewayV2::Api`.

 `Domain`   <a name="sam-httpapi-domain"></a>
Configure un domaine personnalisé pour cette API HTTP API Gateway.  
*Type :* [HttpApiDomainConfiguration](sam-property-httpapi-httpapidomainconfiguration.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `FailOnWarnings`   <a name="sam-httpapi-failonwarnings"></a>
Spécifie si la création d'API HTTP doit être annulée (`true`) ou non (`false`) lorsqu'un avertissement est rencontré. La valeur par défaut est `false`.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[FailOnWarnings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings)` propriété d'une `AWS::ApiGatewayV2::Api` ressource.

`Name`  <a name="sam-httpapi-name"></a>
Nom de la ressource d'API HTTP.  
Lorsque vous le spécifiez`Name`, AWS SAM il modifiera la définition OpenAPI de la ressource d'API HTTP en définissant le `title` champ. Les scénarios suivants entraînent une erreur :  
+ La `DefinitionBody` propriété est spécifiée avec le `title` champ défini dans la définition de l'API ouverte. Cela entraîne un conflit de `title` champ qui AWS SAM ne sera pas résolu.
+ La `DefinitionUri` propriété est spécifiée : elle AWS SAM ne modifiera pas une définition d'API ouverte extraite d'Amazon S3.
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

`PropagateTags`  <a name="sam-httpapi-propagatetags"></a>
Indiquez s'il faut ou non transmettre les balises de la propriété `Tags` aux ressources [AWS::Serverless::HttpApi](sam-specification-generated-resources-httpapi.md) que vous avez générées. Spécifiez `True` pour la propagation des balises dans vos ressources générées.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*Par défaut* : `False`  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `RouteSettings`   <a name="sam-httpapi-routesettings"></a>
Les paramètres d'acheminement par acheminement pour cette API HTTP. Pour plus d'informations, consultez la section [Travailler avec des routes pour le protocole HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) dans le *guide du développeur d'API Gateway*.  
*Type :* [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)` propriété d'une `AWS::ApiGatewayV2::Stage` ressource.

 `StageName`   <a name="sam-httpapi-stagename"></a>
Le nom de l'étape d'API. Si aucun nom n'est spécifié, AWS SAM utilise le `$default` stage d'API Gateway.  
*Type* : chaîne  
*Obligatoire* : non  
*Par défaut* : \$1default  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[StageName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename)` propriété d'une `AWS::ApiGatewayV2::Stage` ressource.

 `StageVariables`   <a name="sam-httpapi-stagevariables"></a>
Mappage qui définit les variables de l'étape. Les noms de variables peuvent comporter des caractères alphanumériques et des caractères de soulignement. Les valeurs doivent correspondre à [A-Za-Z0-9-.\$1\$1 :/ ? \$1&=,] \$1.  
*Type* : [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[StageVariables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables)` propriété d'une `AWS::ApiGatewayV2::Stage` ressource.

 `Tags`   <a name="sam-httpapi-tags"></a>
Un mappage (chaîne à chaîne) qui spécifie les balises à ajouter à cette étape API Gateway. Les clés peuvent comporter de 1 à 128 caractères Unicode de longueur et ne peuvent pas être précédée du préfixe `aws:`. Les caractères suivants sont acceptés : l'ensemble des lettres Unicode, les chiffres, les espaces, `_`, `.`, `/`, `=`, `+` et `-`. Les valeurs de balise doivent comporter de 1 à 256 caractères Unicode en longueur.  
*Type*: carte (map)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.  
*Remarques supplémentaires* : La `Tags` propriété nécessite de AWS SAM modifier votre définition OpenAPI, de sorte que les balises ne sont ajoutées que si la `DefinitionBody` propriété est spécifiée ; aucune balise n'est ajoutée si la propriété est spécifiée. `DefinitionUri` AWS SAM ajoute automatiquement un `httpapi:createdBy:SAM` tag. Les balises sont également ajoutées à la ressource `AWS::ApiGatewayV2::Stage` et à la ressource `AWS::ApiGatewayV2::DomainName` (si le `DomainName` est spécifié).

## Valeurs renvoyées
<a name="sam-resource-httpapi-return-values"></a>

### Réf
<a name="sam-resource-httpapi-return-values-ref"></a>

Lorsque vous transmettez l'ID logique de cette ressource à la fonction intrinsèque `Ref`, `Ref` renvoie l'ID API de la ressource sous-jacente `AWS::ApiGatewayV2::Api`, par exemple, `a1bcdef2gh`.

Pour plus d'informations sur l'utilisation de la fonction `Ref`, consultez [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) dans le *Guide de l'utilisateur AWS CloudFormation *. 

## Exemples
<a name="sam-resource-httpapi--examples"></a>

### Simple HttpApi
<a name="sam-resource-httpapi--examples--simple-httpapi"></a>

L'exemple suivant montre le minimum nécessaire pour configurer un point de terminaison d'API HTTP soutenu par une fonction Lambda. Cet exemple utilise l'API HTTP par défaut qui AWS SAM crée.

#### YAML
<a name="sam-resource-httpapi--examples--simple-httpapi--yaml"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Description: AWS SAM template with a simple API definition
Resources:
  ApiFunction:
    Type: AWS::Serverless::Function
    Properties:
      Events:
        ApiEvent:
          Type: HttpApi
      Handler: index.handler
      InlineCode: |
        def handler(event, context):
            return {'body': 'Hello World!', 'statusCode': 200}
      Runtime: python3.7
Transform: AWS::Serverless-2016-10-31
```

### HttpApi avec Auth
<a name="sam-resource-httpapi--examples--httpapi-with-auth"></a>

L'exemple suivant montre comment configurer l'autorisation sur les points de terminaison d'API HTTP.

#### YAML
<a name="sam-resource-httpapi--examples--httpapi-with-auth--yaml"></a>

```
Properties:
  FailOnWarnings: true
  Auth:
    DefaultAuthorizer: OAuth2
    Authorizers:
      OAuth2:
        AuthorizationScopes:
          - scope4
        JwtConfiguration:
          issuer: "https://www.example.com/v1/connect/oauth2"
          audience:
            - MyApi
        IdentitySource: "$request.querystring.param"
```

### HttpApi avec définition OpenAPI
<a name="sam-resource-httpapi--examples--httpapi-with-openapi-definition"></a>

L'exemple suivant montre comment ajouter une définition OpenAPI au modèle.

Notez que toutes AWS SAM les intégrations Lambda manquantes sont renseignées pour les HttpApi événements faisant référence à cette API HTTP. AWS SAM ajoute également tous les chemins manquants auxquels les HttpApi événements font référence.

#### YAML
<a name="sam-resource-httpapi--examples--httpapi-with-openapi-definition--yaml"></a>

```
Properties:
  FailOnWarnings: true
  DefinitionBody:
    info:
      version: '1.0'
      title:
        Ref: AWS::StackName
    paths:
      "/":
        get:
          security:
          - OpenIdAuth:
            - scope1
            - scope2
          responses: {}
    openapi: 3.0.1
    securitySchemes:
      OpenIdAuth:
        type: openIdConnect
        x-amazon-apigateway-authorizer:
          identitySource: "$request.querystring.param"
          type: jwt
          jwtConfiguration:
            audience:
            - MyApi
            issuer: https://www.example.com/v1/connect/oidc
          openIdConnectUrl: https://www.example.com/v1/connect/oidc/.well-known/openid-configuration
```

### HttpApi avec paramètres de configuration
<a name="sam-resource-httpapi--examples--httpapi-with-configuration-settings"></a>

L'exemple suivant montre comment ajouter des configurations d'API HTTP et des configurations d'étape au modèle.

#### YAML
<a name="sam-resource-httpapi--examples--httpapi-with-configuration-settings--yaml"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Parameters:
  StageName:
    Type: String
    Default: Prod
    
Resources:
  HttpApiFunction:
    Type: AWS::Serverless::Function
    Properties:
      InlineCode: |
          def handler(event, context):
              import json
              return {
                  "statusCode": 200,
                  "body": json.dumps(event),
              }
      Handler: index.handler
      Runtime: python3.7
      Events:
        ExplicitApi: # warning: creates a public endpoint
          Type: HttpApi
          Properties:
            ApiId: !Ref HttpApi
            Method: GET
            Path: /path
            TimeoutInMillis: 15000
            PayloadFormatVersion: "2.0"
            RouteSettings:
              ThrottlingBurstLimit: 600

  HttpApi:
    Type: AWS::Serverless::HttpApi
    Properties:
      StageName: !Ref StageName
      Tags:
        Tag: Value
      AccessLogSettings:
        DestinationArn: !GetAtt AccessLogs.Arn
        Format: $context.requestId
      DefaultRouteSettings:
        ThrottlingBurstLimit: 200
      RouteSettings:
        "GET /path":
          ThrottlingBurstLimit: 500 # overridden in HttpApi Event
      StageVariables:
        StageVar: Value
      FailOnWarnings: true

  AccessLogs:
    Type: AWS::Logs::LogGroup

Outputs:
  HttpApiUrl:
    Description: URL of your API endpoint
    Value:
      Fn::Sub: 'https://${HttpApi}.execute-api.${AWS::Region}.${AWS::URLSuffix}/${StageName}/'
  HttpApiId:
    Description: Api id of HttpApi
    Value:
      Ref: HttpApi
```

# HttpApiAuth
<a name="sam-property-httpapi-httpapiauth"></a>

Configurez l'autorisation pour contrôler l'accès à votre API HTTP Amazon API Gateway.

Pour plus d'informations sur la configuration de l'accès au protocole HTTP APIs, consultez la section [Contrôle et gestion de l'accès à une API HTTP dans API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-access-control.html) dans le *guide du développeur d'API Gateway*.

## Syntaxe
<a name="sam-property-httpapi-httpapiauth-syntax"></a>

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

### YAML
<a name="sam-property-httpapi-httpapiauth-syntax.yaml"></a>

```
  [Authorizers](#sam-httpapi-httpapiauth-authorizers): OAuth2Authorizer | LambdaAuthorizer
  [DefaultAuthorizer](#sam-httpapi-httpapiauth-defaultauthorizer): String
  [EnableIamAuthorizer](#sam-httpapi-httpapiauth-enableiamauthorizer): Boolean
```

## Propriétés
<a name="sam-property-httpapi-httpapiauth-properties"></a>

 `Authorizers`   <a name="sam-httpapi-httpapiauth-authorizers"></a>
Le mécanisme d'autorisation utilisé pour contrôler l'accès à votre API API Gateway.  
*Type* : [OAuth2Autorisateur \$1 [LambdaAuthorizer](sam-property-httpapi-lambdaauthorizer.md)](sam-property-httpapi-oauth2authorizer.md)  
*Obligatoire* : non  
*Par défaut* : aucun  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.  
*Remarques supplémentaires* : AWS SAM ajoute les autorisateurs à la définition d'OpenAPI.

 `DefaultAuthorizer`   <a name="sam-httpapi-httpapiauth-defaultauthorizer"></a>
Spécifiez l'autorisation par défaut à utiliser pour autoriser les appels d'API vers votre API API Gateway. Vous pouvez spécifier `AWS_IAM` en tant que mécanisme d'autorisation par défaut si `EnableIamAuthorizer` est défini sur `true`. Sinon, spécifiez un mécanisme d'autorisation que vous avez défini dans `Authorizers`.  
*Type* : chaîne  
*Obligatoire* : non  
*Par défaut* : aucun  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `EnableIamAuthorizer`   <a name="sam-httpapi-httpapiauth-enableiamauthorizer"></a>
Spécifiez si l'autorisation IAM doit être utilisée pour la route API.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

## Exemples
<a name="sam-property-httpapi-httpapiauth--examples"></a>

### OAuth Autorisateur 2.0
<a name="sam-property-httpapi-httpapiauth--examples--oauth-2.0-authorizer"></a>

OAuth Exemple d'autorisateur 2.0

#### YAML
<a name="sam-property-httpapi-httpapiauth--examples--oauth-2.0-authorizer--yaml"></a>

```
Auth:
  Authorizers:
    OAuth2Authorizer:
      AuthorizationScopes:
        - scope1
        - scope2
      JwtConfiguration:
        issuer: "https://www.example.com/v1/connect/oauth2"
        audience:
          - MyApi
      IdentitySource: "$request.querystring.param"
  DefaultAuthorizer: OAuth2Authorizer
```

### Mécanisme d'autorisation IAM
<a name="sam-property-httpapi-httpapiauth--examples--iam-authorizer"></a>

Exemple de mécanisme d'autorisation IAM

#### YAML
<a name="sam-property-httpapi-httpapiauth--examples--iam-authorizer--yaml"></a>

```
Auth:
  EnableIamAuthorizer: true
  DefaultAuthorizer: AWS_IAM
```

# LambdaAuthorizer
<a name="sam-property-httpapi-lambdaauthorizer"></a>

Configurez un autorisateur Lambda pour contrôler l'accès à votre API HTTP Amazon API Gateway à l'aide d'une fonction. AWS Lambda 

Pour plus d'informations et des exemples, consultez la section [Working with AWS Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html) dans le *guide du développeur d'API Gateway*.

## Syntaxe
<a name="sam-property-httpapi-lambdaauthorizer-syntax"></a>

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

### YAML
<a name="sam-property-httpapi-lambdaauthorizer-syntax.yaml"></a>

```
  [AuthorizerPayloadFormatVersion](#sam-httpapi-lambdaauthorizer-authorizerpayloadformatversion): String
  EnableFunctionDefaultPermissions: Boolean
  [EnableSimpleResponses](#sam-httpapi-lambdaauthorizer-enablesimpleresponses): Boolean
  [FunctionArn](#sam-httpapi-lambdaauthorizer-functionarn): String
  [FunctionInvokeRole](#sam-httpapi-lambdaauthorizer-functioninvokerole): String
  [Identity](#sam-httpapi-lambdaauthorizer-identity): LambdaAuthorizationIdentity
```

## Propriétés
<a name="sam-property-httpapi-lambdaauthorizer-properties"></a>

 `AuthorizerPayloadFormatVersion`   <a name="sam-httpapi-lambdaauthorizer-authorizerpayloadformatversion"></a>
Spécifie le format de la charge utile envoyée à un autorisateur Lambda API HTTP. Requis pour les autorisations Lambda API HTTP.  
Cela est transmis à la section `authorizerPayloadFormatVersion`Section d'un `x-amazon-apigateway-authorizer` dans la section `securitySchemes` d'une définition OpenAPI.  
*Valeurs valides* : `1.0` ou `2.0`  
*Type* : chaîne  
*Obligatoire* : oui  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `EnableFunctionDefaultPermissions`   <a name="sam-httpapi-lambdaauthorizer-enablefunctiondefaultpermissions"></a>
Par défaut, la ressource d'API HTTP n'est pas autorisée à appeler le mécanisme d'autorisation Lambda. Spécifiez cette propriété comme `true` pour créer automatiquement des autorisations entre votre ressource d'API HTTP et votre mécanisme d'autorisation Lambda.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*Valeur par défaut* : `false`  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `EnableSimpleResponses`   <a name="sam-httpapi-lambdaauthorizer-enablesimpleresponses"></a>
Spécifie si un autorisateur Lambda renvoie une réponse dans un format simple. Par défaut, un autorisateur Lambda doit renvoyer une politique Gestion des identités et des accès AWS (IAM). Si cette option est activée, l'autorisateur Lambda peut renvoyer une valeur booléenne au lieu d'une politique IAM.  
Cela est transmis à la section `enableSimpleResponses` d'un `x-amazon-apigateway-authorizer` dans la section `securitySchemes` d'une définition OpenAPI.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `FunctionArn`   <a name="sam-httpapi-lambdaauthorizer-functionarn"></a>
L’Amazon Resource Name (ARN) de la fonction Lambda qui procure l’autorisation pour l’API.  
Cela est transmis à la section `authorizerUri` d'un `x-amazon-apigateway-authorizer` dans la section `securitySchemes` d'une définition OpenAPI.  
*Type* : chaîne  
*Obligatoire* : oui  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `FunctionInvokeRole`   <a name="sam-httpapi-lambdaauthorizer-functioninvokerole"></a>
L'ARN du rôle IAM qui possède les informations d'identification requises pour que la passerelle API Gateway appelle la fonction de mécanisme d'autorisation. Spécifiez ce paramètre si la stratégie basée sur les ressources de votre fonction n'accorde pas l'autorisation `lambda:InvokeFunction` API Gateway.  
Cela est transmis à la section `authorizerCredentials` d'un `x-amazon-apigateway-authorizer` dans la section `securitySchemes` d'une définition OpenAPI.  
Pour plus d'informations, consultez [Création d'un mécanisme d'autorisation Lambda](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html#http-api-lambda-authorizer.example-create) dans le *Guide du développeur API Gateway*.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `Identity`   <a name="sam-httpapi-lambdaauthorizer-identity"></a>
Spécifie une `IdentitySource` dans une demande de mécanisme d'autorisation entrante.  
Cela est transmis à la section `identitySource` d'un `x-amazon-apigateway-authorizer` dans la section `securitySchemes` d'une définition OpenAPI.  
*Type :* [LambdaAuthorizationIdentity](sam-property-httpapi-lambdaauthorizationidentity.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

## Exemples
<a name="sam-property-httpapi-lambdaauthorizer--examples"></a>

### LambdaAuthorizer
<a name="sam-property-httpapi-lambdaauthorizer--examples--lambdaauthorizer"></a>

LambdaAuthorizer exemple

#### YAML
<a name="sam-property-httpapi-lambdaauthorizer--examples--lambdaauthorizer--yaml"></a>

```
Auth:
  Authorizers:
    MyLambdaAuthorizer:
      AuthorizerPayloadFormatVersion: 2.0
      FunctionArn:
        Fn::GetAtt:
          - MyAuthFunction
          - Arn
      FunctionInvokeRole:
        Fn::GetAtt:
          - LambdaAuthInvokeRole
          - Arn
      Identity:
        Headers:
          - Authorization
```

# LambdaAuthorizationIdentity
<a name="sam-property-httpapi-lambdaauthorizationidentity"></a>

La propriété Use peut être utilisée pour spécifier un IdentitySource dans une demande entrante pour un autorisateur Lambda. Pour plus d'informations sur les sources d'identité, consultez [Sources d'identité](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html#http-api-lambda-authorizer.identity-sources) dans le *Guide du développeur API Gateway*.

## Syntaxe
<a name="sam-property-httpapi-lambdaauthorizationidentity-syntax"></a>

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

### YAML
<a name="sam-property-httpapi-lambdaauthorizationidentity-syntax.yaml"></a>

```
  [Context](#sam-httpapi-lambdaauthorizationidentity-context): List
  [Headers](#sam-httpapi-lambdaauthorizationidentity-headers): List
  [QueryStrings](#sam-httpapi-lambdaauthorizationidentity-querystrings): List
  [ReauthorizeEvery](#sam-httpapi-lambdaauthorizationidentity-reauthorizeevery): Integer
  [StageVariables](#sam-httpapi-lambdaauthorizationidentity-stagevariables): List
```

## Propriétés
<a name="sam-property-httpapi-lambdaauthorizationidentity-properties"></a>

 `Context`   <a name="sam-httpapi-lambdaauthorizationidentity-context"></a>
Convertit les chaînes de contexte données en une liste d'expressions de mappage au format `$context.contextString`.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `Headers`   <a name="sam-httpapi-lambdaauthorizationidentity-headers"></a>
Convertit les en-têtes en une liste d'expressions de mappage au format `$request.header.name`.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `QueryStrings`   <a name="sam-httpapi-lambdaauthorizationidentity-querystrings"></a>
Convertit les chaînes de demandes données en une liste d'expressions de mappage au format `$request.querystring.queryString`.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `ReauthorizeEvery`   <a name="sam-httpapi-lambdaauthorizationidentity-reauthorizeevery"></a>
Période time-to-live (TTL), en secondes, qui indique la durée pendant laquelle API Gateway met en cache les résultats de l'autorisateur. Si vous définissez une valeur supérieure à 0, API Gateway met en cache les réponses du mécanisme d'autorisation. La valeur maximale est 3 600 ou 1 heure.  
*Type* : entier  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `StageVariables`   <a name="sam-httpapi-lambdaauthorizationidentity-stagevariables"></a>
Convertit les variables d'étapes données en une liste d'expressions de mappage au format `$stageVariables.stageVariable`.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

## Exemples
<a name="sam-property-httpapi-lambdaauthorizationidentity--examples"></a>

### LambdaRequestIdentity
<a name="sam-property-httpapi-lambdaauthorizationidentity--examples--lambdarequestidentity"></a>

Exemple d'identité de demande Lambda

#### YAML
<a name="sam-property-httpapi-lambdaauthorizationidentity--examples--lambdarequestidentity--yaml"></a>

```
Identity:
  QueryStrings:
    - auth
  Headers:
    - Authorization
  StageVariables:
    - VARIABLE
  Context:
    - authcontext
  ReauthorizeEvery: 100
```

# OAuth2Authorizer
<a name="sam-property-httpapi-oauth2authorizer"></a>

Définition d'un autorisateur OAuth 2.0, également connu sous le nom d'autorisateur JSON Web Token (JWT).

Pour plus d'informations, consultez la section [Contrôle de l'accès au protocole HTTP APIs avec les autorisateurs JWT](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) dans le guide du *développeur d'API Gateway*.

## Syntaxe
<a name="sam-property-httpapi-oauth2authorizer-syntax"></a>

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

### YAML
<a name="sam-property-httpapi-oauth2authorizer-syntax.yaml"></a>

```
  [AuthorizationScopes](#sam-httpapi-oauth2authorizer-authorizationscopes): List
  [IdentitySource](#sam-httpapi-oauth2authorizer-identitysource): String
  [JwtConfiguration](#sam-httpapi-oauth2authorizer-jwtconfiguration): Map
```

## Propriétés
<a name="sam-property-httpapi-oauth2authorizer-properties"></a>

 `AuthorizationScopes`   <a name="sam-httpapi-oauth2authorizer-authorizationscopes"></a>
Liste des étendues d'autorisation pour cet autorisateur.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `IdentitySource`   <a name="sam-httpapi-oauth2authorizer-identitysource"></a>
Expression de source d'identité pour ce mécanisme d'autorisation.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `JwtConfiguration`   <a name="sam-httpapi-oauth2authorizer-jwtconfiguration"></a>
Configuration JWT pour ce mécanisme d'autorisation.  
Cela est transmis à la section `jwtConfiguration` d'un `x-amazon-apigateway-authorizer` dans la section `securitySchemes` d'une définition OpenAPI.  
Les propriétés `audience` sont insensibles aux majuscules `issuer` et minuscules et peuvent être utilisées soit en minuscules comme dans OpenAPI, soit en majuscules et comme dans. `Issuer` `Audience` [AWS::ApiGatewayV2::Authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html) 
*Type*: carte (map)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

## Exemples
<a name="sam-property-httpapi-oauth2authorizer--examples"></a>

### OAuth Autorisateur 2.0
<a name="sam-property-httpapi-oauth2authorizer--examples--oauth-2.0-authorizer"></a>

OAuth Exemple d'autorisateur 2.0

#### YAML
<a name="sam-property-httpapi-oauth2authorizer--examples--oauth-2.0-authorizer--yaml"></a>

```
Auth:
  Authorizers:
    OAuth2Authorizer:
      AuthorizationScopes:
        - scope1
      JwtConfiguration:
        issuer: "https://www.example.com/v1/connect/oauth2"
        audience:
          - MyApi
      IdentitySource: "$request.querystring.param"
  DefaultAuthorizer: OAuth2Authorizer
```

# HttpApiCorsConfiguration
<a name="sam-property-httpapi-httpapicorsconfiguration"></a>

Gérez le partage de ressources entre origines (CORS) pour votre protocole HTTP. APIs Spécifiez le domaine à autoriser en tant que chaîne ou spécifiez un dictionnaire avec une configuration Cors supplémentaire. REMARQUE : Cors a besoin de SAM pour modifier votre définition d'OpenAPI. Cela ne fonctionne donc qu'avec les éléments en OpenApi ligne définis dans la propriété. `DefinitionBody`

Pour plus d'informations sur CORS, consultez la [Configuration CORS pour une API HTTP](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) dans le *Guide du développeur API Gateway*.

Remarque : S'il HttpApiCorsConfiguration est défini à la fois dans OpenAPI et au niveau des propriétés, il les AWS SAM fusionne avec les propriétés prioritaires.

## Syntaxe
<a name="sam-property-httpapi-httpapicorsconfiguration-syntax"></a>

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

### YAML
<a name="sam-property-httpapi-httpapicorsconfiguration-syntax.yaml"></a>

```
  [AllowCredentials](#sam-httpapi-httpapicorsconfiguration-allowcredentials): Boolean
  [AllowHeaders](#sam-httpapi-httpapicorsconfiguration-allowheaders): List
  [AllowMethods](#sam-httpapi-httpapicorsconfiguration-allowmethods): List
  [AllowOrigins](#sam-httpapi-httpapicorsconfiguration-alloworigins): List
  [ExposeHeaders](#sam-httpapi-httpapicorsconfiguration-exposeheaders): List
  [MaxAge](#sam-httpapi-httpapicorsconfiguration-maxage): Integer
```

## Propriétés
<a name="sam-property-httpapi-httpapicorsconfiguration-properties"></a>

 `AllowCredentials`   <a name="sam-httpapi-httpapicorsconfiguration-allowcredentials"></a>
Spécifie si les informations d’identification sont incluses dans la demande CORS.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `AllowHeaders`   <a name="sam-httpapi-httpapicorsconfiguration-allowheaders"></a>
Représente une collection d'en-têtes autorisés.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `AllowMethods`   <a name="sam-httpapi-httpapicorsconfiguration-allowmethods"></a>
Représente une collection de méthodes HTTP autorisées.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `AllowOrigins`   <a name="sam-httpapi-httpapicorsconfiguration-alloworigins"></a>
Représente une collection d'origines autorisées.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `ExposeHeaders`   <a name="sam-httpapi-httpapicorsconfiguration-exposeheaders"></a>
Représente une collection d'en-têtes exposés.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `MaxAge`   <a name="sam-httpapi-httpapicorsconfiguration-maxage"></a>
Nombre de secondes pendant lesquelles le navigateur doit mettre en cache les résultats de la demande de contrôle en amont.  
*Type* : entier  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

## Exemples
<a name="sam-property-httpapi-httpapicorsconfiguration--examples"></a>

### HttpApiCorsConfiguration
<a name="sam-property-httpapi-httpapicorsconfiguration--examples--httpapicorsconfiguration"></a>

Exemple de configuration Cors API HTTP.

#### YAML
<a name="sam-property-httpapi-httpapicorsconfiguration--examples--httpapicorsconfiguration--yaml"></a>

```
CorsConfiguration:
  AllowOrigins:
    - "https://example.com"
  AllowHeaders:
    - x-apigateway-header
  AllowMethods:
    - GET
  MaxAge: 600
  AllowCredentials: true
```

# HttpApiDefinition
<a name="sam-property-httpapi-httpapidefinition"></a>

Un document OpenAPI définissant l'API.

## Syntaxe
<a name="sam-property-httpapi-httpapidefinition-syntax"></a>

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

### YAML
<a name="sam-property-httpapi-httpapidefinition-syntax.yaml"></a>

```
  [Bucket](#sam-httpapi-httpapidefinition-bucket): String
  [Key](#sam-httpapi-httpapidefinition-key): String
  [Version](#sam-httpapi-httpapidefinition-version): String
```

## Propriétés
<a name="sam-property-httpapi-httpapidefinition-properties"></a>

 `Bucket`   <a name="sam-httpapi-httpapidefinition-bucket"></a>
Nom du compartiment Amazon S3 dans lequel le fichier OpenAPI est stocké.  
*Type* : chaîne  
*Obligatoire* : oui  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[Bucket](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-bucket)` propriété du type de `AWS::ApiGatewayV2::Api` `BodyS3Location` données.

 `Key`   <a name="sam-httpapi-httpapidefinition-key"></a>
La clé Amazon S3 du fichier OpenAPI.  
*Type* : chaîne  
*Obligatoire* : oui  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[Key](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-key)` propriété du type de `AWS::ApiGatewayV2::Api` `BodyS3Location` données.

 `Version`   <a name="sam-httpapi-httpapidefinition-version"></a>
Pour les objets versionnés, la version du fichier OpenAPI.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[Version](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-version)` propriété du type de `AWS::ApiGatewayV2::Api` `BodyS3Location` données.

## Exemples
<a name="sam-property-httpapi-httpapidefinition--examples"></a>

### Exemple de définition d'Uri
<a name="sam-property-httpapi-httpapidefinition--examples--definition-uri-example"></a>

Exemple de définition d'API

#### YAML
<a name="sam-property-httpapi-httpapidefinition--examples--definition-uri-example--yaml"></a>

```
DefinitionUri:
  Bucket: sam-s3-demo-bucket-name
  Key: mykey-name
  Version: 121212
```

# HttpApiDomainConfiguration
<a name="sam-property-httpapi-httpapidomainconfiguration"></a>

Configure un domaine personnalisé pour une API.

## Syntaxe
<a name="sam-property-httpapi-httpapidomainconfiguration-syntax"></a>

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

### YAML
<a name="sam-property-httpapi-httpapidomainconfiguration-syntax.yaml"></a>

```
  [BasePath](#sam-httpapi-httpapidomainconfiguration-basepath): List
  [CertificateArn](#sam-httpapi-httpapidomainconfiguration-certificatearn): String
  [DomainName](#sam-httpapi-httpapidomainconfiguration-domainname): String
  [EndpointConfiguration](#sam-httpapi-httpapidomainconfiguration-endpointconfiguration): String
  [MutualTlsAuthentication](#sam-httpapi-httpapidomainconfiguration-mutualtlsauthentication): [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication)
  [OwnershipVerificationCertificateArn](#sam-httpapi-httpapidomainconfiguration-ownershipverificationcertificatearn): String
  [Route53](#sam-httpapi-httpapidomainconfiguration-route53): Route53Configuration
  [SecurityPolicy](#sam-httpapi-httpapidomainconfiguration-securitypolicy): String
```

## Propriétés
<a name="sam-property-httpapi-httpapidomainconfiguration-properties"></a>

 `BasePath`   <a name="sam-httpapi-httpapidomainconfiguration-basepath"></a>
Une liste des chemins de base à configurer avec le nom de domaine Amazon API Gateway.  
*Type* : liste  
*Obligatoire* : non  
*Par défaut* : /  
*CloudFormation compatibilité* : cette propriété est similaire à celle `[ApiMappingKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html#cfn-apigatewayv2-apimapping-apimappingkey)` d'une `AWS::ApiGatewayV2::ApiMapping` ressource. AWS SAM crée plusieurs `AWS::ApiGatewayV2::ApiMapping` ressources, une par valeur spécifiée dans cette propriété.

 `CertificateArn`   <a name="sam-httpapi-httpapidomainconfiguration-certificatearn"></a>
Le nom de ressource Amazon (ARN) d'un certificat AWS géré pour le point de terminaison de ce nom de domaine. AWS Certificate Manager est la seule source prise en charge.  
*Type* : chaîne  
*Obligatoire* : oui  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[CertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn)` propriété d'une `AWS::ApiGateway2::DomainName DomainNameConfiguration` ressource.

 `DomainName`   <a name="sam-httpapi-httpapidomainconfiguration-domainname"></a>
Le nom de domaine personnalisé pour votre API dans Amazon API Gateway. Les majuscules ne sont pas prises en charge.  
AWS SAM génère une `AWS::ApiGatewayV2::DomainName` ressource lorsque cette propriété est définie. Pour plus d'informations sur ce scénario, consultez [DomainName la propriété est spécifiée](sam-specification-generated-resources-httpapi.md#sam-specification-generated-resources-httpapi-domain-name). Pour plus d'informations sur CloudFormation les ressources générées, consultez[CloudFormation Ressources générées pour AWS SAM](sam-specification-generated-resources.md).  
*Type* : chaîne  
*Obligatoire* : oui  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-domainname)` propriété d'une `AWS::ApiGateway2::DomainName` ressource.

 `EndpointConfiguration`   <a name="sam-httpapi-httpapidomainconfiguration-endpointconfiguration"></a>
Définit le type de point de terminaison API Gateway à mapper au domaine personnalisé. La valeur de cette propriété détermine la manière dont la `CertificateArn` propriété est mappée CloudFormation.  
La seule valeur valide pour HTTP APIs est`REGIONAL`.  
*Type* : chaîne  
*Obligatoire* : non  
*Par défaut* : `REGIONAL`  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `MutualTlsAuthentication`   <a name="sam-httpapi-httpapidomainconfiguration-mutualtlsauthentication"></a>
La configuration d'authentification de protocole TLS (Transport Layer Security) mutuelle pour un nom de domaine personnalisé.  
*Type :* [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication)` propriété d'une `AWS::ApiGatewayV2::DomainName` ressource.

 `OwnershipVerificationCertificateArn`   <a name="sam-httpapi-httpapidomainconfiguration-ownershipverificationcertificatearn"></a>
 ARN du certificat public que vous avez généré dans pour valider la propriété de votre domaine personnalisé. Obligatoire uniquement lorsque vous configurez le protocole TLS mutuel et que vous précisez un ARN de certificat d'autorité de certification privé ou importé ACM pour le `CertificateArn`.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[OwnershipVerificationCertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn)` propriété du type de `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` données.

 `Route53`   <a name="sam-httpapi-httpapidomainconfiguration-route53"></a>
Définit une configuration Amazon Route 53.  
*Type* : [Route53Configuration](sam-property-httpapi-route53configuration.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `SecurityPolicy`   <a name="sam-httpapi-httpapidomainconfiguration-securitypolicy"></a>
La version TLS de la stratégie de sécurité pour ce nom de domaine.  
La seule valeur valide pour HTTP APIs est`TLS_1_2`.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[SecurityPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy)` propriété du type de `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` données.

## Exemples
<a name="sam-property-httpapi-httpapidomainconfiguration--examples"></a>

### DomainName
<a name="sam-property-httpapi-httpapidomainconfiguration--examples--domainname"></a>

DomainName exemple

#### YAML
<a name="sam-property-httpapi-httpapidomainconfiguration--examples--domainname--yaml"></a>

```
Domain:
  DomainName: www.example.com
  CertificateArn: arn-example
  EndpointConfiguration: REGIONAL
  Route53:
    HostedZoneId: Z1PA6795UKMFR9
  BasePath:
    - foo
    - bar
```

# Route53Configuration
<a name="sam-property-httpapi-route53configuration"></a>

Configure les ensembles d'enregistrements Route53 pour une API.

## Syntaxe
<a name="sam-property-httpapi-route53configuration-syntax"></a>

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

### YAML
<a name="sam-property-httpapi-route53configuration-syntax.yaml"></a>

```
  [DistributionDomainName](#sam-httpapi-route53configuration-distributiondomainname): String
  [EvaluateTargetHealth](#sam-httpapi-route53configuration-evaluatetargethealth): Boolean
  [HostedZoneId](#sam-httpapi-route53configuration-hostedzoneid): String
  [HostedZoneName](#sam-httpapi-route53configuration-hostedzonename): String
  [IpV6](#sam-httpapi-route53configuration-ipv6): Boolean
  Region: String
  SetIdentifier: String
```

## Propriétés
<a name="sam-property-httpapi-route53configuration-properties"></a>

 `DistributionDomainName`   <a name="sam-httpapi-route53configuration-distributiondomainname"></a>
Configure une distribution personnalisée du nom de domaine personnalisé de l'API.  
*Type* : chaîne  
*Obligatoire* : non  
*Par défaut* : utilisez la distribution API Gateway.  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[DNSName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname)` propriété d'une `AWS::Route53::RecordSetGroup AliasTarget` ressource.  
*Remarques supplémentaires* : nom de domaine d'une [CloudFrontdistribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html).

 `EvaluateTargetHealth`   <a name="sam-httpapi-route53configuration-evaluatetargethealth"></a>
Lorsque cela EvaluateTargetHealth est vrai, un enregistrement d'alias hérite de l'état de la AWS ressource référencée, comme un équilibreur de charge Elastic Load Balancing ou un autre enregistrement de la zone hébergée.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[EvaluateTargetHealth](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth)` propriété d'une `AWS::Route53::RecordSetGroup AliasTarget` ressource.  
*Remarques supplémentaires* : vous ne pouvez pas EvaluateTargetHealth définir la valeur true lorsque l'alias cible est une CloudFront distribution.

 `HostedZoneId`   <a name="sam-httpapi-route53configuration-hostedzoneid"></a>
ID de la zone hébergée dans laquelle vous souhaitez créer des enregistrements.  
Spécifiez `HostedZoneName` ou `HostedZoneId`, mais pas les deux. Si plusieurs zones hébergées portent le même nom de domaine, vous devez spécifier la zone hébergée à l'aide de la valeur `HostedZoneId`.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[HostedZoneId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid)` propriété d'une `AWS::Route53::RecordSetGroup RecordSet` ressource.

 `HostedZoneName`   <a name="sam-httpapi-route53configuration-hostedzonename"></a>
Nom de la zone hébergée dans laquelle vous souhaitez créer des enregistrements. Vous devez inclure un point de fin (par exemple, `www.example.com.`) dans le `HostedZoneName`.  
Spécifiez `HostedZoneName` ou `HostedZoneId`, mais pas les deux. Si plusieurs zones hébergées portent le même nom de domaine, vous devez spécifier la zone hébergée à l'aide de la valeur `HostedZoneId`.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[HostedZoneName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename)` propriété d'une `AWS::Route53::RecordSetGroup RecordSet` ressource.

 `IpV6`   <a name="sam-httpapi-route53configuration-ipv6"></a>
Lorsque cette propriété est définie, elle AWS SAM crée une `AWS::Route53::RecordSet` ressource et attribue à [Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-type) `AAAA` la valeur fournie HostedZone.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

`Region`  <a name="sam-httpapi-route53configuration-region"></a>
*Ensembles d'enregistrements de ressources basés sur la latence uniquement* : EC2 région Amazon dans laquelle vous avez créé la ressource à laquelle ce jeu d'enregistrements de ressources fait référence. La ressource est généralement une AWS ressource, telle qu'une EC2 instance ou un équilibreur de charge ELB, à laquelle il est fait référence par une adresse IP ou un nom de domaine DNS, selon le type d'enregistrement.  
Lorsqu'Amazon Route 53 reçoit une requête DNS pour un nom et un type de domaine pour lesquels vous avez créé des ensembles d'enregistrements de ressources de latence, Route 53 sélectionne le jeu d'enregistrements de ressources de latence présentant la latence la plus faible entre l'utilisateur final et la EC2 région Amazon associée. Route 53 renvoie ensuite la valeur associée à l'ensemble d'enregistrements de ressource sélectionné.  
Notez ce qui suit :  
+ Vous pouvez uniquement spécifier un `ResourceRecord` par ensemble d'enregistrements de ressource de latence.
+ Vous ne pouvez créer qu'un seul ensemble d'enregistrements de ressources de latence pour chaque EC2 région Amazon.
+ Vous n'êtes pas obligé de créer des ensembles d'enregistrements de ressources de latence pour toutes les EC2 régions Amazon. Route 53 choisit la région dotée de la meilleure latence parmi les régions pour lesquelles vous créez des ensembles d'enregistrements de ressource de latence.
+ Vous ne pouvez pas créer des ensembles d'enregistrements de ressource sans latence ayant les mêmes valeurs pour les éléments `Name` et `Type` que celles des ensembles d'enregistrements de ressource de latence.
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[ Region](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-region)` propriété d'un type de `AWS::Route53::RecordSetGroup` `RecordSet` données.

`SetIdentifier`  <a name="sam-httpapi-route53configuration-setidentifier"></a>
*Ensembles d'enregistrements de ressource ayant une politique de routage autre que simple :* un identificateur qui se différencie parmi plusieurs ensembles d'enregistrements de ressource ayant la même combinaison de nom et de type, comme plusieurs ensembles d'enregistrements de ressource pondérés nommés acme.example.com ayant un type A. Dans un groupe d'ensembles d'enregistrements de ressource ayant les mêmes nom et type, la valeur `SetIdentifier` doit être unique pour chaque ensemble d'enregistrements de ressource.  
Pour de plus amples informations sur les politiques de routage, veuillez consulter [Choix d'une politique de routage](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) dans le *Guide du développeur Amazon Route 53*.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[ SetIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-setidentifier)` propriété d'un type de `AWS::Route53::RecordSetGroup` `RecordSet` données.

## Exemples
<a name="sam-property-httpapi-route53configuration--examples"></a>

### Exemple de configuration Route 53
<a name="sam-property-httpapi-route53configuration--examples--route-53-configuration-example"></a>

Cet exemple montre comment configurer Route 53.

#### YAML
<a name="sam-property-httpapi-route53configuration--examples--route-53-configuration-example--yaml"></a>

```
Domain:
  DomainName: www.example.com
  CertificateArn: arn-example
  EndpointConfiguration: EDGE
  Route53:
    HostedZoneId: Z1PA6795UKMFR9
    EvaluateTargetHealth: true
    DistributionDomainName: xyz
```