Hoe te Gebruiken CloudWatch Evenementen voor AWS Automatisering

0
175

CloudWatch wordt vaak gebruikt voor het log verwerking en controle van uw AWS middelen, maar het heeft ook krachtige tools voor de automatisering binnen uw account. We zullen zien hoe het opzetten van en werken met CloudWatch Evenementen.

Wat Is CloudWatch Evenementen?

CloudWatch Evenementen is een service van AWS, die in feite kaarten oorzaak naar effect met behulp van acties gebeurt in uw account. Het kan route API gebeurtenissen, zoals een EC2 bijvoorbeeld stoppen of een object dat wordt geüpload naar een S3 bucket, en stuur ze door naar andere diensten, zoals de Lambda functie of berichten wachtrijen.

Met behulp van eenvoudige regels, kunt u overeenkomen met gebeurtenissen die gebaseerd zijn op de service die zij vandaan kwam. Evenementen zijn JSON-objecten verzonden naar CloudWatch door acties gebeurt in uw account. Bijvoorbeeld, een evenement voor het beëindigen van een EC2 instance kan er als volgt uitzien:

{
“versie”: “0”,
“id”: “6a7e8feb-b491-4cf7-a9f1-bf3703467718”,
“detail van het type”: “EC2 Bijvoorbeeld State-change Notification”,
“bron”: “aws.ec2”,
“account”: “111122223333”,
“time”: “2017-12-22T18:43:48Z”,
“regio”: “us-west-1”,
“resources”: [
“arn:aws:ec2:us-west-1:123456789012:aanleg/ ik-1234567890abcdef0”
],
“detail”: {
“sessie-id”: “ik-1234567890abcdef0”,
“state”: “beëindigd”
}
}

U kunt luisteren naar deze gebeurtenissen, en stuur ze door naar andere diensten doelen genoemd. Deze kan worden Lambda ingebouwde functies voor het afhandelen van deze lading, een SNS-onderwerp, SQS wachtrij, of andere acties, zoals ECS taken en CodePipeline. Met de mogelijkheid om de route te Lambda, u kunt het programma welke functionaliteit u wilt, maken dit een zeer handige functie voor rekening en automatisering.

Bijvoorbeeld, als je wilde uitvoeren van een ECS taak, zoals foto-of video processing, wanneer een object wordt geüpload naar een S3 bucket, dit kunt u bereiken met CloudWatch Gebeurtenissen vrij eenvoudig. Eenvoudig instellen van de gebeurtenis bron te passen PutObject activiteiten, en het verzenden van de gebeurtenis naar een ECS taak voor de verwerking.

Tal van andere AWS tools gebruiken CloudWatch evenementen, zodat u miight al hebben een aantal regels opgesteld. Als u CodePipeline, het maakt gebruik van een CloudWatch evenement voor het bewaken van de broncode repository voor veranderingen, en het activeren van de CI/CD-pijplijn in de reactie.

Evenementen hoeven niet te worden geactiveerd vanuit een actie in uw account. Als alternatief, kunt u de gebeurtenis te draaien op een vast tijdsinterval, in wezen handelen als de cron van AWS. U kunt gebruik maken van deze plannen van de Lambda functie voor het automatisch uitvoeren.

Het opzetten van een Evenement Regel

Van de CloudWatch Console, klik op “Regels” in de zijbalk en het maken van een nieuwe regel.

Tenzij u wilt dat deze gebeurtenis automatisch uit te voeren, stelt u de Bron van Gebeurtenis naar Gebeurtenis Patroon.” U kunt kiezen voor een naam van de service hier te filteren voor verschillende typen gebeurtenissen.

Voor de S3, kunt u kiezen voor “Object Niveau Activiteiten” en selecteer een bepaald type activiteit, zoals PutObject. U kunt ook kiezen voor een specifieke emmer (of emmers) met de naam.

Aan de rechterkant kunt u de doelgroep. It defaults to “Lambda Functie,” je hoeft alleen maar te selecteren een functie ingebouwd om de gebeurtenis te verwerken.

Voor Lambda, de gebeurtenis is geslaagd in de event-variabele. U kunt dit gebruiken om toegang te krijgen tot informatie over de PutObject operatie, zoals een verwijzing naar het object zelf, die u kunt gebruiken om toegang te krijgen.

Als je gewoon het testen van CloudWatch Gebeurtenissen, kunt u gebruik maken van een functie, zoals de volgende log dan het geval doorgegeven. U vindt de Lambda functie logs onder de “Monitoring” tab voor de functie.

‘strikte’;

de export.handler = (gebeurtenis, de context, de callback) => {
console.log(‘LogCloudWatchEvent’);
console.log(‘Ontvangen evenement:’, JSON.stringify(event, null, 2));
callback(null, ‘Af’);
};

U, natuurlijk, zijn niet beperkt tot de Lambda-functies. Voor een meer intense berekenen, kunt u de route van de gebeurtenis naar een ECS taak, die gebruik kunnen maken van de volledige kracht van Fargate en EC2 uitvoeren container-toepassingen.

Andere opties zijn ook beschikbaar, meestal te maken met de routing van de gebeurtenis ergens anders, zoals een Kinesis-stream, SNS onderwerp, of SQS wachtrij.

Regels zijn beheersbaar van de CloudWatch console, met inbegrip van een controle tab om aan te tonen statistieken voor hoe vaak de regel wordt toegepast.