

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# CloudWatch 支援的通訊協定常見問答集
<a name="cloudwatch-protocols-faq"></a>

CloudWatch SDKs開始使用兩個額外的通訊協定：[AWS JSON 1.0](https://smithy.io/2.0/aws/protocols/aws-json-1_0-protocol.html) 和 [Smithy RPC v2 CBOR](https://smithy.io/2.0/additional-specs/protocols/smithy-rpc-v2.html)。這些通訊協定的效能高於 CloudWatch SDKs 和 CLIs 先前使用的 AWS 查詢。 AWS SDKs會優先考慮每種語言效能最佳的通訊協定。

## 什麼是 AWS JSON 通訊協定，它與現有的 CloudWatch API 請求和回應有何不同？
<a name="aws-json-protocol"></a>

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 SDK 會處理 CloudWatch 用戶端和伺服器之間的序列化 （將物件轉換為 JSON 格式） 和去序列化 （將 JSON 格式轉換為物件）。

## 什麼是 Smithy RPC v2 CBOR 通訊協定？它與現有的 CloudWatch API 請求和回應有何不同？
<a name="smithy-rpc-cbor-protocol"></a>

Smithy RPC v2 CBOR （簡潔二進位物件表示法） 是由 Amazon 開發的通訊協定，可提供更有效率的資料傳輸。它是一種資料格式，旨在保持訊息大小精簡，並允許格式演進，而無需在系統之間進行版本交涉。與 JSON 編碼的主要區別在於，JSON 使用人類可讀文字 （例如 "name"： "John")，而 CBOR 使用二進位格式 （序列為 1s 和 0s)。這種二進位方法會建立較小的資料套件，以更快的速度通過網路，並縮短序列化時間，因為電腦會直接處理二進位資料。
+ CloudWatch RPC v2 CBOR 通訊協定充當 CloudWatch 用戶端與伺服器之間的中介者。
+ CloudWatch SDK 會處理 CloudWatch 用戶端和伺服器之間的序列化 （將物件轉換為 CBOR 格式） 和還原序列化 （將 CBOR 格式轉換為物件）。

## 如何開始使用較新的 CloudWatch 通訊協定？
<a name="getting-started"></a>

若要開始使用，請使用最新的 AWS SDK/CLI 版本來使用 CloudWatch 支援的最新通訊協定。將您的 AWS SDK 升級至指定的版本或任何後續版本。


**SDK 用戶端通訊協定支援**  

| Language | 通訊協定 | 軟體開發套件版本 | 
| --- | --- | --- | 
| C\$1\$1 | RPC v2 CBOR | [1.11.708](https://github.com/aws/aws-sdk-cpp/releases/tag/1.11.708) | 
| Golang 2.x | RPC v2 CBOR | [1.53.0](https://github.com/aws/aws-sdk-go-v2/releases/tag/service%2Fcloudwatch%2Fv1.53.0) | 
| Java 1.x | RPC v2 CBOR | [1.12.795](https://github.com/aws/aws-sdk-java/releases/tag/1.12.795) | 
| Java 2.x | RPC v2 CBOR | [2.40.6](https://github.com/aws/aws-sdk-java-v2/releases/tag/2.40.6) | 
| JavaScript v3.x | AWS JSON 1.0 | [3.949.0](https://github.com/aws/aws-sdk-js-v3/releases/tag/v3.949.0) | 
| .NET v3 | AWS JSON 1.0 | [3.7.1182.0](https://github.com/aws/aws-sdk-net/releases/tag/3.7.1182.0) | 
| .NET v4 | RPC v2 CBOR | [4.0.150.0](https://github.com/aws/aws-sdk-net/releases/tag/4.0.150.0) | 
| PHP | AWS JSON 1.0 | [3.367.0](https://github.com/aws/aws-sdk-php/releases/tag/3.367.0) | 
| Python-boto3 | AWS JSON 1.0 | [1.42.7](https://github.com/boto/boto3/releases/tag/1.42.7) | 
| Python-botocore | AWS JSON 1.0 | [1.42.7](https://github.com/boto/botocore/releases/tag/1.42.7) | 
| AWS CLI v1 | AWS JSON 1.0 | [1.43.13](https://github.com/aws/aws-cli/releases/tag/1.43.13) | 
| AWS CLI v2 | AWS JSON 1.0 | [2.32.14](https://github.com/aws/aws-cli/releases/tag/2.32.14) | 
| Ruby | AWS JSON 1.0 | [1.126.0](https://github.com/aws/aws-sdk-ruby/commit/3b09588cf49079453ef372cdcd51eaab8d8114a9) | 
| PowerShell | AWS JSON 1.0 | [5.0.114](https://github.com/aws/aws-tools-for-powershell/commit/22b7f44d079b84fd245273ea554ae57d07e8a017) | 
| Rust | RPC v2 CBOR | [1.100.0](https://github.com/awslabs/aws-sdk-rust/releases/tag/release-2025-12-10) | 
| Swift | RPC v2 CBOR | [1.6.14](https://github.com/awslabs/aws-sdk-swift/releases/tag/1.6.14) | 
| Kotlin | RPC v2 CBOR | [1.5.100](https://github.com/aws/aws-sdk-kotlin/releases/tag/v1.5.100) | 

## 為我的 CloudWatch 工作負載啟用這些新通訊協定存在哪些風險？
<a name="risks"></a>

對於客戶而言，遷移到這些新 SDK 版本應該是完全透明且輕鬆的。與清單中`null`的值處理方式相關的通訊協定之間存在一個已知行為變更：與先前的 AWS 查詢通訊協定相比， AWS JSON 和 Smithy RPC v2 CBOR 通訊協定中的清單輸入可能包含`null`值的 CloudWatch API 呼叫將採用不同的處理方式：在 AWS 查詢通訊協定中，清單內的 null 值將被移除，而在 JSON/CBOR 通訊協定中將透過 API 呼叫傳播。

此外，如果您使用 AWS SDK 的自訂實作或自訂用戶端和 AWS SDK 的組合來與產生以 AWS 查詢為基礎的 （也稱為以 XML 為基礎的） 回應的 CloudWatch 互動，則可能與 AWS JSON 或 CBOR 通訊協定不相容。如果您遇到任何問題，請聯絡 AWS Support。

## 如果我已經使用最新的 AWS SDK 版本，但我的開放原始碼解決方案不支援 JSON 或 CBOR，該怎麼辦？
<a name="compatibility-issues"></a>

必須將 SDK 版本變更為之前的版本。請參閱 [如何開始使用較新的 CloudWatch 通訊協定？](#getting-started)一節，然後選取低於列出的版本。如果您將 AWS SDK 變更為舊版，CloudWatch APIs將使用 AWS 查詢通訊協定。

## CloudWatch APIs 中使用的 AWS JSON 和 CBOR 通訊協定支援哪些區域
<a name="region-support"></a>

CloudWatch 在所有可使用 CloudWatch [AWS 的區域中](https://docs.aws.amazon.com/general/latest/gr/rande.html#cw_region)支援 AWS JSON 和 CBOR 通訊協定。

## 使用較新的通訊協定升級至 CloudWatch 的指定 AWS SDK 版本時，可以預期哪些延遲改善？
<a name="performance-improvements"></a>

與 AWS 查詢相比，JSON 和 CBOR 最多可降低 80% 的延遲和 CPU 使用量。這兩種通訊協定的網路頻寬使用效率都會提高 20%。

## AWS 查詢通訊協定是否會棄用？
<a name="protocol-deprecation"></a>

AWS 將繼續支援查詢通訊協定。只要軟體 AWS 開發套件版本在 中列出的版本之前設定任何版本，您就可以繼續使用 AWS 查詢通訊協定[如何開始使用較新的 CloudWatch 通訊協定？](#getting-started)。

## 哪裡可以找到有關 AWS JSON 和 Smithy RPC v2 CBOR 通訊協定的詳細資訊？
<a name="more-information"></a>

您可以在 Smithy 文件中找到有關 JSON 通訊協定在 [AWS JSON 1.0](https://smithy.io/2.0/aws/protocols/aws-json-1_0-protocol.html) 通訊協定的詳細資訊，以及在 Smithy 文件中找到有關 [AWS RPC v2 CBOR 通訊協定的 CBOR](https://smithy.io/2.0/additional-specs/protocols/smithy-rpc-v2.html) 的詳細資訊。

如需 CloudWatch API 請求的詳細資訊，請參閱《CloudWatch API 參考指南》中的[提出 API 請求](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/making-api-requests.html)。