La holgura con la barra de comandos a través de AWS Puerta de enlace API de AWS Lambda (Python frente a Java)

0

Pregunta

Estoy tratando de conectar una Holgura con la barra de comando a una de AWS Lambda (a través de la Puerta de enlace API de AWS).

Yo era capaz de adaptar el ¡Hola, Mundo plano (escrito en Python) en el Lambda sección de tutoriales. Puedo configurar una puerta de enlace API como un disparador, entonces tenía Holgura POST de la barra de comandos de la API de extremo. Yo había manualmente decodificación base64 cuerpo, a continuación, utilizar parse_qs para convertir la cadena de consulta-como el cuerpo del POST en un diccionario, donde entonces yo podría acceder a ella bien.

Mi verdadero Lambda código está en Java, pero he empezado con el java-basic de ejemplo de la aplicación de la Guía de Desarrolladores. He construido la aplicación, subido el frasco, y confirmó el controlador correcto era que se llamaba. Me juego hasta la otra puerta de enlace API y le apuntó con un diferente Holgura con la barra de comandos en la nueva endpoin. Se produce un error.

El registro se parece a:

java.lang.RuntimeException: An error occurred during JSON parsing
Caused by: java.io.UncheckedIOException: com.amazonaws.lambda.thirdparty.com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_OBJECT token
 at [Source: (ByteArrayInputStream); line: 1, column: 1]

Supongo que esto significa que la Holgura es el envío de la misma cadena de consulta-como argumento en el cuerpo del POST, y por alguna razón, algo que está a la espera de JSON de entrada, no sólo el texto. No entiendo por qué Python controlador estaba bien con la construcción de un evento diccionario y hacer de la Lambda de decodificar el cuerpo del POST, mientras que el de Java handler es que nunca llegue a llamar, pero se está muriendo antes de que al intentar deserializar el cuerpo del POST, pensando que es JSON.

Tanto las Lambdas y API pasarelas se han configurado con el habitual valores predeterminados, AFAICT.

amazon-web-services
2021-11-24 01:37:03
1

Mejor respuesta

0

He resuelto el problema por el cambio de uso de la HandlerStream ejemplo. Luego puedo conseguir el "cuerpo" del evento, en Base64.decodeBase64, luego descomprimir el formulario de parámetros con UriParameterMap.analizar.

Yo procesar el texto entrantes que vino de la Holgura barra de comandos y, a continuación, devolver una cadena de JSON que la Holgura espera.

2021-12-05 17:48:35

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................