如何使用 CDK 将警报订阅到通知或 SNS 主题?
How can I subscribe an alarm to a notification or SNS topic using CDK?
我知道如何使用 AWS CDK 创建警报,但不知道如何向该警报添加通知。我该怎么做?
这是我的闹钟代码:
/**
* Alarm for CPU above 75%
*/
const metric = cluster.metricCPUUtilization();
new cloudwatch.Alarm(this, `CPU above 75% alarm` , {
metric: metric,
threshold: 75,
evaluationPeriods: 3,
datapointsToAlarm: 2,
});
这是它在控制台中的样子:
您需要的是 SNS 主题和订阅。
首先导入需要的包:
import * as sns from "@aws-cdk/aws-sns";
import * as subscriptions from "@aws-cdk/aws-sns-subscriptions";
然后创建一个带有电子邮件订阅的主题:
const topic = new sns.Topic(scope, 'Alarm topic', {
displayName: envSpecificName(props.displayName)
});
topic.addSubscription(
new subscriptions.EmailSubscription(email)
)
最后将主题注册为报警动作:
import * as actions from "@aws-cdk/aws-cloudwatch-actions";
...
const metric = cluster.metricCPUUtilization();
const alarm = new cloudwatch.Alarm(this, `CPU above 75% alarm` , {
metric: metric,
});
alarm.addAlarmAction(new actions.SnsAction(topic));
我知道如何使用 AWS CDK 创建警报,但不知道如何向该警报添加通知。我该怎么做?
这是我的闹钟代码:
/**
* Alarm for CPU above 75%
*/
const metric = cluster.metricCPUUtilization();
new cloudwatch.Alarm(this, `CPU above 75% alarm` , {
metric: metric,
threshold: 75,
evaluationPeriods: 3,
datapointsToAlarm: 2,
});
这是它在控制台中的样子:
您需要的是 SNS 主题和订阅。
首先导入需要的包:
import * as sns from "@aws-cdk/aws-sns";
import * as subscriptions from "@aws-cdk/aws-sns-subscriptions";
然后创建一个带有电子邮件订阅的主题:
const topic = new sns.Topic(scope, 'Alarm topic', {
displayName: envSpecificName(props.displayName)
});
topic.addSubscription(
new subscriptions.EmailSubscription(email)
)
最后将主题注册为报警动作:
import * as actions from "@aws-cdk/aws-cloudwatch-actions";
...
const metric = cluster.metricCPUUtilization();
const alarm = new cloudwatch.Alarm(this, `CPU above 75% alarm` , {
metric: metric,
});
alarm.addAlarmAction(new actions.SnsAction(topic));