Не могу заставить фантомов работать на AWS лямбда
Я пытаюсь выполнить фантомные сообщения с использованием нод-лямбды и кусочков, которые я нашел в Интернете в основном https://github.com/justengland/phantom-lambda-template
У меня были некоторые проблемы при развертывании узла-лямбды с узлом 43, но ручная установка последнего источника, похоже, помогла в этом отношении.
но теперь у меня проблемы с запуском лямбда-функций. я получил
2016-04-12T16:47:12.133Z 3330adb9-00ce-11e6-9c08-d79a6bc84748 Calling phantom: /var/task/phantomjs [ '/var/task/phantomjs-script.js' ]
2016-04-12T16:47:12.236Z 3330adb9-00ce-11e6-9c08-d79a6bc84748 Error: spawn EACCES
at exports._errnoException (util.js:870:11)
at ChildProcess.spawn (internal/child_process.js:298:11)
Похоже, лямбда не может получить доступ к фантомному двоичному файлу. Есть ли способ, которым я могу дать функции больше прав для этого?
Спасибо
2 ответа
Причиной этой проблемы может быть то, что вы развернули свои локально собранные двоичные файлы в AWS Lambda. Лямбда требует, чтобы его двоичные файлы были скомпилированы для Amazon Linux, иначе она не сможет их выполнить (если вам не повезло).
Если вы вызываете какие-либо исполняемые файлы или используете библиотеки, которые поставляются с двоичными файлами, вам нужно скомпилировать их на машине EC2 с Amazon Linux и использовать результат в вашей функции Lambda. Это очень простой урок.
Если вы уже сделали это, также убедитесь, что используемый вами двоичный файл является исполняемым (вы можете сделать это, вызвав chmod 777 your_executable
). Я думаю, что вы уже сделали это (также phantomjs должен позаботиться об этом в вашем случае), но это основной источник ошибок для EACCES.
Это немного старше, но я только что решил связанную проблему и хочу опубликовать здесь ключевую часть для будущих поколений. В дополнение к тому, что @birnbaum сказал о бинарном файле, который нужно скомпилировать на машине Amazon linux, вам также нужно связать свой развертываемый пакет (zip-файл) на машине linux! Если вы этого не сделаете, среда выполнения сможет найти ваш двоичный файл, но не сможет создать настоящий экземпляр браузера.