

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

# Amazon SQS AWS JSON 通訊協定FAQs
<a name="sqs-json-faqs"></a>

本主題涵蓋搭配 Amazon SQS 使用 AWS JSON 通訊協定的常見問題。

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

JSON 是用於異質系統之間通訊的最廣泛使用和接受的佈線方法之一。Amazon SQS 使用 JSON 在 AWS SDK 用戶端 (例如 Java、Python、Golang、JavaScript) 和 Amazon SQS 伺服器之間進行通訊。Amazon SQS API 操作的 HTTP 請求接受 JSON 格式的輸入。系統會執行 Amazon SQS 操作，而回應會以 JSON 格式傳回 SDK 用戶端。與 AWS 查詢相比，JSON 可更有效率地在用戶端和伺服器之間傳輸資料。
+ Amazon SQS AWS JSON 通訊協定充當 Amazon SQS 用戶端和伺服器之間的中介裝置。
+ 伺服器不了解建立 Amazon SQS 操作的程式設計語言，但了解 AWS JSON 通訊協定。
+ Amazon SQS AWS JSON 通訊協定使用 Amazon SQS 用戶端和伺服器之間的序列化 （將物件轉換為 JSON 格式） 和還原序列化 （將 JSON 格式轉換為物件）。

## 如何開始使用 Amazon SQS 的 AWS JSON 通訊協定？
<a name="json-protocol-getting-started"></a>

若要開始使用最新的 AWS SDK 版本，以實現 Amazon SQS 的更快傳訊，請將您的 AWS SDK 升級到指定的版本或任何後續版本。若要進一步了解 SDK 用戶端，請參閱下表中的「指南」資料欄。

以下是 AWS JSON 通訊協定與 Amazon SQS APIs 搭配使用之不同語言版本的 SDK 版本清單：


| Language | SDK 用戶端儲存庫 | 必要的 SDK 用戶端版本 | 指南 | 
| --- | --- | --- | --- | 
| C\+\+ | [aws/aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp) | [1.11.98](https://github.com/aws/aws-sdk-cpp/releases/tag/1.11.198) | [AWS 適用於 C\+\+ 的 SDK](https://aws.amazon.com/sdk-for-cpp/) | 
| Golang 1.x | [aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) | [v1.47.7](https://github.com/aws/aws-sdk-go/releases/tag/v1.47.7) | [AWS 適用於 Go 的 SDK](https://aws.amazon.com/sdk-for-go/) | 
| Golang 2.x | [aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) | [v1.28.0](https://github.com/aws/aws-sdk-go-v2/blob/release-2023-11-09/service/sqs/CHANGELOG.md#v1270-2023-11-09) | [AWS 適用於 Go V2 的 SDK](https://aws.github.io/aws-sdk-go-v2/docs/) | 
| Java 1.x | [aws/aws-sdk-java](https://github.com/aws/aws-sdk-java) | [1.12.585](https://github.com/aws/aws-sdk-java/releases/tag/1.12.585) | [AWS 適用於 Java 的開發套件](https://aws.amazon.com/sdk-for-java/) | 
| Java 2.x | [aws/aws-sdk-java-v2](https://github.com/aws/aws-sdk-java-v2) | [2.21.19](https://github.com/aws/aws-sdk-java-v2/releases/tag/2.21.19) | [AWS 適用於 Java 的開發套件](https://aws.amazon.com/sdk-for-java/) | 
| JavaScript v2.x | [aws/aws-sdk-js](https://github.com/aws/aws-sdk-js) | [上的 JavaScript AWS](https://aws.amazon.com/developer/language/javascript/) | 
| JavaScript v3.x | [aws/aws-sdk-js-v3](https://github.com/aws/aws-sdk-js-v3) | [v3.447.0](https://github.com/aws/aws-sdk-js-v3/releases/tag/v3.447.0) | [上的 JavaScript AWS](https://aws.amazon.com/developer/language/javascript/) | 
| .NET | [aws/aws-sdk-net](https://github.com/aws/aws-sdk-net) | [3.7.681.0](https://github.com/aws/aws-sdk-net/releases/tag/3.7.681.0) | [AWS 適用於 .NET 的 SDK](https://aws.amazon.com/sdk-for-net/) | 
| PHP | [aws/aws-sdk-php](https://github.com/aws/aws-sdk-php) | [3.285.2](https://github.com/aws/aws-sdk-php/releases/tag/3.285.2) | [AWS 適用於 PHP 的 SDK](https://aws.amazon.com/sdk-for-php/) | 
| Python-boto3 |  [boto/boto3](https://github.com/boto/boto3)  | [1.28.82](https://github.com/boto/boto3/releases/tag/1.28.82) | [AWS 適用於 Python 的 SDK (Boto3)](https://aws.amazon.com/sdk-for-python/) | 
| Python-botocore |  [boto/botocore](https://github.com/boto/botocore/)  | [1.31.82](https://github.com/boto/botocore/releases/tag/1.31.82) | [AWS 適用於 Python 的 SDK (Boto3)](https://aws.amazon.com/sdk-for-python/) | 
| awscli | [AWS CLI](https://github.com/aws/aws-cli) | [1.29.82](https://github.com/aws/aws-cli/releases/tag/1.29.82) | [AWS命令列介面](https://aws.amazon.com/cli/) | 
| Ruby | [aws/aws-sdk-ruby](https://github.com/aws/aws-sdk-ruby) | [1.67.0](https://rubygems.org/gems/aws-sdk-sqs/versions/1.67.0) | [AWS 適用於 Ruby 的 SDK](https://aws.amazon.com/sdk-for-ruby/) | 

## 為我的 Amazon SQS 工作負載啟用 JSON 通訊協定有何風險？
<a name="json-protocol-risks"></a>

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

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

您必須將 SDK 版本變更為您正在使用的版本之前的版本。[如何開始使用 Amazon SQS 的 AWS JSON 通訊協定？](#json-protocol-getting-started) 如需詳細資訊，請參閱 中列出的 AWS SDK 版本[如何開始使用 Amazon SQS 的 AWS JSON 通訊協定？](#json-protocol-getting-started)使用 Amazon SQS APIs的 JSON 線路通訊協定。如果您將 AWS SDK 變更為舊版，Amazon SQS APIs 將使用 AWS 查詢。

## Amazon SQS APIs 中使用的 AWS JSON 通訊協定支援哪些語言？
<a name="json-protocol-supported-languages"></a>

Amazon SQS 支援所有正式推出 AWS SDKs的語言變體 (GA)。目前，我們不支援 Kotlin、Rust 或 Swift。若要深入了解其他語言變體，請參閱[在 AWS上建立的工具](https://aws.amazon.com/developer/tools/)。

## Amazon SQS APIs 中使用的 AWS JSON 通訊協定支援哪些區域
<a name="json-protocol-supported-regions"></a>

Amazon SQS 在所有可使用 Amazon SQS 的[AWS 區域中](https://docs.aws.amazon.com/general/latest/gr/sqs-service.html)支援 AWS JSON 通訊協定。

## 使用 AWS JSON 通訊協定升級至 Amazon SQS 的指定 AWS SDK 版本時，可以預期哪些延遲改善？
<a name="json-protocol-upgrading-sdk"></a>

AWS 與 AWS 查詢通訊協定相比，JSON 通訊協定在序列化和還原序列化請求和回應方面更有效率。根據 5 KB 訊息承載 AWS 的效能測試，Amazon SQS 的 JSON 通訊協定可將end-to-end訊息處理延遲降低高達 23%，並減少應用程式用戶端 CPU 和記憶體使用量。

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

AWS 查詢通訊協定將繼續受到支援。只要 AWS 軟體開發套件版本已設定任何先前版本，且該版本列於如何開始使用 Amazon SQS 的 JSON 通訊協定中，您就可以繼續使用 AWS 查詢通訊協定。 [AWS Amazon SQS](#json-protocol-getting-started)

## 哪裡可以找到 JSON AWS 通訊協定的詳細資訊？
<a name="json-protocol-more-info"></a>

您可以在 *Smithy* 文件中的 [AWS JSON 1.0 通訊協定](https://smithy.io/2.0/aws/protocols/aws-json-1_0-protocol.html)中找到有關 JSON 通訊協定的更多資訊。如需使用 AWS JSON 通訊協定的 Amazon SQS API 請求的詳細資訊，請參閱 [在 Amazon SQS 中使用 AWS JSON 通訊協定提出查詢 API 請求](sqs-making-api-requests-json.md)。