

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

# AWS Cloud Map 服务运行状况检查配置
<a name="services-health-checks"></a>

Health 检查有助于确定服务实例是否正常。如果您在创建服务期间未配置运行状况检查，则无论实例的运行状况如何，流量都将路由到服务实例。配置运行状况检查时，默认情况下 AWS Cloud Map 会返回运行状况良好的资源。您可以使用 `DiscoverInstances` API 的`[HealthStatus](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html#cloudmap-DiscoverInstances-request-HealthStatus)`参数按运行状况筛选资源并获取不健康资源列表。您还可以使用 `[GetInstancesHealthStatus](https://docs.aws.amazon.com/cloud-map/latest/api/API_GetInstancesHealthStatus.html)` API 检索特定服务实例的运行状况。

在创建 AWS Cloud Map 服务时，您可以配置 Route 53 运行状况检查或自定义的第三方运行状况检查。

## Route 53 运行状况检查
<a name="services-health-checks-r53"></a>

如果您为 Amazon Route 53 运行状况检查指定设置，则会在注册实例时 AWS Cloud Map 创建 Route 53 运行状况检查，并在注销实例时删除运行状况检查。

对于公有 DNS 命名空间，请将运行状况检查与注册实例时 AWS Cloud Map 创建的 Route 53 `AAAA` 记录 AWS Cloud Map 相关联。如果您在服务的 DNS 配置中同时指定`A`和记录类型，则 AWS Cloud Map 会创建使用该 IPv4 地址检查资源的运行状况检查。如果 IPv4 地址指定的终端节点运行状况不佳，则 Route 53 会认为`A`和`AAAA`记录均不正常。如果您在服务的 DNS 配置中指定`CNAME`记录类型，则无法配置 Route 53 运行状况检查。

对于您使用 API 调用发现其实例的命名空间， AWS Cloud Map 创建 Route 53 运行状况检查。但是，没有可与运行状况检查关联的 DNS 记录。 AWS Cloud Map 要确定运行状况检查是否正常，您可以使用 Route 53 控制台或 Amazon 配置监控 CloudWatch。有关使用 Route 53 控制台的更多信息，请参阅 *Amazon Route 53 开发者指南*中的[运行状况检查失败时获得通知](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-values.html#health-checks-creating-values-alarm)。有关使用的更多信息 CloudWatch，请参阅 *Amazon CloudWatch API 参考[PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html)*中的。

**注意**  
您无法为在私有 DNS 命名空间中创建的服务配置 Amazon Route 53 运行状况检查。
每次运行状况检查中的 Route 53 运行状况检查器每 30 秒向终端节点 AWS 区域 发送一次运行状况检查请求。平均来说，您的端点每两秒会收到一次运行状况检查请求。但是，运行状况检测出新不会彼此协调。因此，您有时可能会在一秒钟内看到多个请求，然后在几秒钟内根本没有进行运行状况检查。有关运行状况检查区域的列表，请参阅[区域](https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions)。

有关 Route 53 运行状况检查的费用信息，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)。

## 自定义运行状况检查
<a name="services-health-check-custom"></a>

如果您在注册实例时配置 AWS Cloud Map 为使用自定义运行状况检查，则必须使用第三方运行状况检查器来评估资源的运行状况。自定义运行状况检查在以下情况下很有用：
+ 您无法使用 Route 53 运行状况检查，因为无法通过 Internet 获得资源。例如，假设您有一个位于 Amazon VPC 中的实例。您可以为此实例使用自定义运行状况检查。但是，要使运行状况检查正常运行，运行状况检查程序也必须与您的实例在同一 VPC 中。
+ 您希望使用第三方运行状况检查程序，而不管您的资源位于何处。

使用自定义运行状况检查时， AWS Cloud Map 不会直接检查给定资源的运行状况。相反，第三方运行状况检查器会检查资源的运行状况，并将状态返回到您的应用程序。然后，您的申请将需要提交将此状态传递给的`[UpdateInstanceCustomHealthStatus](https://docs.aws.amazon.com/cloud-map/latest/api/API_UpdateInstanceCustomHealthStatus.html)`请求 AWS Cloud Map。如果转发的初始状态为`UNHEALTHY`，如果`[UpdateInstanceCustomHealthStatus](https://docs.aws.amazon.com/cloud-map/latest/api/API_UpdateInstanceCustomHealthStatus.html)`在 30 秒内没有其他状态转发状态`HEALTHY`，则确认该资源运行状况不佳。 AWS Cloud Map 停止将流量路由到该资源。