@aws-blocks/bb-compute

中文文档
0.2.0发布于 2026/11/02Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 8242

这个 Compute Building Block是选择工作量运行地点的单一地表. 说明计算 type 及其选项; 块将类型映射到支持它的 AWS 服务。 服务名称从未出现在您的代码中 .

中文使用文档
文档目录8 节
  1. 设置整个范围
  2. 计算类型
  3. 选项
  4. serverless
  5. container
  6. API 命名空间
  7. 地方发展
  8. 何时使用

@aws- blocks/ bb- 计算

这个 Compute Building Block是选择工作量运行地点的单一地表. 说明计算 type 及其选项; 将类型映射到 AWS {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}服务可以支持它 服务名称从未出现在您的代码中 .

import { Compute } from '@aws-blocks/blocks';

// Serverless (Lambda today): pay-as-you-go, per-request.
const api = new Compute(scope, 'api', { type: 'serverless', memory: 512 });

// Container (Fargate today): a long-running process.
const worker = new Compute(scope, 'worker', {
  type: 'container',
  size: { vcpu: 1, memory: 2048 },
  scaling: { minInstances: 1, maxInstances: 10 },
});

手拿起来 Compute 支助这项工作的工作量:

new AsyncJob(scope, 'reports', { compute: worker, timeoutSeconds: 1800, handler });

export const reports = new ApiNamespace(scope, 'reports', (context) => ({ /* methods */ }), { compute: api });

new CronJob(scope, 'nightly', { compute: api, schedule: 'cron(0 2 * * ? *)', handler: async () => { /* … */ } });
工作量选项计算类型
AsyncJobcomputeserverless, (中文(简体) ), container
ApiNamespacecompute (第4个论点)serverless
CronJobcomputeserverless
Scope (一切在它下面)computeserverless, (中文(简体) ), container (见下文)

设置整个范围

设定 compute 编号 Scope 将创造的一切置于其中,包括 儿童瞄准镜,不经过 compute 至每个区块 :

const reportsCompute = new Compute(scope, 'reports-compute', { type: 'serverless', memory: 4096 });
const reports = new Scope('reports', { parent: scope, compute: reportsCompute });

export const reportsApi = new ApiNamespace(reports, 'reports', (context) => ({ /* methods */ }));
new AsyncJob(reports, 'rebuild', { handler: async () => { /* … */ } });
new CronJob(reports, 'nightly', { schedule: 'cron(0 2 * * ? *)', handler: async () => { /* … */ } });
  • 给我 Compute 编辑 Scope 不同编号 当他们共同拥有父母时: 两者都是孩子的构造.
  • 最亲近取胜. 一个街区自己的 compute 选项,然后是最近的范围 套装 compute,然后该应用程序的默认计算.
  • 容器范围 设置其 AsyncJob在容器上。 一个 ApiNamespace 或者说 CronJob 在它下面失败, 并有错误命名 计算,因为他们只运行在 serverless 现在计算: 给他们 他们自己的无服务器 compute,或在其范围之外创建。 设置一个 AsyncJob是因为 maxConcurrencyPerCPU 仍然需要容器通过 作为 工作属于自己 compute,因此该选项被输入.
  • Realtime 财务报告和审定财务报表 RawRoute 在默认计算中停留在这样一个范围内 我也一样. Realtime是因为 publish() 从任何计算.

计算类型

类型型号后卫
serverless照付,按要求,短命兰布达
container长期/长期过程远端

类型名称为临时名称; vm 财务报告和审定财务报表 kubernetes 计划。 见 docs/design/compute-selection-api.md。 。 。 .

选项

选项被限定为类型——这个属性不适用于所选类型 类型是一个编译错误.

serverless

  • memory? ——函数内存 (MB); CPU 缩放与之.
  • maxTimeoutSeconds? ——该职能固有的运行时间上限(≤900). 一个工作 拥有 timeoutSeconds 必须适应它.

container

  • size? 有效 { vcpu, memory } 组合。 每个VCPU只允许 固定的内存值集( 无效的一对不会键入) .
  • scaling? —— 说 { minInstances, maxInstances, strategy? }。实线 应用程序自动缩放 . strategy 一个或多个 cpu编号 :memory编号 :queue-depth 信号; 省略它, 并 Blocks 推断一个( 工作单位 CPU 的排队深度) (否则).
  • image? ——要运行的容器图像(公用或ECR URI),使用 逐字记录 (任务开始时由ECS驱动). 块构建 没有 图像和部署需求 没有本地嵌入器: 您的应用程序代码作为 S3 资产单独发运 并在靴子取来。 因此,定制图像只提供运行时的环境—— 它必须提供 节点 24 运行时间 PATH,加上任何系统库 处理器需要(例如媒体工具)。 默认为 public.ecr.aws/docker/library/node:24-slim (arm64-兼容). 见 设计 用于启动机制.

API 命名空间

每个 ApiNamespace 在应用程序的默认计算上运行,除非您通过一个:

const reportsCompute = new Compute(scope, 'reports', { type: 'serverless', memory: 4096 });

export const reports = new ApiNamespace(scope, 'reports', (context) => ({
  async build(month: string) {
    // …
  },
}), { compute: reportsCompute });
  • 客户端不变. reports.build('2026-10') 还打来 POST /aws-blocks/api/reports ——来自 TypeScript 客户端和 斯威夫特,克特林和达特的客户端都一样——和堆栈共享的API网关 通往命名空间计算路径。 每一次都一样 apiFrontDoor 级别和后面 Hosting,因此API保留了一个域. 一个电话 赤裸裸的 /aws-blocks/api 端点 — 一个原始的 HTTP 呼叫, 或者一个来自本地的 客户端在每个命名空间路径之前发布 —— 仍在默认运行 计算.
  • 网关的限制仍然适用. API 呼叫在 ~ 29 秒时封顶 无论计算结果如何 maxTimeoutSeconds; 在一个 AsyncJob。 。 。 .
  • 这是安置,不是孤立. 每个计算都运行相同的后端捆绑 所以单独计算不是担保 边界.
  • 跟踪导出名称 - 您的前端导入名称 (单位:千美元)export const reports = … → reports),而不是第二个 ApiNamespace 参数.
  • 共享计算 横跨命名空间和 AsyncJob通过同样的 Compute 以每种方式运行,然后以相同函数运行.
  • 仅 serverless 计算服务 API 命名空间 今天; 传出 container 计算是一个类型错误.
  • 其它的都按默认计算: 无命名空间 compute 他们自己或从他们的范围, RawRoutes, 和认证 HTTP 路线(/aws-blocks/auth/*) (中文(简体) ).

地方发展

计算任务在本地 dev 中是透明的 – 处理器运行于进程 不论指定的计算结果如何。 仅需要部署的属性 基础设施(规模、规模)在模型中没有效果.

何时使用

指定 a Compute 当工作量需要运行时间而非应用程序默认时 (无服务器)——最常见的是长期或高记忆背景工作,即: 容器可以服务,但一个没有服务器的函数不能,或者 API 命名空间 需要更多的内存(和CPU)或自身的缩放与API的其他部分分开. 奥米 compute 而工作量使用应用程序默认值.

版本与发布记录

@aws-blocks/bb-compute 共发布 2 个版本,首次发布于 2026/11/02;过去 12 个月发布了 2 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.2.0latest2026/11/025 天前
0.0.0-stage2026/11/025 天前

关于 @aws-blocks/bb-compute 的常见问题

@aws-blocks/bb-compute 是什么?

这个 Compute Building Block是选择工作量运行地点的单一地表. 说明计算 type 及其选项; 块将类型映射到支持它的 AWS 服务。 服务名称从未出现在您的代码中 .

如何安装 @aws-blocks/bb-compute?

在项目目录运行 npm install @aws-blocks/bb-compute,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:constructs(^10.6.0)、aws-cdk-lib(^2.257.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aws-blocks/bb-compute 支持 TypeScript 吗?

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

@aws-blocks/bb-compute 支持 ESM 还是 CommonJS?

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

@aws-blocks/bb-compute 可以商用吗?

@aws-blocks/bb-compute 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aws-blocks/bb-compute 的下载量有多少?

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

@aws-blocks/bb-compute 还在维护吗?

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