tha*_*lay 1 amazon-web-services aws-cloudformation amazon-cloudwatch amazon-cloudwatch-metrics
我想设置警报,以防CloudWatch上的CloudFront发生错误。
在控制台中,我将直接创建一个警报,如果TotalErrorRate大于0 ,它将向我发送电子邮件。
但是现在我想在CloudFormation的yaml模板文件中设置相同的设置。我很难找出相应参数的正确值。我的文件当前如下所示:
# CloudWatch
CloudFrontTotalErrorRateAlarm:
Type: "AWS::CloudWatch::Alarm"
Properties:
ActionsEnabled: Boolean
AlarmActions:
- String
AlarmDescription: "Trigers an alarm if there is any error (e.g. 4xx,5xx)"
AlarmName: "MyApiTotalErrorRate"
ComparisonOperator: GreaterThanThreshold
Dimensions:
- Dimension
EvaluationPeriods: "1"
ExtendedStatistic: String
InsufficientDataActions:
- String
MetricName: TotalErrorRate
Namespace: AWS/CloudFront
OKActions:
- String
Period: 60
Statistic: String
Threshold: 0
TreatMissingData: String
Unit: String
Run Code Online (Sandbox Code Playgroud)
对于某些参数,我可以算出实际值是多少。但是对于其他人,我基本上不知道应该输入什么内容,以便AWS可以在发生错误的情况下向我发送电子邮件。以下参数是缺少的值:
ActionsEnabledAlarmActionsDimensionsExtendedStatisticInsufficientDataActionsOKActionsStatisticTreatMissingDataUnit首先,您需要使用一个SNS Topic电子邮件地址作为一个订户来创建一个:
EscalationTopic:
Type: AWS::SNS::Topic
EscalationTopicEmailSubscriber:
Type: AWS::SNS::Subscription
Properties:
Endpoint: john.doe@example.com
Protocol: email
TopicArn: !Ref EscalationTopic
Run Code Online (Sandbox Code Playgroud)
第二步,您需要提供DistributionIdCF模板(只要分发版不是CF模板的一部分):
Parameters:
DistributionId:
Type: String
Run Code Online (Sandbox Code Playgroud)
最后,您必须将所有内容连接在一起,并按CloudWatch Alarm以下方式进行配置:
CloudFrontTotalErrorRateAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
Namespace: AWS/CloudFront
MetricName: TotalErrorRate
Dimensions:
- Name: DistributionId
Value: !Ref DistributionId
Statistic: Sum
Period: 60
EvaluationPeriods: 1
ComparisonOperator: GreaterThanOrEqualToThreshold
Threshold: 1
AlarmActions:
- !Ref EscalationTopic
Run Code Online (Sandbox Code Playgroud)
“最终” CF模板可能如下所示:
AWSTemplateFormatVersion: 2010-09-09
Parameters:
DistributionId:
Type: String
Resources:
EscalationTopic:
Type: AWS::SNS::Topic
EscalationTopicEmailSubscriber:
Type: AWS::SNS::Subscription
Properties:
Endpoint: john.doe@example.com
Protocol: email
TopicArn: !Ref EscalationTopic
CloudFrontTotalErrorRateAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
Namespace: AWS/CloudFront
MetricName: TotalErrorRate
Dimensions:
- Name: DistributionId
Value: !Ref DistributionId
Statistic: Sum
Period: 60
EvaluationPeriods: 1
ComparisonOperator: GreaterThanOrEqualToThreshold
Threshold: 1
AlarmActions:
- !Ref EscalationTopic
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2231 次 |
| 最近记录: |