GNU/Linux >> Linux Esercitazione >  >> Linux

Come creare un evento in AWS Cloudwatch per attivare una funzione Lambda

Amazon CloudWatch Events descrivono i cambiamenti nelle risorse AWS. Possiamo abbinare gli eventi e indirizzarli a una o più funzioni di destinazione. CloudWatch Events viene a conoscenza delle modifiche operative man mano che si verificano, ad es. se è stata creata una risorsa definita nella regola di Cloudwatch, la regola ne verrebbe a conoscenza e in cambio attiverà una funzione di destinazione.

Prima di procedere e creare una regola evento, comprendiamone le basi.

  1. Eventi :
    Un evento significa che c'è un cambiamento nell'ambiente AWS.
  2. Regole :
    Le regole vengono utilizzate per abbinare l'evento. Qui gli eventi vengono confrontati e verificati.
  3. Obiettivi :
    Qui vengono elaborati gli eventi. Le destinazioni possono includere istanze Amazon EC2, funzioni AWS Lambda, flussi Kinesis, attività Amazon ECS, macchine a stati Step Functions, argomenti Amazon SNS, code Amazon SQS e destinazioni integrate.

In questo articolo creeremo una regola evento che verificherà l'eventuale modifica dello stato EC2 e attiverà una funzione lambda. Se non conosci la funzione Lambda, fai clic qui per crearne 1 per te. Quello che fa Lambda può essere la tua scelta, ma in questo documento ho un Lambda che elimina i volumi EBS inutilizzati. Ho menzionato il codice Lambda in questo articolo. Sei libero di utilizzare anche la tua funzione Lambda.

Prerequisiti

  1. Account AWS (crea se non ne hai uno).
  2. Funzione Lambda.

Cosa faremo?

  1. Accedi ad AWS.
  2. Crea una regola evento Cloudwatch per attivare una funzione Lambda.

Accedi ad AWS

Fai clic qui per accedere alla pagina di accesso di AWS.

Quando premiamo il link sopra, vedremo una pagina web come segue in cui ci viene richiesto di accedere utilizzando i nostri dettagli di accesso.

Una volta effettuato l'accesso al tuo account, vedrai la schermata come segue.

Crea un evento Cloudwatch per attivare una funzione Lambda

Per creare una regola evento Cloudwatch, cerca cloudwatch e fai clic sul risultato per accedere alla dashboard di Cloudwatch.

Nella dashboard di Cloudwatch, fai clic su Regole in Eventi nel pannello di sinistra.

Qui, fai clic su "Crea regola" per creare la tua prima regola per attivare una funzione Lambda nella tua regione.

Seleziona il pulsante di opzione "Modello evento", in Nome servizio seleziona "EC2", seleziona "Notifica di modifica dello stato dell'istanza EC2" per Tipo di evento.

Fai clic su Aggiungi target per aggiungere una funzione Lambda esistente come target e fai clic su "Configura dettagli".

Fai clic qui per imparare a creare una funzione Lambda per te. Trova il seguente codice Lambda di riferimento per te.

Codice Lambda:  Usa questo codice per creare una funzione Lambda se non ne hai 1 nel tuo account.

import boto3
ec2 = boto3.resource('ec2',region_name='eu-west-3')
 
def lambda_handler(event, context):
    for vol in ec2.volumes.all():
        if  vol.state=='available':
            if vol.tags is None:
                vid=vol.id
                v=ec2.Volume(vol.id)
                v.delete()
                print ('EBS Volume Deleted ' +vid)
                continue
            for tag in vol.tags:
                if tag['Key'] == 'Name':
                    value=tag['Value']
                    if value != 'DoNNotDel' and vol.state=='available':
                        vid=vol.id
                        v=ec2.Volume(vol.id)
                        v.delete()
                        print ('EBS Volume Deleted ' +vid) 

Assegna un nome all'evento insieme alla descrizione e fai clic su "Crea regola".

Ciò creerà una regola evento che attiverà una funzione Lambda di destinazione ogni volta che si verifica un cambiamento nello stato delle istanze EC2.

Conclusione

In questo articolo, abbiamo visto come creare una regola evento Cloudwatch che indica la modifica nello stato dell'istanza EC2 e attiva la funzione Lambda quando la regola corrisponde all'evento. Puoi selezionare il target che preferisci.


Linux
  1. Come creare e aggiungere un volume EBS nell'istanza AWS (EC2)

  2. Come inviare i log delle applicazioni Linux ad AWS CloudWatch

  3. Come creare un'istanza RDS su AWS utilizzando Terraform

  4. Come creare un ruolo IAM in AWS utilizzando Terraform

  5. Come creare e chiamare funzioni in Bash

Come creare un'istanza Amazon AWS EC2 utilizzando Python Boto3

Come creare un bucket S3 utilizzando Python Boto3 su AWS

Come creare un argomento SNS e un abbonato su AWS

Come creare una tabella DynamoDB in AWS

Come creare un cluster Kubernetes con AWS CLI

Come utilizzare Cloudformation per creare code SQS su AWS