Tutorial: Pianifica AWS Lambda le funzioni utilizzando EventBridge - Amazon EventBridge

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: Pianifica AWS Lambda le funzioni utilizzando EventBridge

Puoi configurare una regola per l'esecuzione di una funzione AWS Lambda in basa a una pianificazione. Questo tutorial mostra come usare AWS Management Console o the AWS CLI per creare la regola. Se desideri utilizzare la versione AWS CLI ma non l'hai ancora installata, consulta Installazione, aggiornamento e disinstallazione della AWS CLI versione 2.

Per quanto riguarda le pianificazioni, EventBridge non fornisce una precisione di secondo livello nelle espressioni di pianificazione. La risoluzione più alta che utilizza un'espressione Cron è un minuto. A causa della natura distribuita dei servizi di destinazione EventBridge e dei servizi di destinazione, può verificarsi un ritardo di diversi secondi tra l'attivazione della regola pianificata e il momento in cui il servizio di destinazione esegue la risorsa di destinazione.

Fase 1: Creazione di una funzione Lambda

Crea una funzione Lambda per registrare gli eventi pianificati.

Per creare una funzione Lambda
  1. Apri la AWS Lambda console all'indirizzo https://console.aws.amazon.com/lambda/.

  2. Selezionare Create function (Crea funzione).

  3. Scegli Author from scratch (Crea da zero).

  4. Digitare un nome e una descrizione per la funzione Lambda. Ad esempio, denomina la funzione LogScheduledEvent.

  5. Per le altre opzioni, mantieni il valore predefinito e scegli Crea funzione.

  6. Nella scheda Codice della pagina della funzione, fai doppio clic su index.js.

  7. Sostituisci il codice esistente con il seguente.

    'use strict'; exports.handler = (event, context, callback) => { console.log('LogScheduledEvent'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
  8. Selezionare Deploy (Distribuisci).

Passaggio 2: creare una regola

Crea una regola per eseguire la funzione Lambda creata in Passaggio 1 in base a una pianificazione.

È possibile utilizzare la console o il AWS CLI per creare la regola. Per utilizzare il AWS CLI, devi prima concedere alla regola il permesso di richiamare la tua funzione Lambda. Puoi quindi creare la regola e aggiungere la funzione Lambda come target.

Per creare una regola (console)
  1. Apri la EventBridge console Amazon all'indirizzo https://console.aws.amazon.com/events/.

  2. Nel pannello di navigazione, scegli Regole.

  3. Scegli Create rule (Crea regola).

  4. Inserire un nome e una descrizione per la regola.

    Una regola non può avere lo stesso nome di un'altra regola nella stessa regione e sullo stesso router di eventi.

  5. Per Select event bus (Seleziona bus di eventi), scegli il bus di eventi che desideri associare a questa regola. Se la regola deve cercare eventi corrispondenti provenienti dal tuo account, seleziona Bus di eventi predefiniti di AWS . Quando un servizio di AWS nell'account emette un evento, passa sempre al bus di eventi predefinito dell'account.

  6. Per Rule type (Tipo di regola), scegli Schedule (Pianifica).

  7. Seleziona Successivo.

  8. In Modello di pianificazione, scegli Una pianificazione che viene eseguita a una frequenza regolare, ad esempio ogni 10 minuti., immetti 5 e scegli Minuti nell'elenco a discesa.

  9. Seleziona Successivo.

  10. Per Target types (Tipi di destinazione), scegli AWS service (Servizio ).

  11. In Seleziona una destinazione, scegli la funzione Lambda dall'elenco a discesa.

  12. In Funzione, seleziona la funzione Lambda che hai creato nella sezione Passaggio 1: creare una funzione Lambda. In questo esempio, seleziona LogScheduledEvent.

  13. Seleziona Successivo.

  14. Seleziona Successivo.

  15. Rivedi i dettagli della regola e scegli Create rule (Crea regola).

Per creare una regola (AWS CLI)
  1. Per creare una regola che viene eseguita in base a una pianificazione, utilizza il comando put-rule.

    aws events put-rule \ --name my-scheduled-rule \ --schedule-expression 'rate(5 minutes)'

    Quando viene eseguita, questa regola crea un evento e quindi lo invia alle destinazioni. Di seguito è riportato un esempio di evento.

    { "version": "0", "id": "53dc4d37-cffa-4f76-80c9-8b7d4a4d2eaa", "detail-type": "Scheduled Event", "source": "aws.events", "account": "123456789012", "time": "2015-10-08T16:53:06Z", "region": "us-east-1", "resources": [ "arn:aws:events:us-east-1:123456789012:rule/my-scheduled-rule" ], "detail": {} }
  2. Per concedere al EventBridge service principal (events.amazonaws.com) il permesso di eseguire la regola, usa il add-permission comando.

    aws lambda add-permission \ --function-name LogScheduledEvent \ --statement-id my-scheduled-event \ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com \ --source-arn arn:aws:events:us-east-1:123456789012:rule/my-scheduled-rule
  3. Creare il file targets.json con i seguenti contenuti.

    [ { "Id": "1", "Arn": "arn:aws:lambda:us-east-1:123456789012:function:LogScheduledEvent" } ]
  4. Per aggiungere alla regola la funzione Lambda creata in Passaggio 1, utilizza il comando put-targets.

    aws events put-targets --rule my-scheduled-rule --targets file://targets.json

Passaggio 3: verificare la regola

Attendi almeno cinque minuti dopo avere completato il passaggio 2 per verificare che la funzione Lambda è stata richiamata.

Visualizzazione dell'output della funzione Lambda
  1. Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  2. Nel riquadro di navigazione scegli Logs (Log).

  3. Seleziona il nome del gruppo di log per la funzione Lambda (/aws/lambda/function-name).

  4. Seleziona il nome del flusso di log per visualizzare i dati forniti dalla funzione per l'istanza avviata.

Passaggio 4: verificare il corretto completamento del tutorial

Se vedi l'evento Lambda nei CloudWatch log, significa che hai completato con successo questo tutorial. Se l'evento non è presente nei tuoi CloudWatch registri, inizia la risoluzione dei problemi verificando che la regola sia stata creata correttamente e, se la regola sembra corretta, verifica che il codice della tua funzione Lambda sia corretto.

Passaggio 5: eliminare le risorse

Ora è possibile eliminare le risorse create per questo tutorial, a meno che non si voglia conservarle. Eliminando AWS le risorse che non utilizzi più, eviti addebiti inutili sul tuo account. AWS

Per eliminare la/le EventBridge regola/e
  1. Apri la pagina Regole della EventBridge console.

  2. Seleziona la regola che hai creato.

  3. Scegliere Delete (Elimina).

  4. Scegliere Delete (Elimina).

Per eliminare la funzione Lambda
  1. Aprire la pagina Funzioni della console Lambda.

  2. Seleziona la funzione creata.

  3. Scegliere Actions (Operazioni), Delete (Elimina).

  4. Scegli Delete (Elimina).