Hur man Använder CloudWatch Händelser för AWS Automation

0
29

CloudWatch används ofta för att logga behandling och övervakning av din AWS resurser, men det har också kraftfulla verktyg för automatisering från ditt konto. Vi kommer att visa hur man ställer upp och arbetar med CloudWatch Händelser.

Vad Är CloudWatch Händelser?

CloudWatch Händelser är en tjänst från AWS att i princip kartor orsak till effekt med hjälp av åtgärder som sker på ditt konto. Det kan sträcka API händelser, såsom en EC2 exempel stoppa eller ett objekt som laddas upp till en S3 bucket, och skicka dem till andra tjänster som Lambda-funktioner eller meddelanden köer.

Med hjälp av enkla regler, kan du matcha händelser som bygger på den tjänsten som de kom från. Händelser är JSON-objekt som skickas till CloudWatch på grund av åtgärder som sker på ditt konto. Till exempel, en händelse som för att säga upp ett EC2 exempel kan se ut som följande:

{
“version”: “0”,
“id”: “6a7e8feb-b491-4cf7-a9f1-bf3703467718”,
“detalj-type”: “EC2 Exempel Statligt ändra Anmälan”,
“källa”: “aws.ec2”,
“konto”: “111122223333”,
“time”: “2017-12-22T18:43:48Z”,
“regionen”: “usa-west-1”,
“resurser”: [
“arn:aws:ec2:usa-west-1:123456789012:instans/ i-1234567890abcdef0”
],
“detalj”: {
“instans-id”: “jag-1234567890abcdef0”,
“staten”: “avslutade”
}
}

Du kan lyssna till dessa händelser, och skicka dem till andra tjänster, som kallas mål. Dessa kan vara Lambda inbyggda funktioner för att hantera denna nyttolast, en SNS ämne, en SQS kön, eller andra åtgärder som ECS uppgifter och CodePipeline. Med förmågan att vägen till Lambda, kan du programmera in en funktion du skulle vilja göra detta till en mycket användbar funktion för konto automation.

Till exempel, om du ville ha för att köra en ECS uppgift, som foto eller video processing, när ett objekt laddas upp till en S3 bucket, detta kan du uppnå med CloudWatch Händelser helt enkelt. Helt enkelt ställa in evenemanget källa till match PutObject verksamhet, och skicka den händelse att en ECS uppgift för bearbetning.

Massor av andra AWS verktyg kommer att använda CloudWatch händelser också, så att du miight redan har vissa regler som satts upp. Om du använder CodePipeline, den använder en CloudWatch händelse att övervaka källkodsarkiv för förändringar och utlöser CI/CD-ledningen på svar.

Händelser behöver inte utlösas från en åtgärd i ditt konto. Alternativt kan du ställa in evenemanget att köra på en fast tidsintervall, i huvudsak i egenskap av cron av AWS. Du kan använda detta för att schemalägga Lambda-funktioner för att köras automatiskt.

Att ställa Upp en Regel Händelse

Från CloudWatch Console klickar du på “Regler” i menyn och skapa en ny regel.

Om du inte vill att denna händelse ska köras automatiskt ställa in Evenemanget Källa till “Event Mönster.” Du kan välja en tjänst namn här till filter för olika typer av händelser.

För S3, så kan du välja “Objekt Nivån Verksamhet,” och väljer en viss åtgärd, som PutObject. Du kan också välja en särskild hink (eller hinkar) med namn.

På höger, så kan du välja målet. Standardvärde är “Lambda Funktion,” du behöver bara att välja en inbyggd funktion för att hantera händelsen.

För Lambda, den händelse som är godkänd i den händelse variabel. Du kan använda detta för att få tillgång till information om PutObject drift, som en referens till objektet i sig som du kan använda för att komma åt det.

Om du bara testa ut CloudWatch Evenemang, kan du använda en funktion som i det följande att helt enkelt logga händelse som skickas till den. Du hittar Lambda funktion loggar under “Övervakning” – fliken för funktionen.

“use strict”;

exporten.handler = (händelse, sammanhang, återuppringning) => {
konsolen.log(‘LogCloudWatchEvent’);
konsolen.logga in (“Fick händelse:’, JSON.stringify(händelse, null, 2));
återuppringning(null, ‘Klar’);
};

Du, naturligtvis, är inte begränsad till Lambda-funktioner. För mer intensiv beräkna, du kan skicka den händelse att en ECS uppgift, som kan utnyttja den fulla kraften i Fargate och EC2 att köra containrar program.

Andra alternativ finns också, oftast att göra med routing den händelse någon annanstans, till exempel en Kinesis ström, SNS ämne, eller SQS kö.

Reglerna är hanterbar från CloudWatch konsol, inklusive en övervaknings-fliken för att visa statistik för hur ofta regel åberopas.