CloudWatch 支持协议的常见问题解答 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

CloudWatch 支持协议的常见问题解答

CloudWatch 现在支持另外两个协议:Amazon JSON 1.1Smithy RPC v2 CBOR。这两个协议提供的性能优于 Amazon SDK 和 CLI 当前所用的 Amazon 查询协议。AmazonSDK 会自动为每种语言选择性能最优的通信协议。

什么是 Amazon JSON 协议?其与现有的 CloudWatch API 请求和响应有何不同?

JSON 是在异构系统之间进行通信时最广为使用和接受的连接方法之一。CloudWatch 使用 JSON 作为媒介在 Amazon SDK 客户端(例如:Java、Python、Golang、JavaScript)与 CloudWatch 服务器之间进行通信。CloudWatch API 操作的 HTTP 请求接受 JSON 形式的输入。系统会执行 CloudWatch 操作,然后将执行的响应以 JSON 形式反过来共享给 SDK 客户端。与 Amazon 查询相比,JSON 在客户端和服务器之间的数据传输方面效率更高。

  • CloudWatch Amazon JSON 协议充当 CloudWatch 客户端和服务器之间的中介层。

  • 服务器不理解创建 CloudWatch 操作所用的编程语言,但能理解 Amazon JSON 协议。

  • CloudWatch Amazon JSON 协议在 CloudWatch 客户端和服务器之间使用序列化(将对象转换为 JSON 格式)和反序列化(将 JSON 格式转换为对象)。

什么是 Smithy RPC v2 CBOR 协议?其与现有的 CloudWatch API 请求和响应有何不同?

简明二进制对象表示(CBOR)法是一种注重高效性和灵活性的数据格式。其核心设计目标包括:极小的代码体积、紧凑的消息尺寸和无版本化扩展能力。Smithy RPC v2 CBOR(Amazon 专有协议)基于上述优势,进一步实现了高效数据传输。RPC v2 CBOR 采用二进制编码(而非 JSON 的文本编码),有效降低有效载荷大小与序列化耗时。

  • CloudWatch RPC v2 CBOR 协议充当 CloudWatch 客户端和服务器之间的中介层。

  • 服务器不理解创建 CloudWatch 操作所用的编程语言,但能理解 RPC v2 CBOR 协议。

  • CloudWatch RPC v2 CBOR 协议在 CloudWatch 客户端和服务器之间使用序列化(将对象转换为 CBOR 格式)和反序列化(将 CBOR 格式转换为对象)。

如何开始使用 CloudWatch 的新协议?

新协议现已在 SDK 的公开预览版中提供。遵循以下说明即可下载 SDK。

注意

下面列出的 CloudWatch SDK 预览版中存在以下具体问题。使用该预览版 SDK 意味着这些问题可能会影响集成。我们计划在最终版本发布前解决这些问题。

  • 影响所有 SDK:预览版会从列表中删除尾随的 null 值。在最终版本中,这些值将被正确序列化

  • 影响 Java SDK v1 – 预览版不会序列化空列表。在最终版本中,空列表将被正确序列化

SDK 客户端协议支持
语言 SDK 客户端存储库 SDK 下载链接 SDK 安装说明 协议
C++ aws/aws-sdk-cpp 下载链接 安装说明 Amazon JSON 1.1
Golang 2.x aws/aws-sdk-go-v2 下载链接 安装说明 RPC v2 CBOR
Java 1.x aws/aws-sdk-java 下载链接 安装说明 Amazon JSON 1.1
Java 2.x aws/aws-sdk-java-v2 下载链接 安装说明 RPC v2 CBOR
JavaScript v3.x aws/aws-sdk-js-v3 下载链接 安装说明 Amazon JSON 1.1
.NET aws/aws-sdk-net 下载链接 安装说明 Amazon JSON 1.1
PHP aws/aws-sdk-php 下载链接 安装说明 Amazon JSON 1.1
Python-boto3 boto/boto3 下载链接 安装说明 Amazon JSON 1.1
awscli Amazon CLI v1 构件 下载链接 安装说明 Amazon JSON 1.1
Amazon CLI v2 源代码分发版 下载链接 安装说明 Amazon JSON 1.1
Amazon CLI v2 独立源代码分发版 下载链接 安装说明 Amazon JSON 1.1
Amazon CLI v2 Windows MSI 下载链接 安装说明 Amazon JSON 1.1
Amazon CLI v2 Linux X86 Docker 下载链接 安装说明 Amazon JSON 1.1
Amazon CLI v2 Linux X86 下载链接 安装说明 Amazon JSON 1.1
Amazon CLI v2 Linux X86 独立安装包 下载链接 安装说明 Amazon JSON 1.1
Amazon CLI v2 Linux ARM Docker 下载链接 安装说明 Amazon JSON 1.1
Amazon CLI v2 Linux ARM 下载链接 安装说明 Amazon JSON 1.1
Amazon CLI v2 Linux ARM 独立安装包 下载链接 安装说明 Amazon JSON 1.1
Ruby aws/aws-sdk-ruby 下载链接 安装说明 Amazon JSON 1.1
Powershell 下载链接 安装说明 Amazon JSON 1.1
Rust awslabs/aws-sdk-rust 下载链接 安装说明 RPC v2 CBOR
Swift awslabs/aws-sdk-swift 下载链接 安装说明 RPC v2 CBOR
Kotlin awslabs/aws-sdk-kotlin 下载链接 安装说明 RPC v2 CBOR

为 CloudWatch 工作负载启用这些新协议有哪些风险?

如果使用 Amazon SDK 的自定义实现或自定义客户端和 Amazon SDK 的组合,与生成基于 Amazon 查询(也就是基于 XML)的响应的 CloudWatch 进行交互,则可能与 Amazon JSON 或 CBOR 协议不兼容。如果遇到任何问题,请与 Amazon Support 联系。

如果已经使用最新版 Amazon SDK,但开源解决方案不支持 JSON 或 CBOR,该怎么办?

必须将 SDK 版本更改为先前版本。请参阅如何开始使用 CloudWatch 的新协议?,了解如何开始使用 CloudWatch 的新协议并选择低于所列版本的版本。如果将 Amazon SDK 更改为先前版本,CloudWatch API 会使用 Amazon 查询协议。

CloudWatch API 中使用的 Amazon JSON 和 CBOR 协议支持哪些区域?

CloudWatch 在所有提供 CloudWatch 的 Amazon 区域都支持 Amazon JSON 和 CBOR 协议。

升级至指定 Amazon SDK 版本并使用新协议后,CloudWatch 的延迟性能预计可提升多少?

与 Amazon 查询相比,JSON 和 CBOR 的延迟都缩短了 50% 到 80%。在客户端,CBOR 的速度提高了 50%。两种协议的网络带宽使用效率都提高了 10% 到 20%。

Amazon 查询协议会被弃用吗?

我们将会继续支持 Amazon 查询协议。只要将 Amazon SDK 版本设置为“如何开始使用 CloudWatch 的 Amazon JSON 协议?”中列出版本之外的任何先前版本,即可继续使用 Amazon 查询协议。

在哪里可以找到有关 Amazon JSON 和 Smithy RPC v2 CBOR 协议的更多信息?

您可以在 Smithy 文档的 Amazon JSON 1.1 协议中找到有关 JSON 协议的更多信息。

有关 CloudWatch API 请求的更多信息,请参阅《CloudWatch API Reference》指南中的 Making API Requests