# AWS.SQS.SdkException：消息大小超过最大允许值（256 KB）

- **ID:** `cloud/aws-sqs-message-size-exceeded`
- **领域:** cloud
- **类别:** resource_error
- **错误码:** `AWS.SQS.SdkException`
- **验证级别:** ai_generated
- **修复率:** 90%

## 根因

Amazon SQS 将单个消息负载限制为 256 KB（包括元数据）；发送更大的消息会触发此异常。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| AWS SDK for Python 1.32.0 | active | — | — |
| AWS SDK for Java 2.21.0 | active | — | — |
| SQS API 2012-11-05 | active | — | — |

## 解决方案

1. ```
   将大负载存储在 Amazon S3 中，并在 SQS 消息中发送 S3 对象键。例如：上传到 S3，然后发送 JSON {'s3_bucket': 'my-bucket', 's3_key': 'path/to/payload.json'}。
   ```
2. ```
   使用 SQS Extended Client Library（Java 或 Python），自动处理基于 S3 的大消息。
   ```
3. ```
   通过移除不必要的元数据或使用更紧凑的格式（如 Protocol Buffers 而非 JSON）来减少消息负载。
   ```

## 无效尝试

- **** — Compression is not transparent; the receiver must implement decompression, and the raw size limit still applies. (60% 失败率)
- **** — SQS does not guarantee order across multiple messages unless using FIFO queues with a message group ID. (80% 失败率)
