Un error cuando llamo a una función Lambda a través de API Gateway
Vayamos a Amazon API Gateway…
Para ser más claros, cuando digo error, indica Internal Server Error (Error interno del servidor), usando las herramientas de desarrollo del navegador podemos ver que es una respuesta 500.
En mi caso, la API no tenía los permisos necesarios para llamar a la lambda para invocar la función, como resultado, vi el error 500 desde la puerta de enlace de la API.
Saltemos y podemos echar un vistazo más profundo debajo del capó.
En Recursos, he creado un recurso secundario en la raíz. En el recurso secundario, también agregué/creé un método Get.
A continuación, bajemos a Stages. He creado una etapa de prueba, la seleccionaré y luego seleccionaré Stage variables (Variables de etapa). Agregaré una variable de etapa, el Name (Nombre) será VarFunction y el Value (Valor) se llamará prueba, todo en minúsculas para evitar confusiones, no olvide presionar la marca de verificación para guardar.
A continuación, volveremos a los recursos, desde la raíz, seleccione acciones, seleccione crear un nuevo recurso.
Debemos proporcionar un nombre (para este ejemplo, simplemente usaré la prueba de nombre) para el nombre del recurso, luego seleccione crear el recurso.
Con el recurso de prueba creado, seleccionaré acciones y seleccionaré para crear un método, para el tipo seleccionaré GET del menú desplegable, no olvide seleccionar la marca de verificación para guardar.
–
A continuación, queremos asegurarnos de seleccionar el tipo de integración de la función Lambda. Seleccione la región de Lambdba que corresponda a su caso de uso. Bajo la función Lambda, usaremos la variable de etapa que configuramos desde arriba, Seleccione guardar.
Después de seleccionar Save (Guardar), verá un cuadro emergente con información para Add (Agregar) permiso a la función Lambda. He ofuscado parte de la información que es específica de mi cuenta/configuración de AWS, pero la suya será similar.
El comando debe ejecutarse desde la AWS CLI, recuerde actualizar/cambiar la función: para que coincida con el nombre de su función Lambda.
El último paso es regresar a la puerta de enlace de la API de AWS e implementar la API.