"Runtime.UserCodeSyntaxError" при попытке объявить asyn c AWS лямбда-функцию - PullRequest
0 голосов
/ 05 августа 2020

У меня была старая AWS лямбда-функция, которая была объявлена ​​как синхронная (использованные обещания), объявление выглядело так:

exports.getSong = (event, context, callback) => { }

Работало, как задумано. Недавно я решил переписать его с помощью async / await и, таким образом, попытался объявить функцию getSong асинхронно, например:

exports.getSong = async (event, context) => { }

И при попытке выполнить я получаю в нем следующую ошибку Totty:

{
  "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"
  ]
}

Из этого сообщения об ошибке совершенно не ясно, в чем проблема, но, поискав в Google похожие проблемы и сузив все, я понял, что проблема заключается в объявлении функции.

Я попытался объявить функцию getSong как синхронную, а затем запустить внутри нее другую асинхронную функцию, например:

var anotherAsyncFunction = async () => { }
exports.getSong = (event, context, callback) => { anotherAsyncFunction() }
    

Но затем я получаю ту же ошибку. Итак, ясно, что это как-то связано с объявлением асинхронной функции внутри Lambda. В чем может быть проблема? Спасибо.

...