

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

# 使用 AWS Health API AWS Health 与其他系统集成
<a name="health-api"></a>

AWS Health 是一项 RESTful Web 服务，它使用 HTTPS 作为传输，使用 JSON 作为消息序列化格式。您的应用程序代码可以直接向 AWS Health API 发送请求。在您直接使用 REST API 时，您必须编写必要的代码来对您的请求签名以及验证您的请求。有关 AWS Health 操作和参数的更多信息，请参阅 [AWS Health API 参考](https://docs.aws.amazon.com/health/latest/APIReference/)。

**注意**  
要使用 AWS Health 该 API，您必须有 B AWS usiness Support\+、En AWS terprise Suppor [AWS 支持](https://aws.amazon.com/premiumsupport/)t 或 AWS 统一运营计划。如果您所在的计划不提供这些 AWS 支持 计划，或者您尚未过渡到其中一个计划，则可以将 AWS Health API 与商业、企业入口或企业支持计划一起使用。 AWS 区域 如果您从未注册这些计划之一的用户调用 AWS Health API，则会收到`SubscriptionRequiredException`错误消息。 AWS 账户 

您可以使用 AWS SDKs 来封装 AWS Health REST API 调用，这样可以简化应用程序开发。您可以指定您的 AWS 凭据，这些库会为您处理身份验证和请求签名。

AWS Health 还在中提供了一个 AWS Health 控制面板 AWS 管理控制台 ，可用于查看和搜索事件和受影响的实体。请参阅[开始使用您的 AWS Health 控制面板](getting-started-health-dashboard.md)。

**Topics**
+ [对 AWS Health API 请求进行签名](#signing)
+ [为 AWS Health API 请求选择终端节点](#endpoints)
+ [演示：以编程方式检索最近七天 AWS Health 的事件数据](using-global-endpoints-demo.md)
+ [教程：使用 AWS Health API 和 Java 示例](code-sample-java.md)

## 对 AWS Health API 请求进行签名
<a name="signing"></a>

当您使用 AWS SDKs 或 AWS Command Line Interface (AWS CLI) 向发出请求时 AWS，这些工具会自动使用您在配置工具时指定的访问密钥对请求进行签名。例如，如果您在 适用于 Java 的 AWS SDK 之前的高可用性终端节点演示中使用，则无需自己签署请求。

**Java 代码示例**  
有关如何将 AWS Health API 与一起使用的更多示例 适用于 Java 的 AWS SDK，请参阅此[示例代码](code-sample-java.md)。



当您提出请求时，我们强烈建议您不要使用 AWS 根账户证书进行常规访问 AWS Health。您可以使用 IAM 用户的凭证。有关更多信息，请参阅 *IAM 用户指南中的锁定 AWS 账户根用户*[访问密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials)。

如果您不使用 AWS SDKs 或 AWS CLI，则必须自己签署请求。我们建议您使用 AWS 签名版本 4。有关更多信息，请参阅中的[签署 AWS API 请求*AWS 一般参考*](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)。

## 为 AWS Health API 请求选择终端节点
<a name="endpoints"></a>

为了支持主动-被动 DNS 故障转移， AWS Health 提供了一个全局端点。您可以在全局终端节点上执行 DNS 查找，以确定活动终端节点和相应的签名 AWS 区域。这可以帮助您知道要在代码中使用哪个端点，以便您可以从中获取最新信息 AWS Health。

当您向全球终端节点发出请求时，必须指定您对目标区域终端节点的 AWS 访问凭证，并为您的区域配置签名。否则，您的身份验证可能会失败。有关更多信息，请参阅 [对 AWS Health API 请求进行签名](#signing)。

对于 IPv6仅限请求的请求，我们建议在全局终端节点上执行 DNS 查找以确定处于活动状态的请求， AWS 区域 然后调用该区域 IPv6 支持的双栈终端节点。

下表列出了默认配置。


****  

| 说明 | 签名区域 | 端点 | 协议 | 
| --- | --- | --- | --- | 
| 活动 | us-east-1 | health.us-east-1.amazonaws.com (IPv4-仅限)<br />health.us-east-1.api.aws（并支持）IPv4 IPv6  | HTTPS | 
| Passive | us-east-2 | health.us-east-2.amazonaws.com (IPv4-仅限)<br />health.us-east-2.api.aws（并支持）IPv4 IPv6  | HTTPS | 
| Global | us-east-1 这是当前主动端点的签名区域。  | global.health.amazonaws.com | HTTPS | 

要确定终端节点是否为*活动终端节点*，请在*全局终端节点* CNAME 上进行 DNS 查找，然后从解析的名称中提取 AWS 区域。

**Example ：在全局端点上查找 DNS**  
以下命令在 global.health.amazonaws.com 端点上完成 DNS 查找。然后，该命令返回 us-east-1 区域端点。此输出告诉您应该使用哪个端点 AWS Health。  

```
dig global.health.amazonaws.com | grep CNAME
global.health.amazonaws.com. 10 IN CNAME health.us-east-1.amazonaws.com
```

**提示**  
主动端点和被动端点都返回 AWS Health 数据。但是，最新 AWS Health 数据只能从主动端点获得。来自被动端点的数据最终将与主动端点保持一致。我们建议您在主动端点发生变化时重新启动所有工作流程。