

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.

# Exécution et débogage des ressources locales Amazon API Gateway
<a name="debug-apigateway"></a>

Vous pouvez exécuter ou déboguer les ressources locales d' AWS SAM API Gateway, spécifiées dans`template.yaml`, en exécutant une configuration de lancement VS Code `type=aws-sam` avec le`invokeTarget.target=api`.

**Note**  
API Gateway prend en charge deux types de protocole APIs, REST et HTTP. Cependant, la fonctionnalité API Gateway prend AWS Toolkit for Visual Studio Code uniquement en charge le protocole REST APIs. Parfois, le protocole HTTP APIs est appelé « API Gateway V2 » APIs.

**Pour exécuter et déboguer des ressources API Gateway locales**

1.  Choisissez l'une des méthodes suivantes pour créer une configuration de lancement pour une ressource API Gateway AWS SAM  : 
   + **Option 1 : Accédez** **au code source du gestionnaire (fichier .js, .cs ou .py) de votre AWS SAM projet, survolez le gestionnaire Lambda et choisissez Ajouter une configuration de débogage.** CodeLens Ensuite, dans le menu, choisissez l'élément marqué **API Event**.
   + **Option 2 :** modifiez `launch.json` et créez une nouvelle configuration de lancement à l'aide de la syntaxe suivante.

     ```
     {
       "type": "aws-sam",
       "request": "direct-invoke",
       "name": "myConfig",
       "invokeTarget": {
         "target": "api",
         "templatePath": "n12/template.yaml",
         "logicalId": "HelloWorldFunction"
       },
       "api": {
         "path": "/hello",
         "httpMethod": "post",
         "payload": {
           "json": {}
         }
       }, 
       "sam": {},
       "aws": {}
     }
     ```

1. Dans le panneau VS Code **Run**, choisissez la configuration de lancement (nommée `myConfig` dans l'exemple ci-dessus).

1. (Facultatif) Ajoutez des points d'arrêt à votre code de projet Lambda.

1.  Tapez **F5** ou choisissez **Play** dans le panneau **Exécuter**. 

1. Consultez les résultats dans le volet de sortie. 

## Configuration
<a name="apigateway-configuration"></a>

Lorsque vous utilisez la valeur de propriété `invokeTarget.target` `api`, la boîte à outils modifie la validation et le comportement de la configuration de lancement pour prendre en charge un champ `api`. 

 

```
{
  "type": "aws-sam",
  "request": "direct-invoke",
  "name": "myConfig",
  "invokeTarget": {
    "target": "api",
    "templatePath": "n12/template.yaml",
    "logicalId": "HelloWorldFunction"
  },
  "api": {
    "path": "/hello",
    "httpMethod": "post",
    "payload": {
      "json": {}
    },
    "querystring": "abc=def&qrs=tuv",
    "headers": {
        "cookie": "name=value; name2=value2; name3=value3"
    }
  },
  "sam": {},
  "aws": {}
}
```

Remplacez les valeurs dans l'exemple comme suit :

**invokeTarget.logicalId**  
Ressource d'API.

**path**  
Chemin d'API demandé par la configuration de lancement, par exemple,`"path": "/hello"`.  
Doit être un chemin d'API valide résolu à partir de `template.yaml` spécifié par `invokeTarget.templatePath`.

**httpMethod**  
Un des verbes suivants : « delete », « get », « head », « options », « patch », « post », « put ».

**payload**  
Charge utile JSON (corps HTTP) à envoyer dans la demande, avec la même structure et les mêmes règles que le champ [lambda.payload](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-config-ref.html).  
`payload.path` pointe vers un fichier contenant la charge utile JSON.  
`payload.json` spécifie une charge utile JSON en ligne.

**headers**  
Mappage facultatif de paires nom-valeur que vous utilisez pour spécifier les en-têtes HTTP à inclure dans la demande, comme indiqué dans l'exemple suivant.  

```
"headers": {
     "accept-encoding": "deflate, gzip;q=1.0, *;q=0.5",
     "accept-language": "fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5",
     "cookie": "name=value; name2=value2; name3=value3",
     "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
}
```

**querystring**  
Chaîne facultative qui définit la `querystring` de la demande, par exemple, `"querystring": "abc=def&ghi=jkl"`.

**AWS**  
Comment les informations de AWS connexion sont fournies. Pour plus d'informations, consultez le tableau des **propriétés de AWS connexion (« aws »)** dans la [Options de configuration pour le débogage d'applications sans serveur](serverless-apps-run-debug-config-ref.md) section.

**sam**  
Comment la AWS SAM CLI crée l'application. Pour plus d'informations, consultez le tableau des **propriétés de la CLI AWS SAM (« sam »)** dans la [Options de configuration pour le débogage d'applications sans serveur](serverless-apps-run-debug-config-ref.md) section.