Zum Beispiel möchte ich einen CloudWatch-Alarm auslösen für:
Number of messages sent
- Number of messages deleted
> = 6
Das Obige gilt für AWS SQS-Metriken. Und ich möchte, dass diese Metrik AWS Lambda auslöst, wenn dieser Alarm ausgelöst wird.
Kann ich das auf irgendeine Weise tun? Wenn nicht, gibt es eine Umgehungsmöglichkeit [Streben nach einem serverlosen Paradigma]
[Ich möchte das tun, weil es keine Metrik gibt, die mir die Anzahl der Nachrichten angibt, die sich derzeit (in der Warteschlange) befinden.] Also, wenn es eine Metrik gibt, die mir das geben kann, wäre es sehr hilfreich
Antworten:
Für das letzte allgemeine Ziel würde ich den Alarm in
ApproximateNumberOfMessagesVisible
der Cloudwatch- Dokumentation auf SQS aktivieren. Dies ist:Bei der allgemeineren Frage zu berechneten Metriken würde ich ein Lambda verwenden, das priodisch ausgeführt wird, Metriken von Cloudwatch sammelt, die Mathematik durchführt und zu Cloudwatch zurückkehrt.
Hier ist ein Lambda-Beispiel, das Daten von Cloudwatch sammelt, um zu Elasticsearch zu gelangen. Mit den Beispielen in der Dokumentation sollten Sie in der Lage sein, Metriken vom Lambda zurückzuschieben.
Beachten Sie, dass das Aufrufen der Cloudwatch-API zum Erfassen und Übertragen von Kennzahlen mit Kosten verbunden ist, wenn Sie mehr als 1 Million Anfragen pro Monat erhalten. Es gilt jedoch, andere Grenzen zu beachten, um eine Unterbrechung Ihres Budgets / Workflows zu vermeiden.
quelle
Approximate
. Warum ungefähr, wenn die genaue Anzahl der verfügbaren Nachrichten ermittelt werden kann?Kürzlich hat AWS CloudWatch Metric Math angekündigt , das für Ihren Anwendungsfall geeignet sein sollte.
Verweise:-
quelle