He tenido una antigua función AWS Lambda, que se declaró como síncrona (promesas usadas), la declaración se veía así:
exports.getSong = (event, context, callback) => { } Funcionó según lo previsto. Recientemente, decidí volver a escribirlo usando async/await y, por lo tanto, intenté declarar la función getSong de forma asíncrona, así:
exports.getSong = async (event, context) => { }Y al intentar ejecutar, aparece el siguiente error en su totalidad:
{ "errorType": "Runtime.UserCodeSyntaxError", "errorMessage": "SyntaxError: Unexpected token '.'", "trace": [ "Runtime.UserCodeSyntaxError: SyntaxError: Unexpected token '.'", " at _loadUserApp (/var/runtime/UserFunction.js:98:13)", " at Object.module.exports.load (/var/runtime/UserFunction.js:140:17)", " at Object.<anonymous> (/var/runtime/index.js:43:30)", " at Module._compile (internal/modules/cjs/loader.js:1133:30)", " at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)", " at Module.load (internal/modules/cjs/loader.js:977:32)", " at Function.Module._load (internal/modules/cjs/loader.js:877:14)", " at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)", " at internal/main/run_main_module.js:18:47" ] }No está absolutamente claro cuál es el problema de este mensaje de error, pero al buscar en Google problemas similares y reducir todo, descubrí que el problema es la declaración de la función.
Intenté declarar la función getSong como síncrona y luego ejecutar otra función asíncrona dentro de ella, así:
var anotherAsyncFunction = async () => { } exports.getSong = (event, context, callback) => { anotherAsyncFunction() }Pero luego, me sale el mismo error. Claramente, tiene algo que ver con la declaración de la función asíncrona dentro de Lambda. ¿Cuál podría ser el problema aquí? Gracias.
Me encuentro con un problema similar. para mí fue res.Body?.toString('utf-8') que lambda no pudo entender qué es Body?. Creo que en tu caso deberías hacer lo siguiente:
export const getSong = async (event, context) => { ...} también para quien tenga el mismo problema, la mejor manera de averiguar el motivo es ir a la página de códigos lambda, debería mostrar una X roja en la línea de código