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

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

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

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

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

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

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

  • CloudWatch AWS 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 下载链接 安装说明 AWS JSON 1.0
Golang 2.x aws/aws-sdk-go-v2 下载链接 安装说明 RPC v2 CBOR
Java 1.x aws/aws-sdk-java 下载链接 安装说明 AWS JSON 1.0
Java 2.x aws/aws-sdk-java-v2 下载链接 安装说明 RPC v2 CBOR
JavaScript v3.x aws/aws-sdk-js-v3 下载链接 安装说明 AWS JSON 1.0
.NET aws/aws-sdk-net 下载链接 安装说明 AWS JSON 1.0
PHP aws/aws-sdk-php 下载链接 安装说明 AWS JSON 1.0
Python-boto3 boto/boto3 下载链接 安装说明 AWS JSON 1.0
awscli AWS CLI v1 构件 下载链接 安装说明 AWS JSON 1.0
AWS CLI v2 源代码分发版 下载链接 安装说明 AWS JSON 1.0
AWS CLI v2 独立源代码分发版 下载链接 安装说明 AWS JSON 1.0
AWS CLI v2 Windows MSI 下载链接 安装说明 AWS JSON 1.0
AWS CLI v2 Linux X86 Docker 下载链接 安装说明 AWS JSON 1.0
AWS CLI v2 Linux X86 下载链接 安装说明 AWS JSON 1.0
AWS CLI v2 Linux X86 独立安装包 下载链接 安装说明 AWS JSON 1.0
AWS CLI v2 Linux ARM Docker 下载链接 安装说明 AWS JSON 1.0
AWS CLI v2 Linux ARM 下载链接 安装说明 AWS JSON 1.0
AWS CLI v2 Linux ARM 独立安装包 下载链接 安装说明 AWS JSON 1.0
Ruby aws/aws-sdk-ruby 下载链接 安装说明 AWS JSON 1.0
Powershell 下载链接 安装说明 AWS JSON 1.0
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 工作负载启用这些新协议有哪些风险?

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

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

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

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

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

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

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

AWS 查询协议会被弃用吗?

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

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

Smithy 文档的 AWS JSON 1.0 protocol 中有关于 JSON 协议的更多信息。

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