Z racji tego, że siedzę w chmurach to było tego dużo. Z takich ciekawszych rzeczy to:
- integracja z zewnętrznym systemem, który w momencie zmiany swojego stanu wysyłał nam informację o tej zmianie. Wyglądało to tak, że wiadomość trafiała pod dedykowany endpoint w naszym AWS API Gateway, który następnie wrzucał tą informację na kolejkę AWS SQS, która robiła jako backend store dla lambdy i stamtąd Lambda już sobie pobierała te informacje w batchach i odpowiednio przetwarzała.
- serwis do powiadomień oparty o logi i metryki w CloudWatch i wysyłający powiadomienia na kanał MS Teams
- implementacji wzorca SAGI
- orkiestracja i planowanie prostych zadań administracyjnych jak backupy
- automatyczne tagowanie zasobów tworzonych z poziomu Terraforma/CloudFormation
- obsługa i przetwarzanie plików w locie jak dodawanie watermarków do uploadowanych/tworzonych dokumentów
Generalnie AWS-owe Lambdy, ale też Azure Functions dobrze sobie radzą w takich prostych zadaniach jak wymienione wyżej. Raczej nikt normalny nie buduje logiki aplikacji wyłącznie na Lambdach (choć znam jedną taką osobę, która w ten sposób prawie uwaliła projekt za kilka milionów EUR).
Plusem usług takich jak AWS Lambda czy Azure Functions jest możliwość ich szybkiego napisania i uruchomienia. Jeżeli nie robisz na nich skomplikowanych obliczeń to też wychodzą tanio. Przykładowo Azure Functions do miliona wywołań są za darmo. Można takie lambdy skonfigurować za pomocą cron expressions aby wykonywały się o określonej porze, a korzystając z AWS Step Functions można budować proste procesy biznesowe.
Do tego dochodzą zastosowania DevOpsowe i administracyjne, gdyż devopsi czy admini nie muszą pisać aplikacji, a potem tworzyć serwerów do nich, żeby sobie jakieś rzeczy zautomatyzować. Biorą lambdę piszą kawałek kodu w Node albo Python i gotowe.
Generalnie do prostych zadań jako uzupełnienie tradycyjnie pisanych usług i aplikacji i tam gdzie koszt napisania i utrzymywania tradycyjnej aplikacji ze względu na jej prostotę byłby wysoki, są jak znalazł.