# @aws-blocks/bb-compute 中文文档

规范地址：https://npmcn.com/package/%40aws-blocks/bb-compute/

版本：0\.2\.0
npm 元数据更新时间：2026-11-02T10:24:52.734Z
中文译文更新时间：2026-11-07T15:29:10.392Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40aws-blocks/bb-compute
原文对照：https://npmcn.com/package/%40aws-blocks/bb-compute/?lang=original
项目主页：https://github.com/aws-devtools-labs/aws-blocks/tree/main/packages/bb-compute#readme
源码仓库：https://github.com/aws-devtools-labs/aws-blocks

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

- 包体积（解压后）：46.5 kB，32 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：3 个
- peer 依赖：constructs ^10\.6\.0，aws-cdk-lib ^2\.257\.0
- 首次发布：2026-11-02T10:23:56.449Z
- 最新版本发布：2026-11-02T10:24:52.280Z
- 近 30 天下载量：8242（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 2 个）

## 中文简介

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

## 安装

```sh
npm install @aws-blocks/bb-compute
```

也可以使用：`pnpm add @aws-blocks/bb-compute`、`yarn add @aws-blocks/bb-compute`、`bun add @aws-blocks/bb-compute`

## README

# @aws- blocks/ bb- 计算

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

```ts
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` 支助这项工作的工作量:

```ts
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 () => { /* … */ } });
```

| 工作量 | 选项 | 计算类型 |
| --- | --- | --- |
| `AsyncJob` | `compute` | `serverless`, (中文(简体) ), `container` |
| `ApiNamespace` | `compute` (第4个论点) | `serverless` |
| `CronJob` | `compute` | `serverless` |
| `Scope` (一切在它下面) | `compute` | `serverless`, (中文(简体) ), `container` (见下文) |

## 设置整个范围

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

```ts
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-兼容). 见 [设计](https://npmcn.com/package/%40aws-blocks/bb-container-compute/DESIGN.md) 用于启动机制.

## API 命名空间

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

```ts
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` 他们自己或从他们的范围, `RawRoute`s, 和认证 HTTP 路线(`/aws-blocks/auth/*`) (中文(简体) ).

## 地方发展

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

## 何时使用

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

