Události Amazon CloudWatch popisují změny ve zdrojích AWS. Můžeme spárovat události a směrovat je k jedné nebo více cílovým funkcím. Události CloudWatch se dozvědí o provozních změnách, jakmile k nim dojde, např. pokud byl vytvořen definovaný zdroj v pravidle Cloudwatch, pravidlo se o něm dozví a na oplátku spustí cílovou funkci.
Než budeme pokračovat a vytvoříme pravidlo události, pojďme si porozumět jeho základům.
- Události :
Událost znamená, že došlo ke změně prostředí AWS. - Pravidla :
Pravidla se používají k přizpůsobení události. Zde se události porovnávají a kontrolují. - Cíle :
Zde jsou zpracovány události. Mezi cíle mohou patřit instance Amazon EC2, funkce AWS Lambda, streamy Kinesis, úlohy Amazon ECS, stavové stroje Step Functions, témata Amazon SNS, fronty Amazon SQS a vestavěné cíle.
V tomto článku vytvoříme pravidlo události, které zkontroluje událost změny stavu EC2 a spustí funkci lambda. Pokud si nejste vědomi funkce Lambda, klikněte sem a vytvořte pro vás 1. Co dělá Lambda, může být vaše volba, ale v tomto dokumentu mám Lambdu, která odstraní nepoužívané objemy EBS. V tomto článku jsem zmínil kód Lambda. Můžete také volně používat svou vlastní funkci Lambda.
Předpoklady
- Účet AWS (vytvořte, pokud jej nemáte).
- Funkce lambda.
Co budeme dělat?
- Přihlaste se do AWS.
- Vytvořte pravidlo události Cloudwatch pro spuštění funkce Lambda.
Přihlášení k AWS
Kliknutím sem přejdete na přihlašovací stránku AWS.
Když klikneme na výše uvedený odkaz, uvidíme následující webovou stránku, kde se musíme přihlásit pomocí našich přihlašovacích údajů.
Jakmile se úspěšně přihlásíte ke svému účtu, zobrazí se následující obrazovka.
Vytvořte událost Cloudwatch pro spuštění funkce Lambda
Chcete-li vytvořit pravidlo události Cloudwatch, vyhledejte cloudwatch a kliknutím na výsledek přejděte na řídicí panel Cloudwatch.
Na hlavním panelu Cloudwatch klikněte na Pravidla v části Události na levém panelu.
Zde klikněte na "Vytvořit pravidlo" a vytvořte své první pravidlo pro spuštění funkce Lambda ve vaší oblasti.
Vyberte přepínač "Vzor události", v části Název služby vyberte "EC2" a jako Typ události vyberte "Oznámení o změně stavu instance EC2".
Klikněte na Přidat cíle, chcete-li přidat existující funkci Lambda jako cíl, a klikněte na "Konfigurovat podrobnosti".
Klikněte sem a zjistěte, jak pro vás vytvořit funkci Lambda. Najděte pro vás následující referenční kód Lambda.
Kód lambda: Pokud na svém účtu nemáte 1, použijte tento kód k vytvoření funkce Lambda.
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)
Pojmenujte událost spolu s popisem a klikněte na "Vytvořit pravidlo".
Tím se vytvoří pravidlo události, které spustí cílovou funkci lambda, kdykoli dojde ke změně stavu instancí EC2.
Závěr
V tomto článku jsme viděli, jak vytvořit pravidlo události Cloudwatch, které označuje změnu stavu instance EC2 a spouští funkci Lambda, když pravidlo odpovídá události. Můžete si vybrat cíl podle svého výběru.