Я разрабатывал приложение для стартера стека GRAND и, преодолев множество препятствий, наконец-то захотел развернуть его и посмотреть, как оно работает.Моя цель - сделать все это на Амазоне.У меня есть интерфейс, работающий корректно, и экземпляр Neo4j, работающий на экземпляре EC2.
Так как стартер стека GRAND использовал Apollo, их веб-сайт предложил использовать Serverless.Я считаю, что проблема, с которой я сталкиваюсь, заключается в отсутствии информации о требуемой структуре папок.У стартера стека GRAND есть папка src, в которой хранятся файлы ядра с пакетом package.json, который находится в каталоге выше.
Serverless говорит, что нужно создать файл serverless.yml в корне, который у меня на один каталог выше исходного,Его содержимое является стандартным:
# serverless.yml
service: apollo-lambda
provider:
name: aws
runtime: nodejs6.10
region: us-west-2
stage: production
functions:
graphql:
# this is formatted as <FILENAME>.<HANDLER>
handler: graphql.graphqlHandler
events:
- http:
path: graphql
method: post
cors: true
Запуск безсерверного развертывания позволяет упаковать файлы, поместить их в корзину S3 и добавить ее в Lambda.Он весит около 10 МБ.Однако, когда я нахожусь в AWS Lambda и пытаюсь запустить тест для созданной функции Lambda, он говорит: «Не удается найти модуль» /var/task/graphql".
Такое ощущение, что он не может получить доступ к моемуnode_modules.У некоторых людей в упакованном zip-файле случайно есть папка для переноса всего, но apollo-lambda.zip, созданный Serverless, этого не делает.Я прекрасно вижу свою корневую структуру.
За последние два дня я потратил много часов на устранение неисправностей, которые, по моему мнению, были сначала 502, а затем 403, пытаясь понять, где я что-то забыл сделать, пока не получилк этому моменту.Буду признателен за любую помощь.
Честно говоря, я просто не уверен, как должна выглядеть структура моей папки при развертывании.Если я переместлю serverless.yml в папку src, у него не будет пакета package.json или папки node_modules