Na przykład chcę uruchomić alarm CloudWatch dla następujących elementów:
Number of messages sent
- Number of messages deleted
> = 6
Powyższe dotyczy wskaźników AWS SQS. I chcę, aby ta metryka wyzwalała AWS Lambda, jeśli ten alarm jest włączony.
Czy jest jakiś sposób, żeby to zrobić? Jeśli nie, to czy istnieje jakieś obejście [Cel paradygmatu bezserwerowego]
[Chcę to zrobić, ponieważ nie ma metryki, która mówi mi o liczbie wiadomości aktualnie (dostępnych) w kolejce]. Więc jeśli istnieje metryka, która może mi to dać, byłaby bardzo pomocna
Odpowiedzi:
Dla ostatniego ogólnego celu chciałbym
ApproximateNumberOfMessagesVisible
włączyć alarm z dokumentacji Cloudwatch na SQS :Jeśli chodzi o bardziej ogólne obliczone pytanie dotyczące metryki, wybrałbym lambda biegnącą okresowo, zbierając dane z obserwatora chmur, wykonując matematykę i odsuwając się od obserwatora chmur.
Oto przykład lambda zbierającej dane z Cloudwatch, aby przejść do elasticsearch. Dzięki przykładom w dokumentacji powinieneś być w stanie wypchnąć metryki z powrotem z lambda.
Pamiętaj, że dzwonienie do API Cloudwatch w celu gromadzenia i przekazywania danych ma koszt, gdy otrzymujesz ponad 1 milion żądań miesięcznie, są też inne ograniczenia, aby uniknąć zerwania budżetu / przepływu pracy.
źródło
Approximate
. Po co przybliżać, skoro może podać dokładną liczbę dostępnych wiadomości?Niedawno AWS właśnie ogłosiło CloudWatch Metric Math, który powinien być odpowiedni dla twojego przypadku użycia.
Bibliografia:-
źródło