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
Puoi eseguire o eseguire il debugAWS SAMRisorse locali di API Gateway, specificate intemplate.yaml
, eseguendo una configurazione di lancio di VS Code ditype=aws-sam
con ilinvokeTarget.target=api
.
Nota
API Gateway supporta due tipi di API, REST e HTTP. Tuttavia, la funzionalità API Gateway conAWS Toolkit for Visual Studio Codesupporta solo API REST. A. volte le API HTTP vengono chiamate "API V2 di API Gateway"
Per l'esecuzione e il debug delle risorse locali di Amazon API Gateway
-
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) nelAWS SAM, passa il mouse sopra il gestore Lambda e scegli ilAggiunta configurazione di debug CodeLens. Quindi, nel menu, scegli l'elemento contrassegnato comeevento API.
-
Opzione 2: Modificare
launch.json
e crea una nuova configurazione di avvio utilizzando la sintassi seguente.{ "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": {} }
-
-
Nel codice VSEseguipannello, scegli la configurazione di lancio (denominata
myConfig
nell'esempio precedente). -
(Facoltativo) Aggiungi punti di interruzione al codice del progetto Lambda.
-
Type (Tipo)F5oppure scegliPlay (Riproduci)nellaEseguiPannello.
-
Nel riquadro di output, visualizza i risultati.
Configurazione
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 dainvokeTarget.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.
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 connessione AWS. Per ulteriori informazioni, consulta la .AWSproprietà connection («aws»)tabella nella tabellaOpzioni di configurazione per il debug di applicazioni serverlessSezione.
- sam
-
Come la CLI AWS SAM costruisce l'applicazione. Per ulteriori informazioni, consulta la .AWSProprietà dell'interfaccia della riga di comando SAM («sam»)tabella nella tabellaOpzioni di configurazione per il debug di applicazioni serverlessSezione.