Комментарии 12
Автор предлагает компилировать все у себя на машине, то есть она должна быть очень мощная. И теряется все преимущество aws lambda — написать код прямо в окошке браузера и по одной кнопке задеплоить его без лишних телодвижений.
Автор пишет о создании Lambda-функций на Java и в самом начале статьи говорит о проблемах такого подхода. И потом статья описывает решение этих проблем при помощи компиляции Java-кода в нативный образ.
По поводу "написать код прямо в окошке браузера и по одной кнопке задеплоить его без лишних телодвижений" - это же не JavaScript или Python, вам всё равно нужно было бы собирать jar-файл. Давно работаю с Lambda-функциями на Java и обычно всегда компилирую функцию локально (или в CI) и потом загружаю её в AWS. Так что компиляция в нативный образ не сильно меняет подход к работе.
"Все преимущество lambda" это ресурсы по требованию и экономия, а не 24/7 запущенный сервис. Код в окошке это просто приятный бонус, не более, потому что в любой мало-мальски развитой компании есть CI/CD.
А для чего нужна конкретно в этом примере рефлексия?
Конкретно здесь @RegisterForReflection
помечает DTO классы, которые будут возвращаться запросом из DynamoDB. Подробнее можно почитать в документации Quarkus - https://quarkus.io/guides/writing-native-applications-tips#registering-for-reflection
Зачем нужен медленный вариант если есть быстрый? И почему AWS не может автоматом заграалить код?
Вопросы риторический, но это было бы удобнее для конечных потребителей.
В контексте темы кастоных рантаймов для лябмды там просто запускается в контейнере скомпилированный бинарный файл под линукс. А как этот файл будет получен - скомпилирован граалем или любыми другими компиляторами амазону всё-равно.
В принципе, если задаться целью, то можно построить самому такой CI/CD пайплайн, который будет компилировать вашу лямбда-функцию из исходников в бинарный образ, упаковывать его в нужный для лямбд формат и загружать туда. У нас на проекте сейчас похоже настроено, только пока без грааля :)
https://ase21-industry.hotcrp.com/doc/ase21-industry-paper7.pdf?cap=07ax_GWBvNW-0U
В каком-то виде AliTech Cloud уже это делает
Воркфлоу взаимодействия юзера с системой
Почему бы не "Воркфлоу интэрэкшена юзера виз систем" ?
Вы всерьез считаете подобный workflow адекватным для разработки? То есть вместо быстрого локального запуска предлагается куча медленных приседаний с напрочь отсутствующей возможностью поставить брейкпоинт и отдебажить в IDE? Это даже хуже чем сервера приложений в 2005.
AWS Lambda с Java: быстро и недорого