После изучения часов я обнаружил следующую проблему:
Мои настройки:
- Угловой CLI 6.0.1
- Угловой материал 6.0.2
- Без сервера (+ serverless-webpack 5.1.5, + serverless-apigw-binary)
шаги сборки:
- Сборка (приложение для браузера) -> использование конфигурации CLI по умолчанию
- Сборка сервера SSR с помощью Webpack
- Сборка Lambda-Server и объединение всех источников в безсерверный серверПакет
Пока все хорошо.Все работало, пока я не начал использовать MatBottomSheet.Когда я внедрил эту Службу в свой компонент, мне кажется, что ничего особенного.
Локально проблем не было, служил для разработки (работал).Создание производственной сборки и размещение ее локально также работало.
При развертывании в lambda произошла странная вещь.Развертывание вроде бы в порядке.Но когда я вызвал лямбда-метод через AWS Gateway -> для доступа к приложению.Я получил внутреннюю ошибку сервера.
В лямбда-логах я увидел тайм-аут.(Я пытался изменить время ожидания до 10 с, поэтому установка короткого периода не была проблемой).Обычно на рендеринг всего сайта уходило 70 мс, но это хорошо.
Похоже, что существует бесконечный цикл / тупик или циклический вызов и т. Д., Что угодно в коде материала, когда он упакован без сервера для лямбды.
Потребовалось несколько часов, чтобы выяснить, где была настоящая проблема.Bec.CloudWatch и все другие журналы AWS являются Rly.молчи, когда у тебя тайм-аут.Когда я удалил MatBottomSheet из моего приложения, все снова заработало.
К вашему сведению: мне не пришлось использовать MatBottomSheet напрямую.Впрыскивать его в компонент было достаточно.Импортирование модуля без внедрения службы также работало.
То, что я уже пробовал:
Обычно мой код лямбда-сервера использует expressjs, который заключен в aws-express ..
, поэтому я адаптировал код expressjs -> просто для возврата статических файлов, ничего не рендерив.-> Результат не изменился, я получил тайм-аут.
Следующее, что я попробовал: локальный вызов метода лямбда (без сервера), все работало как ожидалось.
Я использовал те же Nodejsверсия (8.10) локально, которая является той же версией, что и AWS Lambda.-> ошибка тайм-аута ...
Если у кого-то есть идея, как решить эту проблему, это будет действительно здорово.
Мой обходной путь: используйте лямбду без SSR или не используйте лямбду ...
спасибо