Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejecución y depuración de recursos locales de Amazon API Gateway
Puede ejecutar o depurar recursos locales de AWS SAM API Gateway, especificados en template.yaml
, mediante la ejecución de una configuración de lanzamiento de VS Code de type=aws-sam
con invokeTarget.target=api
.
nota
API Gateway admite dos tipos de API: REST y HTTP. Sin embargo, la característica API Gateway con el AWS Toolkit for Visual Studio Code solo admite las API de REST. A veces las API HTTP se llaman “API Gateway V2”.
Para ejecutar y depurar recursos de API Gateway locales
-
Elija uno de los siguientes enfoques para crear una configuración de lanzamiento para un recurso de AWS SAM API Gateway:
-
Opción 1: visite el código fuente del controlador (archivo .js, .cs o .py) en su proyecto de AWS SAM, coloque el cursor sobre el controlador de Lambda y elija el CodeLens Agregar configuración de depuración. A continuación, en el menú, elija el elemento marcado como Evento de API.
-
Opción 2: edite
launch.json
y cree una nueva configuración de lanzamiento mediante la sintaxis siguiente.{ "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": {} }
-
-
En el panel Ejecutar de VS Code, elija la configuración de lanzamiento (denominada
myConfig
en el ejemplo anterior). -
(Opcional) Agregue puntos de interrupción al código del proyecto de Lambda.
-
Escriba F5 o seleccione Reproducir en el panel Ejecutar.
-
En el panel de resultados, vea los resultados.
Configuración
Cuando utiliza el valor api
de la propiedad invokeTarget.target
, Toolkit cambia la validación y el comportamiento de la configuración de lanzamiento para admitir un campo 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": {} }
Reemplace los valores del ejemplo de la siguiente manera:
- invokeTarget.logicalId
-
Un recurso de API.
- path
-
La ruta de la API que solicita la configuración de lanzamiento; por ejemplo,
"path": "/hello"
.Debe ser una ruta de API válida resuelta desde el archivo
template.yaml
especificado porinvokeTarget.templatePath
. - httpMethod
-
Uno de los verbos siguientes: “delete”, “get”, “head”, “options”, “patch”, “post”, “put”.
- payload
-
La carga JSON (cuerpo HTTP) para enviar en la solicitud, con la misma estructura y las mismas reglas que el campo lambda.payload.
payload.path
apunta a un archivo que contiene la carga JSON.payload.json
especifica una carga JSON en línea. - headers
-
Mapa opcional de pares nombre-valor, que se utiliza para especificar encabezados HTTP que se incluirán en la solicitud, tal y como se muestra en el siguiente ejemplo.
"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
-
Cadena opcional que establece la propiedad
querystring
de la solicitud; por ejemplo,"querystring": "abc=def&ghi=jkl"
. - AWS
-
Cómo se proporciona la información de conexión de AWS. Para obtener más información, consulte la tabla de propiedades (“aws”) de conexión de AWS en la sección Opciones de configuración para depurar aplicaciones sin servidor.
- sam
-
Procedimiento que sigue AWS SAM CLI para compilar la aplicación. Para obtener más información, consulte la tabla de propiedades (“sam”) de conexión de AWS SAM CLI en la sección Opciones de configuración para depurar aplicaciones sin servidor.