設定 CloudWatch 鬧鐘 - AWS Cloud Development Kit (AWS CDK) V2

這是 AWS CDK v2 開發人員指南。較舊的 CDK V1 已於 2022 年 6 月 1 日進入維護,並於 2023 年 6 月 1 日結束支援。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 CloudWatch 鬧鐘

使用 aws-cloudwatch 套件在指標上設定 Amazon CloudWatch 警示。 CloudWatch 您可以使用預先定義的指標或建立自己的指標。

使用現有的量度

許多「 AWS 建構程式庫」模組可讓您在具有度量的物件執行個體上,將度量的名稱傳送至便利方法,以便在現有度量上設定警示。例如,在給定 Amazon SQS 佇列的情況下,您可以ApproximateNumberOfMessagesVisible從佇列的 metric () 方法取得指標:

TypeScript
const metric = queue.metric("ApproximateNumberOfMessagesVisible");
JavaScript
const metric = queue.metric("ApproximateNumberOfMessagesVisible");
Python
metric = queue.metric("ApproximateNumberOfMessagesVisible")
Java
Metric metric = queue.metric("ApproximateNumberOfMessagesVisible");
C#
var metric = queue.Metric("ApproximateNumberOfMessagesVisible");

建立您自己的指標

如下所示建立您自己的指標,其中命名空間值應該是 AWS/SQS對於 Amazon SQS 佇列。您還需要指定指標的名稱和維度:

TypeScript
const metric = new cloudwatch.Metric({ namespace: 'MyNamespace', metricName: 'MyMetric', dimensionsMap: { MyDimension: 'MyDimensionValue' } });
JavaScript
const metric = new cloudwatch.Metric({ namespace: 'MyNamespace', metricName: 'MyMetric', dimensionsMap: { MyDimension: 'MyDimensionValue' } });
Python
metric = cloudwatch.Metric( namespace="MyNamespace", metric_name="MyMetric", dimensionsMap=dict(MyDimension="MyDimensionValue") )
Java
Metric metric = Metric.Builder.create() .namespace("MyNamespace") .metricName("MyMetric") .dimensionsMap(java.util.Map.of( // Java 9 or later "MyDimension", "MyDimensionValue")) .build();
C#
var metric = new Metric(this, "Metric", new MetricProps { Namespace = "MyNamespace", MetricName = "MyMetric", Dimensions = new Dictionary<string, object> { { "MyDimension", "MyDimensionValue" } } });

建立警示

一旦您擁有指標 (既有指標或您定義的量度),您就可以建立警示。在此範例中,如果在最後三個評估期間的兩個中有 100 個以上的量度,就會引發警示。您可以通過comparisonOperator屬性使用比較,例如在警報中小於。G reater-than-or-equal-To 是 AWS CDK 預設值,所以我們不需要指定它。

TypeScript
const alarm = new cloudwatch.Alarm(this, 'Alarm', { metric: metric, threshold: 100, evaluationPeriods: 3, datapointsToAlarm: 2, });
JavaScript
const alarm = new cloudwatch.Alarm(this, 'Alarm', { metric: metric, threshold: 100, evaluationPeriods: 3, datapointsToAlarm: 2 });
Python
alarm = cloudwatch.Alarm(self, "Alarm", metric=metric, threshold=100, evaluation_periods=3, datapoints_to_alarm=2 )
Java
import software.amazon.awscdk.services.cloudwatch.Alarm; import software.amazon.awscdk.services.cloudwatch.Metric; Alarm alarm = Alarm.Builder.create(this, "Alarm") .metric(metric) .threshold(100) .evaluationPeriods(3) .datapointsToAlarm(2).build();
C#
var alarm = new Alarm(this, "Alarm", new AlarmProps { Metric = metric, Threshold = 100, EvaluationPeriods = 3, DatapointsToAlarm = 2 });

另一種建立警示的方法是使用 metric 的 createAlarm() 方法,該方法基本上採用與建Alarm構函式相同的屬性。您不需要傳遞指標,因為它已經知道。

TypeScript
metric.createAlarm(this, 'Alarm', { threshold: 100, evaluationPeriods: 3, datapointsToAlarm: 2, });
JavaScript
metric.createAlarm(this, 'Alarm', { threshold: 100, evaluationPeriods: 3, datapointsToAlarm: 2, });
Python
metric.create_alarm(self, "Alarm", threshold=100, evaluation_periods=3, datapoints_to_alarm=2 )
Java
metric.createAlarm(this, "Alarm", new CreateAlarmOptions.Builder() .threshold(100) .evaluationPeriods(3) .datapointsToAlarm(2) .build());
C#
metric.CreateAlarm(this, "Alarm", new CreateAlarmOptions { Threshold = 100, EvaluationPeriods = 3, DatapointsToAlarm = 2 });