AWS & EventBridge - Trigger Orario

Hai mai avuto la necessità di automatizzare attività ripetitive, come l’invio di email di marketing o la generazione di report dovendo prestare attenzione anche all’orario?

In questo post ti voglio spiegare come risolvere il problema sfruttando una Lambda con time trigger in AWS. Le Lambda sono funzioni serverless che vengono eseguite in risposta a un evento. Un time trigger è un evento che viene eseguito a intervalli regolari.

Extra: per chi come arriva dalle Azure Function la definizione risulta totalmente diversa e sicuramente più impegnativa da creare. Tranquilli, nulla di impossibile ed in pochissimi passaggi ti mostrerò come fare!

AWS Console

Prima di entrare nel vivo dei contenuti e cominciare a creare risorse nella propria sottoscrizione AWS ci tengo a darvi un ripasso molto ad alto livello:

EventBridge

La “risorsa chiave” per questo video si nasconde dietro il nome di EventBridge. Grazie ad esso abbiamo la possibilità di definire delle regole orarie.

  • Accedi alla console della tua AWS Lambda.
  • Fai clic su “Aggiungi Trigger”.
  • Seleziona “EventBridge” come origine (EventBridge - CloudWatch Events)
    • Scegliere una regola esistente tramite Existing rules
    • Creare una nuova regola tramite Create a new rule

Il nostro caso di studio corrisponde alla creazione di un regola, quindi selezionando Create a new rule i campi da completare saranno i seguenti

  • Rule Name: nome della regola
  • Rule description: descrizione della regola
  • Rule type: tipologia della regola. Nel nostro caso dovremo scegliere Schedule expression

Ora manca l’ultimo passaggio prima di creare la regola su EventBridge. Di cosa parlo? Semplicemente manca l’orario in cui fare scattare la nostra Lambda. Per farlo dobbiamo definirlo nella casella Schedule expression sfruttando la sintassi Cron expressions reference oppure Rate expressions reference.

Parliamo con un esempio? Scrivendo la regola

CRONDefinizione
cron(0 10 * * ? *)Run at 10:00 am (UTC+0) every day
cron(0 18 ? * MON-FRI *)Run at 6:00 pm (UTC+0) every Monday through Friday
cron(0/5 8-17 ? * MON-FRI *)Run every 5 minutes Monday through Friday between 8:00 am and 5:55 pm (UTC+0)

Ricordatevi di inserire anche cron( … ) nella casella Schedule expression altrimenti non potrete continuare nel salvataggio.

I tre esempi appena proposti sono stati presi dalla documentazione ufficiale AWS alla pagina Cron expressions reference.

Video Tutorial

Se vuoi vedere tutti i passaggi appena descritti, ti consiglio il video tutorial dedicato su BugsInCloud per non perdere altro tempo!