Moduł węzła magazynowania w koszyku S3 dla AWS Lambda

0

Pytanie

Zaprojektowałem funkcji/programu na podstawie nodejs i chcę ją uruchomić na AWS Lambda. Problem w tym, że rozmiar większe niż 50 MB, a AWS Lambda obsługuje bezpośredni kod funkcji rozmiar mniej niż 50 MB.

W zasadzie w moim kodzie rozmiar modułu węzła wynosi 43 MB, a rzeczywisty kod wynosi około 7 MB. Tak więc, czy jest jakiś sposób oddzielić mój moduł hosta od kodu, być może, jeśli uda nam się utrzymać moduły węzła w koszyku S3, a następnie uzyskać do niego dostęp na AWS Lambda? Wszelkie sugestie, które byłyby przydatne. Dziękuję

P. S: Z powodu pewnych problemów z zależnościami nie mogę uruchomić tę funkcję jako obrazu nudziarz z niego, co na Лямбде.

amazon-web-services aws-lambda node.js
2021-11-23 22:10:38
2
1

Jeśli nie chcesz lub nie możesz skorzystać z opakowania Docker, można zarchiwizować swoje node_modules do koszyka S3.

Twój handler (lub moduł, zawierający twój procesor), a następnie można również pobrać archiwum zip i rozpakować pliki w /tmp. Wtedy ty require() twoje moduły stamtąd.

Powyższy opis nie może być dokładne w 100%, ponieważ istnieje wiele sposobów, aby to zrobić. Ale taka jest ogólna idea.

Jest to jedna z metod wdrażania, który zappanarzędzie do wdrażania aplikacji w języku Python/Django w AWS Lambda, popierany na długo przed tym, jak kontenery docker były dozwolone w Lambda.

https://github.com/Miserlou/Zappa/pull/548

2021-11-23 22:49:27
1

Można użyć sondy lambda-warstwy, które idealnie nadają się do danego zastosowania. Jakiś czas temu trzeba było użyć facebook sdk dla jednego z naszych projektów i stworzyliśmy lambda-warstwa do facebook sdk(32 MB), a następnie pakiet wdrażania stał się tylko 4 KB.

To przedstawiono w postaci

Korzystanie z warstw może przyspieszyć wdrażanie aplikacji za pomocą бессерверной modelu aplikacji AWS (AWS SAM) lub бессерверной platformy. Przesuwając zależności czasu wykonywania kodu funkcji na poziom, to może pomóc reduce the overall size of the archive pobrane w trakcie wdrażania.

Jedna funkcja lambda może użyć do five layers. Maksymalny rozmiar wspólną разархивированной funkcji i wszystkich warstw wynosi 250 MB co daleko poza swoje możliwości.

2021-11-24 17:39:02

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................