用于设置 Route 53 运行状况检查的 Amazon CloudFormation 模板 - Amazon EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

用于设置 Route 53 运行状况检查的 Amazon CloudFormation 模板

使用全局端点时,必须进行 Route 53 运行状况检查,以监控各区域的状态。以下模板定义了一条 Amazon CloudWatch 警报,并用它来定义 Route 53 运行状况检查

用于定义 Route 53 运行状况检查的 Amazon CloudFormation 模板

使用以下模板定义您的 Route 53 运行状况检查。

Description: |- Global endpoints health check that will fail when the average Amazon EventBridge latency is above 30 seconds for a duration of 5 minutes. Note, missing data will cause the health check to fail, so if you only send events intermittently, consider changing the heath check to use a longer evaluation period or instead treat missing data as 'missing' instead of 'breaching'. Metadata: AWS::CloudFormation::Interface: ParameterGroups: - Label: default: "Global endpoint health check alarm configuration" Parameters: - HealthCheckName - HighLatencyAlarmPeriod - MinimumEvaluationPeriod - MinimumThreshold - TreatMissingDataAs ParameterLabels: HealthCheckName: default: Health check name HighLatencyAlarmPeriod: default: High latency alarm period MinimumEvaluationPeriod: default: Minimum evaluation period MinimumThreshold: default: Minimum threshold TreatMissingDataAs: default: Treat missing data as Parameters: HealthCheckName: Description: Name of the health check Type: String Default: LatencyFailuresHealthCheck HighLatencyAlarmPeriod: Description: The period, in seconds, over which the statistic is applied. Valid values are 10, 30, 60, and any multiple of 60. MinValue: 10 Type: Number Default: 60 MinimumEvaluationPeriod: Description: The number of periods over which data is compared to the specified threshold. You must have at least one evaluation period. MinValue: 1 Type: Number Default: 5 MinimumThreshold: Description: The value to compare with the specified statistic. Type: Number Default: 30000 TreatMissingDataAs: Description: Sets how this alarm is to handle missing data points. Type: String AllowedValues: - breaching - notBreaching - ignore - missing Default: breaching Mappings: "InsufficientDataMap": "missing": "HCConfig": "LastKnownStatus" "breaching": "HCConfig": "Unhealthy" Resources: HighLatencyAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmDescription: High Latency in Amazon EventBridge MetricName: IngestionToInvocationStartLatency Namespace: AWS/Events Statistic: Average Period: !Ref HighLatencyAlarmPeriod EvaluationPeriods: !Ref MinimumEvaluationPeriod Threshold: !Ref MinimumThreshold ComparisonOperator: GreaterThanThreshold TreatMissingData: !Ref TreatMissingDataAs LatencyHealthCheck: Type: AWS::Route53::HealthCheck Properties: HealthCheckTags: - Key: Name Value: !Ref HealthCheckName HealthCheckConfig: Type: CLOUDWATCH_METRIC AlarmIdentifier: Name: Ref: HighLatencyAlarm Region: !Ref AWS::Region InsufficientDataHealthStatus: !FindInMap [InsufficientDataMap, !Ref TreatMissingDataAs, HCConfig] Outputs: HealthCheckId: Description: The identifier that Amazon Route 53 assigned to the health check when you created it. Value: !GetAtt LatencyHealthCheck.HealthCheckId

事件 ID 可能会随着 API 调用而变化,因此跨区域关联事件需要有一个不可变的唯一标识符。在进行与使用者有关的设计时,还应考虑到幂等性。这样一来,如果您要复制事件或从存档中重放事件,在两个区域中处理事件就不会产生任何副作用。

CloudWatch 警报模板属性

注意

对于所有 editable 字段,请考虑您的每秒吞吐量。如果您只是间歇性地发送事件,请考虑将运行状况检查更改为使用更长的评估期,或者将缺失的数据视为 missing,而不是 breaching

模板的 CloudWatch 警报部分使用了以下属性:

指标 描述

AlarmDescription

警报的描述。

默认值:High Latency in Amazon EventBridge

MetricName

与警报关联的指标的名称。这是基于指标的警报所必需的。对于基于数学表达式的警报,您应改为使用 Metrics,并且无法指定 MetricName

默认:IngestionToInvocationStartLatency

Namespace

与警报关联的指标的命名空间。这是基于指标的警报所必需的。对于基于数学表达式的警报,您无法指定 Namespace,而应改为使用 Metrics

默认值:AWS/Events

Statistic

与警报关联的指标的统计数据,而不是百分位数。

默认:平均值

Period

以秒为单位的周期,每经过该时长,即应用统计数据。这是基于指标的警报所必需的。有效值为 10、30、60,以及 60 的任何倍数。

默认值:60

EvaluationPeriods

其间的数据将与指定阈值进行比较的期间数。如果您设置的警报需要连续超出多个数据点才能触发警报,则此值将指定该数字。如果要设置“N 个中的 M 个”警报,则此值为 N,DatapointsToAlarm 为 M。

默认值:5

Threshold

要与指定的统计数据进行比较的值。

默认值:30,000

ComparisonOperator

将指定统计数据与阈值进行比较时使用的算术运算。指定的统计值将用作第一个操作数。

默认值:GreaterThanThreshold

TreatMissingData

设置该警报应如何处理缺失数据点。

有效值:breachingnotBreachingignoremissing

默认值:breaching

Route 53 运行状况检查模板属性

注意

对于所有 editable 字段,请考虑您的每秒吞吐量。如果您只是间歇性地发送事件,请考虑将运行状况检查更改为使用更长的评估期,或者将缺失的数据视为 missing,而不是 breaching

模板的 Route 53 运行状况检查部分使用了以下属性:

指标 描述

HealthCheckName

运行状况检查的名称。

默认值:LatencyFailuresHealthCheck

InsufficientDataHealthStatus

当 CloudWatch 没有充足的指标数据来确定警报状态时,您希望 Amazon Route 53 分配给运行状况检查的状态。

有效值:

  • Healthy:Route 53 将运行状况检查视为正常。

  • Unhealthy:Route 53 将运行状况检查视为不正常。

  • LastKnownStatus:Route 53 使用 CloudWatch 上次有足够数据确定警报状态时运行状况检查的状态。对于没有上一个已知状态的新运行状况检查,运行状况检查的默认状态为运行良好。

默认:运行不正常

注意

此字段将根据 TreatMissingData 字段的输入进行更新。如果TreatingMissingData 设置为 Missing,它将更新为 LastKnownStatus。如果 TreatingMissingData 设置为 Breaching,则更新为 Unhealthy