Функция фиксации AWS Amplify

Я с досадой пытался имитировать функции с помощью AWS ampify.

По какой-то причине они всегда тайм-аут, независимо от того, что я установил для --timeout.

Я недавно наткнулся на решение, подумал, что отправлю его в качестве ответа.

2 ответа

В основном я меняю обработчик с

exports.handler = async (event) => {
к
const mainFunct = async () => {

и вызовите функцию, используя mainFunct(); в конце файла index.js

вы можете установить aws-sdk используя свой терминал и полностью погрузившись в функцию ....\srcкаталог. затем бег \src> npm install missing-modules для тех модулей, которые отсутствуют.

-Просто не забудьте обновить свой .gitignoreчтобы не фиксировать папку node-modules в папке src функции. (Так много файлов...)

Затем просто запустите функцию, как если бы это файл node.js.
C:\path\to\function\src> node index.js

вы также можете добавить выходной файл, который, как я считаю, значительно упрощает чтение и отладку операторов console.log()
C:\path\to\function\src> node index.js > functionOutputFile.json

Пока работает у меня, я ничего не нашел в Интернете об этом...

На веб-сайте Amplify есть много информации о локальном запуске лямбда-функций . Вы можете вызвать функцию напрямую с помощью amplify mock myfunction, или используйте amplify mockс API GraphQL. https://docs.amplify.aws/cli/usage/mock

NB: REST API в настоящее время нельзя имитировать локально.

я использовал amplify function add чтобы создать функцию, я изменил схему своего GraphQL API на прокси-сервер лямбда локально, используя @functionдиректива. https://docs.amplify.aws/cli/graphql-transformer/function

Возможно, вам потребуется настроить вашу функцию с помощью переменных среды. Команда Amplify недавно добавила поддержку через файлы .env,https://docs.amplify.aws/cli/usage/mock#function-mock-environment-variables.

Другие вопросы по тегам