O ile mi wiadomo, Amazon Lambda jest bezpaństwowcem funkcja, która jest tworzony dla każdego żądania.
Jeśli wywołasz Lambdę wiele razy, to jest całkiem normalne, że widzisz inicjalizację Spring Boot dla każdego żądania.
Jeśli żądania przychodzą powoli, możliwe jest, że AWS ponownie używa tej samej Lambdy, więc zostanie wykonana tylko jedna inicjalizacja wiosny.
Jeśli żądanie przyjdzie szybko lub równolegle, AWS uruchomi więcej instancji Lambdas, aby dynamicznie skalować. To wyjaśnia, przed czym stoisz.
Myślę, że korzystanie z całej aplikacji Spring jako AWS Lambda nie jest właściwym podejściem. Lambda powinna być funkcją bezpaństwową, którą można szybko utworzyć.
Możesz starać się, aby aplikacja wiosna była jak najmniejsza, aby zmniejszyć czas ładowania i oszczędzać zasoby, jak wyjaśniono w this tutorial.
Witam @Stefan. Zgadzam się na wszystkie te punkty. Myślałem o tym, że nie używam spingu i nie patrzę na rzeczy takie jak iskra, ale myślałem, że może wprowadzić złe praktyki kodowania. Dla kodu, który piszę - wszystko opiera się na kolejce. Czas jest ważny i jest czymś, czym będę świadomy –
Uważam, że jest to zadanie dla programistów Spring Boot, aby zmniejszyć czas potrzebny do wykorzystania w AWS Lambda, w szczególności w połączeniu z bramką API, aby służyć Spring MVC/aplikacjom sieciowym. Zostało to zrobione w świecie Python/Django: http://www.zappa.io –
Jeśli chcesz to zobaczyć, zagłosuj na https://github.com/spring-projects/spring-boot/issues/10136 –