

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 亚马逊 SQS Amazon JSON 协议 FAQs
<a name="sqs-json-faqs"></a>

本主题涵盖了有关在 Amazon SQS 中使用 Amazon JSON 协议的常见问题。

## 什么是 Amazon JSON 协议，它与现有的 Amazon SQS API 请求和响应有何不同？
<a name="json-protocol-what-is"></a>

JSON 是在异构系统之间进行通信时最广为使用和接受的连接方法之一。亚马逊 SQS 使用 JSON 作为媒介在 S Amazon DK 客户端（例如 Java、Python、Golang JavaScript）和亚马逊 SQS 服务器之间进行通信。Amazon SQS API 操作的 HTTP 请求接受 JSON 形式的输入。系统会执行 Amazon SQS 操作，然后将执行的响应以 JSON 的形式反过来共享给 SDK 客户端。与 Amazon 查询相比，JSON 在客户端和服务器之间的数据传输方面效率更高。
+ 亚马逊 SQS Amazon JSON 协议充当亚马逊 SQS 客户端和服务器之间的中介。
+ 服务器不理解创建 Amazon SQS 操作所用的编程语言，但它能理解 Amazon JSON 协议。
+ 亚马逊 SQS Amazon JSON 协议在亚马逊 SQS 客户端和服务器之间使用序列化（将对象转换为 JSON 格式）和反序列化（将 JSON 格式转换为对象）。

## 如何开始使用适用于亚马逊 SQS 的 Amazon JSON 协议？
<a name="json-protocol-getting-started"></a>

要开始使用最新版本的 Amazon SDK，以便更快地向 Amazon SQS 发送消息，请将您的 Amazon 软件开发工具包升级到指定版本或任何后续版本。要详细了解 SDK 客户端，请参阅下表中的“指南”一列。

以下是适用于亚马逊 SQS APIs 的 JS Amazon ON 协议跨语言变体的软件开发工具包版本列表：


| 语言 | SDK 客户端存储库 | 所需的 SDK 客户端版本 | 指南 | 
| --- | --- | --- | --- | 
| C\+\+ | [啊/ 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) | [Amazon 适用于 C\+\+ 的 SDK](https://www.amazonaws.cn/sdk-for-cpp/) | 
| Golang 1.x | [啊/ 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) | [Amazon 适用于 Go 的 SDK](https://www.amazonaws.cn/sdk-for-go/) | 
| Golang 2.x | [aws/ 2 aws-sdk-go-v](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) | [Amazon 适用于 Go V2 的 SDK](https://aws.github.io/aws-sdk-go-v2/docs/) | 
| Java 1.x | [啊/ 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) | [Amazon 适用于 Java 的 SDK](https://www.amazonaws.cn/sdk-for-java/) | 
| Java 2.x | [aws/ 2 aws-sdk-java-v](https://github.com/aws/aws-sdk-java-v2) | [2.21.19](https://github.com/aws/aws-sdk-java-v2/releases/tag/2.21.19) | [Amazon 适用于 Java 的 SDK](https://www.amazonaws.cn/sdk-for-java/) | 
| JavaScript v2.x | [啊/ aws-sdk-js](https://github.com/aws/aws-sdk-js) | [JavaScript on Amazon](https://www.amazonaws.cn/developer/language/javascript/) | 
| JavaScript v3.x | [aws/ 3 aws-sdk-js-v](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 on Amazon](https://www.amazonaws.cn/developer/language/javascript/) | 
| .NET | [啊/ 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) | [Amazon 适用于 .NET 的 SDK](https://www.amazonaws.cn/sdk-for-net/) | 
| PHP | [啊/ 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) | [Amazon 适用于 PHP 的 SDK](https://www.amazonaws.cn/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) | [Amazon 适用于 Python (Boto3) 的 SDK](https://www.amazonaws.cn/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) | [Amazon 适用于 Python (Boto3) 的 SDK](https://www.amazonaws.cn/sdk-for-python/) | 
| awscli | [Amazon CLI](https://github.com/aws/aws-cli) | [1.29.82](https://github.com/aws/aws-cli/releases/tag/1.29.82) | [Amazon命令行界面](https://www.amazonaws.cn/cli/) | 
| Ruby | [啊/ aws-sdk-ruby](https://github.com/aws/aws-sdk-ruby) | [1.67.0](https://rubygems.org/gems/aws-sdk-sqs/versions/1.67.0) | [Amazon 适用于 Ruby 的 SDK](https://www.amazonaws.cn/sdk-for-ruby/) | 

## 为我的 Amazon SQS 工作负载启用 JSON 协议有什么风险？
<a name="json-protocol-risks"></a>

如果您使用软件开发工具包的自定义实现或自定义客户端和 Amazon Amazon 软件开发工具包的组合来与生成基于 Amazon 查询（又名基于 XML）的响应的 Amazon SQS 进行交互，则可能与 JSON 协议不兼容。 Amazon 如果您遇到任何问题，请联系 Supp Amazon ort。

## 如果我已经使用最新的 Amazon SDK 版本，但我的开源解决方案不支持 JSON，该怎么办？
<a name="json-protocol-sdk-version-open-source"></a>

您必须将 SDK 版本更改为当前所用版本之前的版本。有关[如何开始使用适用于亚马逊 SQS 的 Amazon JSON 协议？](#json-protocol-getting-started)更多信息，请参阅。 Amazon 中列出的软件开发工具包版本[如何开始使用适用于亚马逊 SQS 的 Amazon JSON 协议？](#json-protocol-getting-started)使用适用于 Amazon SQS APIs 的 JSON 有线协议。如果您将 Amazon 软件开发工具包更改为先前版本，则您的 Amazon SQS APIs 将使用该查询。 Amazon 

## 亚马逊 SQS APIs 中使用的 Amazon JSON 协议支持哪些语言？
<a name="json-protocol-supported-languages"></a>

Amazon SQS 支持所有通用语言变体 (GA)。 Amazon SDKs 目前，我们不支持 Kotlin、Rust 或 Swift。要详细了解其他语言变体，请参阅[用于在 Amazon上进行构建的工具](https://www.amazonaws.cn/developer/tools/)。

## 亚马逊 SQS 中使用的 Amazon JSON 协议支持哪些区域 APIs
<a name="json-protocol-supported-regions"></a>

亚马逊 SQS 在所有提供亚马逊 SQS 的[Amazon 地区](https://docs.amazonaws.cn/general/latest/gr/sqs-service.html)都支持 Amazon JSON 协议。

## 使用 JS Amazon ON 协议升级到适用于 Amazon SQS 的指定 Amazon 软件开发工具包版本时，我可以期待哪些延迟改善？
<a name="json-protocol-upgrading-sdk"></a>

Amazon 与查询协议相比，JSON 协议在请求和响应的序列化和反序列化方面效率更高。 Amazon 根据对 5 KB 消息负载的 Amazon 性能测试，适用于 Amazon SQS 的 JSON 协议可将 end-to-end消息处理延迟减少多达 23%，并减少应用程序客户端 CPU 和内存使用量。

## Amazon 查询协议会被弃用吗？
<a name="query-protocol"></a>

Amazon 将继续支持查询协议。只要你的 Amazon SDK 版本设置了除[如何开始使用 Amazon SQS 的 JS Amazon ON 协议中列出的版本之外的任何先前版本，你就可以继续使用 Amazon 查询协议](#json-protocol-getting-started)。

## 在哪里可以找到有关 Amazon JSON 协议的更多信息？
<a name="json-protocol-more-info"></a>

您可以在 *Smithy* 文档的 [Amazon JSON 1.0 协议](https://smithy.io/2.0/aws/protocols/aws-json-1_0-protocol.html)中找到有关 JSON 协议的更多信息。有关使用 Amazon JSON 协议的 Amazon SQS API 请求的更多信息，请参阅[在 Amazon SQS 中使用 Amazon JSON 协议发出查询 API 请求](sqs-making-api-requests-json.md)。