CloudWatch 支援的通訊協定常見問答集 - Amazon CloudWatch

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

CloudWatch 支援的通訊協定常見問答集

CloudWatch SDKs開始使用兩個額外的通訊協定:AWS JSON 1.1Smithy RPC v2 CBOR。這些通訊協定的效能高於 CloudWatch SDKs和 CLIs先前使用的 AWS 查詢。 AWS SDKs會優先考慮每種語言效能最佳的通訊協定。

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

什麼是 Smithy RPC v2 CBOR 通訊協定?它與現有的 CloudWatch API 請求和回應有何不同?

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

  • CloudWatch RPC v2 CBOR 通訊協定充當 CloudWatch 用戶端與伺服器之間的中介者。

  • CloudWatch SDK 會處理 CloudWatch 用戶端和伺服器之間的序列化 (將物件轉換為 CBOR 格式) 和還原序列化 (將 CBOR 格式轉換為物件)。

如何開始使用較新的 CloudWatch 通訊協定?

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

SDK 用戶端通訊協定支援
Language 通訊協定 軟體開發套件版本
C++ RPC v2 CBOR 1.11.708
Golang 2.x RPC v2 CBOR 1.53.0
Java 1.x AWS JSON 1.1 1.12.795
Java 2.x RPC v2 CBOR 2.40.6
JavaScript v3.x AWS JSON 1.1 3.949.0
.NET v3 AWS JSON 1.1 3.7.1182.0
.NET v4 RPC v2 CBOR 4.0.150.0
PHP AWS JSON 1.1 3.367.0
Python-boto3 AWS JSON 1.1 1.42.7
Python-botocore AWS JSON 1.1 1.42.7
AWS CLI v1 AWS JSON 1.1 1.43.13
AWS CLI v2 AWS JSON 1.1 2.32.14
Ruby AWS JSON 1.1 1.126.0
PowerShell AWS JSON 1.1 5.0.114
Rust RPC v2 CBOR 1.100.0
Swift RPC v2 CBOR 1.6.14
Kotlin RPC v2 CBOR 1.5.100

為我的 CloudWatch 工作負載啟用這些新通訊協定存在哪些風險?

對於客戶而言,遷移到這些新 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,該怎麼辦?

必須將 SDK 版本變更為之前的版本。請參閱 如何開始使用較新的 CloudWatch 通訊協定?一節,然後選取低於列出的版本。如果您將 AWS SDK 變更為舊版,CloudWatch APIs將使用 AWS 查詢通訊協定。

CloudWatch APIs 中使用的 AWS JSON 和 CBOR 通訊協定支援哪些區域

CloudWatch 在所有可使用 CloudWatch AWS 的區域中支援 AWS JSON 和 CBOR 通訊協定。

使用較新的通訊協定升級至 CloudWatch 的指定 AWS SDK 版本時,可以預期哪些延遲改善?

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

AWS 查詢通訊協定是否會棄用?

AWS 將繼續支援查詢通訊協定。只要軟體 AWS 開發套件版本在 中列出的版本之前設定任何版本,您就可以繼續使用 AWS 查詢通訊協定如何開始使用較新的 CloudWatch 通訊協定?

哪裡可以找到 AWS JSON 和 Smithy RPC v2 CBOR 通訊協定的詳細資訊?

您可以在 Smithy 文件中找到有關 JSON 通訊協定在 AWS JSON 1.1 通訊協定的詳細資訊,以及 Smithy 文件中有關 AWS RPC v2 CBOR 通訊協定的 CBOR 的詳細資訊。

如需 CloudWatch API 請求的詳細資訊,請參閱《CloudWatch API 參考指南》中的提出 API 請求