Πώς να δημιουργήσετε αυτόματα ειδοποιήσεις CloudWatch με CloudTrail, Lambda και Serverless

Στο ChargedUp, εφαρμόσαμε πέρσι το πρότυπο που περιγράφει ο Yan Cui για την παρακολούθηση του Lambdas Powering API μας.

Αυτή την εβδομάδα, αποφάσισα να επεκτείνω αυτό σε όλους τους Lambdas μας, έτσι τώρα έχουμε μια Lambda ακούγοντας γεγονότα CloudTrail, τα οποία ενεργοποιούνται όταν δημιουργείται ή αναπτύσσεται οποιοδήποτε άλλο λάμδα. Ο κώδικας για να επιτευχθεί αυτό είναι αξιοσημείωτα μικρός και απλός. Αυτό που πήρε το περισσότερο χρόνο ήταν να κατανοήσουμε τα γεγονότα του CloudTrail (υπάρχουν περισσότερα από χίλια από αυτά), για να καταλάβω ποιες από αυτές θα έπρεπε να εγγραφώ. Έχω ερωτήσει τα αρχεία καταγραφής CloudTrail με την Athena .

SELECT DISTINCT όνομα συμβάντος FROM cloudtrail_logs_chargedup_cloudtrail

Δεν θα περάσω από τον τρόπο με τον οποίο θα εγκαταστήσετε το CloudTrail στον λογαριασμό σας, αλλά για παράδειγμα, η τεκμηρίωση Terraform είναι αρκετά ξεκάθαρη, ελέγξτε ότι, για παράδειγμα, μπορείτε να ενεργοποιήσετε το CloudTrail μόνο για τον Lambdas με αυτόν τον κωδικό TF:

Τα γεγονότα που με ενδιαφέρουν είναι μόνο: UpdateFunctionCode20150331v2, CreateFunction20150331: Δυστυχώς, φαίνεται ότι το AWS χρησιμοποιεί εκδόσεις για τέτοιου είδους συμβάντα, επομένως αυτός ο κώδικας ενδέχεται να σπάσει στο μέλλον όταν η έκδοση θα αυξηθεί.

Αυτό το απόσπασμα κώδικα serverless.yml θα έκανε την εργασία:

Και ο χειριστής θα μοιάζει με αυτό:

Η λειτουργία publishEventToSns θα δημοσιεύσει σε ένα θέμα SNS ενεργοποιώντας ένα μήνυμα Slack στο ειδικό κανάλι μας, η άλλη συνάρτηση θα δημιουργήσει ένα αίτημα θέματος για το CloudWatch να δημιουργήσει μια ειδοποίηση όταν εμφανιστεί ένα σφάλμα στο lambda.

Ακόμα και αν χρησιμοποιούμε το Epsagon για την παρακολούθησή μας, βρίσκω αυτό ένα πολύτιμο δίχτυ ασφαλείας, αν κάποιος απομακρύνει από το μηχάνημά του ένα λάμδα που θα γνωρίζουμε (σε περίπτωση ανάπτυξης ενός CircleCI) και εάν ένα λάμδα δεν έχει ρυθμιστεί με το plugin Epsagon αρχίζει να αποτυγχάνει θα ειδοποιηθούν.

Υπάρχουν τόσα πολλά γεγονότα, συμπεριλαμβανομένων των επικλήσεων και των στραγγαλισμών, πράγμα που σημαίνει ότι εάν διαθέτετε κάποιο χρόνο, μπορείτε να εφαρμόσετε αρκετά φτηνά μια πλήρη λύση παρακολούθησης / παρακολούθησης για όλα τα λάμδα σας.

Μπορείτε να δείτε μια σωστή ματιά σε όλα αυτά τα αποσπάσματα κώδικα εδώ.

Δείτε επίσης

Πώς μπορώ να μάθω δύο εντελώς διαφορετικές γλώσσες ταυτόχρονα χωρίς να τις ανακατεύω, ή ακόμα και να μάθω τρεις; Πώς μπορώ να αλλάξω ένα θέμα WordPress; Έχω έναν ιστότοπο WordPress και θέλω να αλλάξω μια σελίδα στο θέμα. Αυτή τη στιγμή επιτρέπει τη λήψη εικόνων, αλλά θέλω να το σταματήσω αυτό για ορισμένους πελάτες, αλλά όχι για όλους.Πώς προβάλλω μια εικόνα χρησιμοποιώντας δέσμη ενεργειών PHP; Πώς μπορώ να συνεχίσω να μαθαίνω κωδικοποίηση αν το βρίσκω δύσκολο; Πώς λειτουργεί ένας ελεύθερος επαγγελματίας; Πώς θα πληρωθώ;Έχω ένα blog με περίπου 2000 επισκέψεις το μήνα αλλά ποτέ δεν προσπάθησα να κερδίσω χρήματα με αυτό. Πώς πρέπει να ξεκινήσω;Τα πρακτορεία μάρκετινγκ φαίνεται να είναι καλοί στο να πωλούνται και να αποκτούν περισσότερους πελάτες. Αλλά πώς μπορεί η επιχείρησή μου (Tenikle) να βρει έναν οργανισμό ο οποίος να είναι συνεπής, προσιτός για να ξεκινήσει και μπορεί να κλιμακωθεί;πώς να κάνετε sudarshan kriya