Estoy utilizando API Gateway para crear una API REST para comunicarme con un modelo aws sagemaker implementado a través de aws lambda. Cuando pruebo el Método ( Resultados de la prueba del método), mi función lambda devuelve los resultados requeridos. Definitivamente he implementado la API y estoy usando la URL de invocación correcta con el nombre del recurso adjunto (URL de invocación de método ). Finalmente, verifiqué todas las configuraciones de autenticación para esta solicitud de método ( Configuración de autenticación de método). Cuando ingreso la URL de invocación en el navegador o intento llamar a la API REST (desde cloud9 IDE, una aplicación web que estoy desarrollando), aparece este error: {"mensaje":"Falta el token de autenticación"} ( Respuesta de URL )
Mi API es muy simple, solo una solicitud POST, no contiene ningún otro recurso o método. También intenté configurar el método en '/' pero tuve el mismo problema.
Hay muchas personas con este problema, y he pasado un tiempo leyendo publicaciones similares, pero las soluciones se reducen a los problemas que verifiqué anteriormente. ¡Si alguien pudiera ayudar, sería muy apreciado!
Ian
Para el beneficio de cualquier otra persona que sea tan tonta como yo, la otra razón por la que puede recibir este error es que está solicitando una URL que no está configurada.
Por ejemplo, configuró una API de proxy en / que envía solicitudes a su backend, y la ruta a eso es https://mumblemumble/prod , y solicita https://mumblemumble/prod en lugar de https://mumblemumble/prod/your/resource , obtendrá este error.
Configuró el recurso de API Gateway con el método POST y cuando usa la consola de API Gateway para probar, la consola maneja la configuración del método HTTP en POST . Sin embargo, cuando presiona directamente la URL de invocación desde el navegador, se utiliza el método GET .
API Gateway devuelve de forma predeterminada la respuesta {"message":"Missing Authentication Token"} para los métodos no definidos o para las rutas que no están presentes, como se indica aquí
Si API Gateway no puede procesar una solicitud entrante, devuelve al cliente una respuesta de error sin reenviar la solicitud al backend de integración. De forma predeterminada, la respuesta de error contiene un breve mensaje descriptivo de error. Por ejemplo, si intenta llamar a una operación en un recurso API no definido, recibirá una respuesta de error con el mensaje { "message": "Missing Authentication Token" }.
Utilice el método POST para probar su API. Esto se puede hacer usando la línea de comandos ( curl ) o usando Postman .
Otra posible razón es que el código de la función Lambda arroja un error. Tuve un problema similar y resultó ser un TypeError en mi código python. Puede consultar los registros de CloudWatch para obtener más información.