使用 CloudFormation 在 Route53 上创建基于其他 HealthChecks 的 HealthCheck

问题描述

正如标题所暗示的,我想为单个区域中的所有服务创建一个“组合”运行状况检查。我基于 Documentation example:

通过 CloudFormation 成功创建了不同的健康检查
RegionHealthCheck:
  Type: AWS::Route53::HealthCheck
  Properties:
    HealthCheckConfig:
      Port: 443
      Type: HTTPS
      ResourcePath: <path>
      FullyQualifiedDomainName: <domain>
      RequestInterval: 30
      FailureThreshold: 3
      MeasureLatency: true
      Regions:
        - eu-west-1
        - us-west-1
        - ap-northeast-1
    HealthCheckTags:
      - Key: Environment
        Value: <stage>

遗憾的是,我找不到有关组合运行状况检查或需要用于 HealthCheckConfig属性的任何示例。

解决方法

我通过 UI 手动创建了一个组合运行状况检查并通过 CLI (aws route53 list-health-checks) 查询它以找出需要定义的实际属性。

CombinedHealthCheck:
  Type: AWS::Route53::HealthCheck
  Properties:
    HealthCheckConfig:
      Type: CALCULATED
      HealthThreshold: 3
      ChildHealthChecks:
        - !Ref <first-healthcheck>
        - !Ref <second-healthcheck>
        - !Ref <third-healthcheck>
    HealthCheckTags:
      - Key: Environment
        Value: <stage>

仍然不知道 CloudFormation 文档中是否提到了这一点。