@coorpacademy/serverless-offline-eventbridge

中文文档
1.0.1发布于 2026/07/07MITCommonJS近 30 天下载 2680

开发您的无服务器项目时, 在本地模拟 AWS 和 EventBridge

中文使用文档
文档目录9 节
  1. 无服务器框架 v4
  2. 安装
  3. 怎么样?
  4. 配置
  5. 职能
  6. 云阵 AWS::Events::Rule 资源
  7. 事件桥插件选项
  8. 支持的事件Pattern 内容过滤器
  9. 归属

@coorpacademy/ serverles-offline-eventbridge (英语)

这个无服务器离线插件在您的本地机器上模拟 AWS 和 EventBridge 。 它暴露了一个 当地 PutEvents 结束点, 每一次发布的事件都会通过真实的事件Bridge 事件处理器 匹配器,并通过 serverless-offline自己的蓝巴达跑道.

特征数字 :

  • 进行中 PutEvents 端点+内相事件总线- 不需要额外容器。 。 。 .
  • 真实事件桥 事件处理器 匹配 (e)source, (中文(简体) ), detail-type,筑起 detail, (中文(简体) ), resources, (中文(简体) ), $or,和内容过滤器 prefix, (中文(简体) ), suffix, (中文(简体) ), anything-but, (中文(简体) ), exists, (中文(简体) ), equals-ignore-case, (中文(简体) ), numeric, (中文(简体) ), wildcard, (中文(简体) ), cidr) (中文(简体) ).
  • 授予两个函数级别 eventBridge: 事件 财务报告和审定财务报表 原始云阵 AWS::Events::Rule 资源.
  • 以备份重试, 可选 destinations.onFailure (DLQ)针对当地SQS的模拟 终点.

无服务器框架 v4

此插件支持 无服务器框架 v3 和 v4。它从插件中取出日志 构造器的 3 第 个参数 ({log}) 并倒转 console 当它缺席,所以没有 升级时需要改变配置.

安装

第一,添加 @coorpacademy/serverless-offline-eventbridge 对您的项目:

npm install @coorpacademy/serverless-offline-eventbridge

在你的项目里 serverless.yml 文件,将以下条目添加到插件区域 在此之前 serverless-offline数字 :

plugins:
  - '@coorpacademy/serverless-offline-eventbridge'
  - serverless-offline

怎么样?

默认情况下, 插件会启动一个小的在进程内 HTTP 服务器( 节点核心) http,无额外依赖) 接受 AWS 时 PutEvents 请求(X-Amz-Target: AWSEvents.PutEvents, (中文(简体) ), Content-Type: application/x-amz-json-1.1) (中文(简体) ). 每一个出版的条目都变成了"犬" 事件Bridge事件信封, 匹配每个用户的事件Pattern 和匹配的 Lambda 通过 serverless-offline。目标失败不会失败 PutEvents 反应(模仿AWS),但经过重试,一旦重试已用尽,可选择路由到 函数的 destinations.onFailure。 。 。 .

对准您的 AWS SDK 事件桥客户端 http://<host>:<port> (默认) http://127.0.0.1:4010改为: 在当地发布事件.

配置

职能

职能级别 eventBridge 之后的事件 无服务器文档。 。 。 .

functions:
  myHandler:
    handler: handler.compute
    events:
      - eventBridge:
          eventBus: default
          pattern:
            source:
              - my.app
            detail-type:
              - OrderPlaced
            detail:
              status:
                - CONFIRMED

云阵 AWS::Events::Rule 资源

直接宣布的规则 resources 也被尊重: 插件扫描 AWS::Events::Rule 资源 Targets[].Arn 实值 {Fn::GetAtt: [<FunctionLogicalId>, Arn]},将目标映射回 并登记规则的 EventPattern。 。 。 .

resources:
  Resources:
    OrderPlacedRule:
      Type: AWS::Events::Rule
      Properties:
        EventBusName: default
        EventPattern:
          source:
            - my.app
          detail-type:
            - OrderPlaced
        Targets:
          - Id: myHandler
            Arn:
              Fn::GetAtt:
                - MyHandlerLambdaFunction
                - Arn

事件桥插件选项

通过 a 配置插件 custom: serverless-offline-eventbridge 对象 serverless.yml数字 :

custom:
  serverless-offline-eventbridge:
    host: 127.0.0.1            # bind host for the PutEvents endpoint
    port: 4010                 # PutEvents endpoint port
    accountId: '000000000000'  # event `account` + event-bus ARN
    maximumRetryAttempts: 10   # dispatch retry budget
    retryDelayMs: 500          # delay between retries
    debug: false               # verbose logging of options + subscriptions
    mockServer: true           # run the in-process PutEvents endpoint
    simulateDestinations: true # route exhausted async failures to destinations.onFailure
    endpoint: http://localhost:9324  # AWS endpoint for the onFailure SQS / opt-in subscribe clients
    subscribe: false           # opt-in: poll a real `events` bus at `endpoint`
    pollInterval: 1000         # LocalStack opt-in poll cadence (ms)
选项默认目的
host127.0.0.1putEvents 端点绑定主机
port4010PutEvents 端口端口
region从 provider.region事件 region 字段 + ARN 构建
accountId000000000000事件 account +事件总库 ARN
maximumRetryAttempts10调度重试预算
retryDelayMs500复试之间的延迟
debugfalse动词记录
endpointundefined失败 SQS / 选择订阅客户端的 AWS 端点
subscribefalse选入: 选入真实 events 公共汽车在 endpoint
mockServertrue运行进程内 PutEvents 端点
simulateDestinationstrue路由已耗尽 destinations.onFailure
pollInterval1000本地选入民意调查

支持的事件Pattern 内容过滤器

prefix (包括 {prefix: {equals-ignore-case}}, (中文(简体) ), suffix, (中文(简体) ), anything-but, (中文(简体) ), exists, (中文(简体) ), equals-ignore-case, (中文(简体) ), numeric (多语种,例如:. ['>', 0, '<=', 100], (中文(简体) ), wildcard (单位:千美元)* 盖布, 财务报告和审定财务报表 cidr。一个 不详 滤镜密钥作为非匹配处理(它从未丢出).

归属

EventPattern 匹配算法在精神上从 rubenkaiser/serverless-offline-aws-eventbridge (MIT),重写为纯 lodash/fp 帮手 见 NOTICE。 。 。 .

版本与发布记录

@coorpacademy/serverless-offline-eventbridge 共发布 2 个版本,首次发布于 2026/07/07;过去 12 个月发布了 2 个版本。

版本发布日期距今
1.0.1latest2026/07/074 个月前
1.0.02026/07/074 个月前

关于 @coorpacademy/serverless-offline-eventbridge 的常见问题

@coorpacademy/serverless-offline-eventbridge 是什么?

开发您的无服务器项目时, 在本地模拟 AWS 和 EventBridge

如何安装 @coorpacademy/serverless-offline-eventbridge?

在项目目录运行 npm install @coorpacademy/serverless-offline-eventbridge,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:serverless-offline(>=11)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@coorpacademy/serverless-offline-eventbridge 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/coorpacademy__serverless-offline-eventbridge 是否存在。

@coorpacademy/serverless-offline-eventbridge 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@coorpacademy/serverless-offline-eventbridge 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@coorpacademy/serverless-offline-eventbridge 可以商用吗?

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

@coorpacademy/serverless-offline-eventbridge 的下载量有多少?

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

@coorpacademy/serverless-offline-eventbridge 还在维护吗?

最新版本 1.0.1 发布于 2026/07/07(4 个月前);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/07/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。