本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CloudWatch 支援的通訊協定常見問答集
CloudWatch SDKs開始使用兩個額外的通訊協定:AWS JSON 1.1
什麼是 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 升級至指定的版本或任何後續版本。
| 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
如需 CloudWatch API 請求的詳細資訊,請參閱《CloudWatch API 參考指南》中的提出 API 請求。