

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esecuzione e debug delle risorse locali di Amazon API Gateway
<a name="debug-apigateway"></a>

È possibile eseguire o eseguire il debug delle risorse locali di AWS SAM API Gateway, specificate in`template.yaml`, eseguendo una configurazione di avvio di VS Code `type=aws-sam` con. `invokeTarget.target=api`

**Nota**  
API Gateway supporta due tipi di APIs REST e HTTP. Tuttavia, la funzionalità API Gateway supporta AWS Toolkit for Visual Studio Code solo REST APIs. A volte APIs gli HTTP sono chiamati «API Gateway V2" APIs.

**Per l'esecuzione e il debug delle risorse locali di Amazon API Gateway**

1.  Scegli uno dei seguenti approcci per creare una configurazione di avvio per una risorsa API Gateway AWS SAM : 
   + **Opzione 1:** **visita il codice sorgente del gestore (file.js, .cs o .py) nel tuo AWS SAM progetto, passa il mouse sul gestore Lambda e scegli Aggiungi configurazione di debug.** CodeLens **Quindi, nel menu, scegli la voce denominata Evento API.**
   + **Opzione 2:** modifica `launch.json` e crea una nuova configurazione di avvio utilizzando la seguente sintassi.

     ```
     {
       "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. Nel pannello VS Code **Run**, scegli la configurazione di avvio (denominata `myConfig` nell'esempio precedente).

1. (Facoltativo) Aggiungi punti di interruzione al codice del progetto Lambda.

1.  Digita **F5** o scegli **Gioca** nel pannello **Esegui**. 

1. Nel riquadro di output, visualizza i risultati. 

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

Quando utilizzi l'`api` del valore proprietà `invokeTarget.target`, il kit di strumenti modifica la convalida e il comportamento della configurazione di avvio per supportare un campo dell'`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": {}
}
```

Sostituisci i valori nell'esempio come segue:

**invokeTarget.logicalId**  
Una risorsa API

**path**  
Il percorso dell'API richiesto dalla configurazione di avvio, ad esempio `"path": "/hello"`.  
Deve essere un percorso API valido risolto da `template.yaml` specificato da `invokeTarget.templatePath`.

**httpMethod**  
Può essere uno dei seguenti verbi: "delete", "get", "head", "options", "patch", "post", "put".

**payload**  
Il payload JSON (corpo HTTP) da inviare nella richiesta, con la stessa struttura e le stesse regole del campo [lambda.payload](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-config-ref.html).  
`payload.path` punta a un file contenente il payload JSON.  
`payload.json` specifica un payload JSON in linea.

**headers**  
Mappa facoltativa delle coppie nome-valore, che consente di specificare intestazioni HTTP da includere nella richiesta, come mostrato nell'esempio seguente.  

```
"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**  
Stringa facoltativa che imposta la `querystring` della richiesta, ad esempio `"querystring": "abc=def&ghi=jkl"`.

**AWS**  
Come vengono fornite le informazioni sulla AWS connessione. Per ulteriori informazioni, consulta la tabella delle **proprietà della AWS connessione («aws»)** nella [Opzioni di configurazione per il debug di applicazioni serverless](serverless-apps-run-debug-config-ref.md) sezione.

**sam**  
Come la AWS SAM CLI crea l'applicazione. Per ulteriori informazioni, vedere la tabella delle **proprietàAWS SAM CLI («sam»)** nella [Opzioni di configurazione per il debug di applicazioni serverless](serverless-apps-run-debug-config-ref.md) sezione.