> > io avevo fatto una breve presentazione in un evento JUG/NOI 3 anni fa:
> >
> >
https://www.1006.org/misc/201806-aws-lambda-java/aws-lambda-java-intro.html
>
> > Poi alla fine ho usato meno lambda di quello che m'aspettavo... Forse
> > perche` sono un po` old-school e la soglia di dire "chi se ne frega, metto
> > su un'altra VM" e` bassa...
>
> C'è da dire che lo scopo di AWS lambda rispetto al resto dell'offerta
> Amazon è un po' complicato da inquadrare.
>
> Come l'ho capita io si tratta di un servizio che dovrebbe consentire
> all'utilizzatore di risparmiare sul costo delle macchine virtuali,
> quando si hanno task che sono discontinui, per i quali, quindi, non è
> necessario avere un server sempre attivo.
>
> Ma questi task, quando servono devono avviarsi rapidamente.
>
> Cosa che rende le macchine virtuali un po' scomode spegnendo e riaccendendo.
>
> Per quanto il processo sia sempre veloce non lo è abbastanza in fase di
> accensione.
>
> Anche nella mi esperienza questo genere di situazione non è molto comune.
>
> Invece, il server che lavora costantemente per la fascia oraria
> lavorativa 8-18 è più comune.
>
> Ma per questo un vm che viene accesa la mattina e spenta la sera in
> automatico è l'approccio più semplice.
Yes, ma per esempio accendere la VM alle 8 e spegnerla` alle 18 e` una
cos che puoi fare con lambda. Altrimenti ti serve un'altra VM con un cron
che fa solo quello :)
Poi un altro use case e` magari un sito statico hostato serverless, tipo S3
che pero` ha qualche elemento dinamico (pensa form di contatto). Quello
quindi puo` essere gestito bene con lambda.
> > Un use case interessante che sto usando e` che funzioni lambda possono
> > essere triggerate da regole simil-cron. Quindi vanno molte bene per eseguire
> > script periodici senza una VM sotto.
>
> E' questo è un caso interessante.
>
> Infatti, ci sono sempre task di lavoro da fare periodicamente per
> gestire un sistema ed il cron è lo strumento più semplice.
>
> Mi piacerebbe sapere che vantaggi hai trovato rispetto al cron classico,
> o se ci sono delle limitazioni.
L'unica limitazione che vedo e` che e` un pelino piu` complicato perche`
devi racchiuderlo tutto in una function call. Non hai il (relativo) lusso di
un /bin/bash con cui lanci svariatissime cose.
P.e. se serve un accesso a Postgres, non e` che ci metti al volo un psql -c,
ma piuttosto devi programmarlo, linkare col driver e` tutto. E` un attimo
meno spontaneo che fare un .sh al volo. Chiaramente forse e` anche
piu` strutturato...
Dalla docu, AWS Lambda supporta: Java, Go, PowerShell, Node.js, C#, Python,
e Ruby. Delle cose semplici tipo start/stop macchine la cosa piu` semplice e`
farle con Python, forse. Certi action sono anche built-in (penso ci sia start macchina,
ma non stop macchina se ricordo bene, p.e.).
Noto ora che c'e` Go, quindi quello potrebbe essere interessante :)
Bye,
Chris.