Нет никаких ограничений по характеру и интенсивности использования сервиса (учитываются расход памяти и время)
Дадада. Просто попробуйте сделать на Lambda задачу, которая выполняется полчаса.
Даже в официальной документации сказано, что есть ограничения.
Выделяется микровм, заливается код и только потом передается управление handler функции?
Более-менее так, да. Холодный старт у лямбды (сравнительно) долгий — несколько секунд, если я не путаю.
Насколько сложно делать лямбды на языках, не входящих в список поддерживаемых из коробки?
Зависит от того, насколько вы готовы писать свой рантайм. Я этого не делал, но примеры, которые я видел, сложными не были — там все сводится к HTTP-интерфейсу.
Для компилируемых языков выглядит довольно просто, спасибо!
Ну, я как-то глядел на рантайм для .net — было и правда весьма просто. Основная сложность, как всегда, в том, что не все тонкости взаимодействия описаны, но это уже мелочи.
О, раз у вас, судя по всему, есть опыт.
Я тут лениво попиливаю замену почившему сохабру, которая состоит из двух компонентов: запускаемый раз в минуту скрейпер постов (уже давно готово и работает) и веб-морда к этому всему (ну и постгрес для хранения БД). Разумно ли для чего-то из этого использовать лямбду, или, если у меня уже, скажем, есть машина в Хецнере, лучше использовать её, а AWS использовать только для RDS?
Считать надо, если вкратце.
С одной стороны, веб-морду на Лямбде делать странно (ну, на мой вкус); публичную, по крайней мере (если для себя одного, то можно и на Лямбде). С другой стороны, если сайт будет снаружи AWS, то можно влететь на стоимость data transfer (из RDS), да и просто latency будет выше.
Но это все умозрительно, я такие задачи не решал.
Делать морду на Lambda и мне кажется странноватым по первому прочтению. Ну, я пока создал бесплатный инстанс постгреса, посмотрим, что там будет по трафику.
Надо запросы оптимизировать, или хотя бы какой-то кеш в памяти держать. Вытаскивать раз в минуту 120 тысяч рядов для того, чтобы отобрать из них 10-20-100, которые надо обновить, почти физически неприятно. Но, увы, я не знаю постгрес и SQL достаточно, чтобы адекватно сформулировать соответствующий запрос.
А зачем вам RDS? DynamoDB будет достаточно и бесплатно
Мне предыдущий автор дал снапшот его БД, а там уже был постгрес. Да и я постгрес хоть как-то знаю.
Ну и если вы для Haskell хотите рантайм, то вот — Haskell runtime for AWS Lambda.
Спасибо!
Чем хорошо репутацию иметь — можно даже язык не уточнять.
Многое зависит от того, есть ли официальный runtime. Мы много пишем лямбд на расте, runtime удобный (https://github.com/awslabs/aws-lambda-rust-runtime) и потому писать просто :)
Детальный разбор AWS Lambda