# @crvouga/mockingbird-service-sqs 中文文档

规范地址：https://npmcn.com/package/%40crvouga/mockingbird-service-sqs/

版本：3\.11\.0
npm 元数据更新时间：2026-11-11T02:36:38.575Z
中文译文更新时间：2026-11-11T02:44:21.177Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40crvouga/mockingbird-service-sqs
原文对照：https://npmcn.com/package/%40crvouga/mockingbird-service-sqs/?lang=original
项目主页：https://github.com/crvouga/mockingbird/tree/main/packages/service/sqs#readme
源码仓库：https://github.com/crvouga/mockingbird

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：4.3 MB，18 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2026-09-23T00:02:42.523Z
- 最新版本发布：2026-11-11T02:36:38.149Z
- 近 30 天下载量：14643（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：38（近 12 个月 38 个）

## 中文简介

具有能见度的有状态的亚马逊SQS模拟器,FIFO订购,分解,分批,再驱动.

## 安装

```sh
npm install @crvouga/mockingbird-service-sqs
```

也可以使用：`pnpm add @crvouga/mockingbird-service-sqs`、`yarn add @crvouga/mockingbird-service-sqs`、`bun add @crvouga/mockingbird-service-sqs`

## README

# @crvouga/ mockingbird-service-sqs (中文(简体) )

> 本地模拟器。 真正的API合同. 部分 [嘲笑鸟](https://github.com/crvouga/mockingbird)。 。 。 .

AWS SDK v3 的状态亚马逊SQS模拟器. 它模拟了标准的和FIFO队列,消息属性,能见度和收件手柄,分批,去重复,清除锁,和不与AWS联系而重新驱动的死字母.

## 安装

```bash
npm install -D @crvouga/mockingbird-service-sqs
```

仅限无害环境管理。 节点22+或Bun 1.2+.

## 使用量

点 `SQS_ENDPOINT_URL` 或 AWS SDK 软件 `endpoint` 选项。 接受Fixture SigV4证书.

```ts
import {
  GetQueueUrlCommand,
  ReceiveMessageCommand,
  SendMessageCommand,
  SQSClient,
} from "@aws-sdk/client-sqs"
import { createServer } from "@crvouga/mockingbird-service-sqs/server"

// Test setup: start the emulator with a seeded queue and point the SDK's endpoint at it.
const server = await createServer({
  queues: [{ name: "jobs", attributes: { VisibilityTimeout: "30" } }],
})
const sqs = new SQSClient({
  endpoint: server.url,
  region: "us-east-1",
  credentials: { accessKeyId: "fixture", secretAccessKey: "fixture" },
})

// Application code: the SQS SDK calls it already makes.
const { QueueUrl } = await sqs.send(new GetQueueUrlCommand({ QueueName: "jobs" }))
await sqs.send(new SendMessageCommand({ QueueUrl, MessageBody: JSON.stringify({ job: "resize" }) }))
const { Messages } = await sqs.send(new ReceiveMessageCommand({ QueueUrl }))
console.log(Messages?.[0]?.Body) // {"job":"resize"}

await server.close()
```

所支持的操作有: CreateQueet, ListQueets, Get QueeUrl, DevedQueet, SetQueet 属性, Get 属性, TagQueet, UntagQueet, ListQueetes, ListDeadlete ResourceQueets, SendMessage, ReceptMessage, DreadMessage, DevedMessageBatch, ChangeMessage Visicity, ChangeMessibility Batch,和purgeQue. 接收最大消息,能见度超时,等待时间,系统属性选择,以及消息属性选择. 被注入的共享时钟控制能见度已过期并重新驱动而无睡眠.

每个条目的蝙蝠声回答 : `DeleteMessageBatch` 财务报告和审定财务报表 `ChangeMessageVisibilityBatch` 列出每个条目 `Successful` 或者说 `Failed` (处理从未发布的队列失败为 `ReceiptHandleIsInvalid` 其余的则仍然成功。 以一个被取代的手柄删除,这个手柄来自之前再次收到的信件,但作为AWS文档在不删除信件的情况下成功. `ListQueues` 过滤器由 `QueueNamePrefix` 页面 `MaxResults` 财务报告和审定财务报表 `NextToken`。 。 。 . `DeleteQueue` 减少队列及其消息. `SetQueueAttributes` 验证和替换给定的属性,然后得到它们的使用.

### 投票时间长

一个空的 `ReceiveMessage` 为 `WaitTimeSeconds` (0至20),或队列的 `ReceiveMessageWaitTimeSeconds` 当呼叫省略时; `WaitTimeSeconds: 0` 从不等待。 等待是在模拟器的时钟上测量的,所以它保持不变:

-   等待期间发送的信息( E)`SendMessage`,一个批, `POST /__admin/messages`)或可见(`ChangeMessageVisibility` 0, 到期的延迟或能见度超时)发布所持请求, 请求用它回答 `ApproximateReceiveCount` 1. 联合国.
-   在一个活钟上(一个服务堆),等待是真实的。 在被冷冻的时钟上,它持续到测试在等待时间前将时钟提前(`clock.advance(3000)` 或者说 `POST /__admin/clock`),然后回答没有 `Messages`。 。 。 .
-   虚拟时间 :`virtualTime: true`,参见 Admin 控件) 等用在命名空间时钟上,同时不睡觉.
-   一个在持有时断开连接的客户端会停止等待直到收到任何信息,因此没有留下任何信息被隐藏. 等待回答时删除了队列 `AWS.SimpleQueueService.NonExistentQueue`。 。 。 .
-   `createServer({ longPoll: false })` (或 `createRuntime`)保留依赖它的套房的旧即时答案.

有人要求每25毫秒实时投票一次.

证据: [短票和长票](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html) 编辑 [接收信件参考](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html),从文件中执行(未观察到SQS直播). `WaitTimeSeconds` 20岁以上 `InvalidParameterValue`页:1.

### 未知的操作

一个 `X-Amz-Target` 在查找任何队列前, 不拒绝模拟器回答, 因为 `400 UnknownOperationException` (单位:千美元)`{"__type":"UnknownOperationException","message":"Unknown operation Nope"}`),从不作为缺失的队列. 存在但没有模型化的SQS业务(`AddPermission`, (中文(简体) ), `RemovePermission`, (中文(简体) ), `StartMessageMoveTask`, (中文(简体) ), `CancelMessageMoveTask`, (中文(简体) ), `ListMessageMoveTasks`) 与信件获得相同的类型 `<Operation> is an Amazon SQS operation this emulator does not implement.`,因此除了队列缺失之外,还有一个操作缺失.

最好的猜测,不是甲骨文验证: [AWS JSON 1.0 协议](https://smithy.io/2.0/aws/protocols/aws-json-1_0-protocol.html) 报告一项未确认的行动为: `__type` 命名失败,此模拟器使用 `UnknownOperationException` 在此 repo 使用中命名其他 AWS 模拟器。 准确 `__type` 现场SQS发送(可能是 `com.amazon.coral.service#UnknownOperationException` 未观测到窗体; SDK 客户端在名称空间之前脱去 `#`,因此它们看到相同的错误名称.

### 管理和确定性控制

-   `GET /__admin/queues` 显示队列深度; `GET /__admin/messages?queue=…` 曝光本地原始消息.
-   `POST /__admin/messages` 安装固定装置; `POST /__admin/messages/:id/receive-count` 设置再驱动状态; `POST /__admin/messages/:id/duplicate` 使飞行中的信息可以立即传送.
-   `POST /__admin/queues/:name/drain` 从解剖学上来说,排出一队.
-   错误预设为 `throttled` 和一发子弹 `unavailable`;通用断层可以延迟或复制调用层的收件.

共享运行时间供应重置,时钟,日记,时间线,度量衡,断层,和命名空间隔离. 选择一个命名空间通过 `x-mockingbird-namespace`, (中文(简体) ), `/__admin/ns/<name>`,或SigV4存取键映射.

### 故意不模拟

上面列出的表面以外的操作( 排队权限和信件移动任务回答) `UnknownOperationException`),IAM政策评价,服务器侧加密,生产吞吐量和尺寸限制超过1 MiB信息限制,AWS仪表板,以及计费等没有被模拟. 队列缺失错误使用遗留 `AWS.SimpleQueueService.NonExistentQueue` 代码,而不是 `QueueDoesNotExist` 命名较新的 SDKs 映射它; `GetQueueUrl` 用于删除的队列失败.

## API 密码

-   `SqsAPI`, (中文(简体) ), `SqsAPIOptions`, (中文(简体) ), `SqsSeedQueue`AWS JSON 处理器和固定装置.
-   `SqsMessage`, (中文(简体) ), `SqsMessageAttribute`, (中文(简体) ), `SqsQueue`:状态类型.
-   `createRuntime`, (中文(简体) ), `SqsRuntime`, (中文(简体) ), `SqsRuntimeOptions`:满口口鸟跑.
-   `SQS_NAMESPACE`, (中文(简体) ), `SQS_PRESETS`, (中文(简体) ), `accessKeyCredential`:常数与控制.
-   `document`, (中文(简体) ), `operationIds`, (中文(简体) ), `supportedOperationIds`: 生成了 OpenAPI 元数据.
-   `createServer`, (中文(简体) ), `SqsServerOptions`, (中文(简体) ), `DEFAULT_PORT`, (中文(简体) ), `serveTarget` 从 `./server`:节点HTTP适配器和CLI集成.

官方预言: [亚马逊 SQS API 参考](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/Welcome.html)。 。 。 .

## 常见问题

### @crvouga/mockingbird-service-sqs 是什么？

具有能见度的有状态的亚马逊SQS模拟器,FIFO订购,分解,分批,再驱动\.

### 如何安装 @crvouga/mockingbird-service-sqs？

在项目目录运行 npm install @crvouga/mockingbird-service-sqs，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 mockingbird-sqs，可以用 npx mockingbird-sqs 直接运行。

### @crvouga/mockingbird-service-sqs 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @crvouga/mockingbird-service-sqs 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @crvouga/mockingbird-service-sqs 可以商用吗？

@crvouga/mockingbird-service-sqs 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @crvouga/mockingbird-service-sqs 的下载量有多少？

根据 npm 官方下载统计，@crvouga/mockingbird-service-sqs 在 2026/10/11 – 2026/11/09 这 30 天内被下载 14,643 次，日均约 488 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @crvouga/mockingbird-service-sqs 还在维护吗？

最新版本 3\.11\.0 发布于 2026/11/11（今天）；至今共发布 38 个版本，其中过去 12 个月发布了 38 个；首次发布于 2026/09/23。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

