@btc-embedded/cdk-extensions

中文文档
0.24.7发布于 2026/10/26Apache-2.0TypeScriptCommonJS近 30 天下载 3630

有用的 CDK 扩展和常见逻辑集合

中文使用文档
文档目录10 节
  1. 特征
  2. 安装
  3. 用法示例
  4. 基本用途
  5. 使用应用程序集来简化配置
  6. 部署
  7. CLI 命令
  8. catnip — 计算机辅助翻译部的云工具包
  9. 文档
  10. 许可证

BTC 嵌入式 CDK 扩展

@btc-内嵌/cdk-扩展

以 TypeScript 构建云基础设施的可重复使用的 AWS CDK( Cloud Development Kit) 扩展和构造集合.

特征

  • CDK 构造:包括 API Gateway、应用程序负载平衡器、Cognitto、VPC、DocumentDB等的现成使用构件.
  • ECS 服务扩展:为高级集装箱管弦乐提供ECS服务扩展.
  • 公用事业:用于堆栈参数、价值进口和配置分析的通用公用事业和辅助工具.
  • 模块扩展:轻松地扩展AWS资源,具有伐木,OpenTeleometry,EFS,Cloud Map,自定义容器等特征.

安装

yarn install @btc-embedded/cdk-extensions

用法示例

基本用途

import { ApiGateway } from "@btc-embedded/cdk-extensions";

// Use constructs and extensions in your CDK app

使用应用程序集来简化配置

对于引用一个基础平台堆栈的应用程序级别堆栈,使用 ApplicationStack 确保一致使用基站堆栈名称:

import { ApplicationStack } from "@btc-embedded/cdk-extensions";

export class MyAppStack extends ApplicationStack {
  constructor(scope: Construct, id: string) {
    super(scope, id, {
      basePlatformStackName: "my-platform-stack",
      env: {
        account: "123456789012",
        region: "eu-central-1",
      },
    });

    // Constructs and extensions automatically resolve the platform stack name
    // No need to pass basePlatformStackName repeatedly
  }
}

部署

使用 createApplicationApp 用于配置驱动的部署:

import {
  createApplicationApp,
  ApplicationStack,
} from "@btc-embedded/cdk-extensions";
import { z } from "zod";

const configSchema = z.object({
  env: z.object({ account: z.string(), region: z.string() }),
  basePlatformStackName: z.string(),
});

createApplicationApp({
  directory: "./config",
  schema: configSchema,
  createStack: (scope, config) => new MyAppStack(scope, "MyApp", config),
});

CLI 命令

catnip — 计算机辅助翻译部的云工具包

catnip 为CloudFormation、ECS和Cognito提供业务帮助.

全局选项( 适用于所有命令) :

  • --region <region> —— AWS 区域(默认为 AWS_DEFAULT_REGION 编号 : AWS_REGION(中文(简体) )
  • --profile <profile> — AWS 命名配置文件

堆栈诊断

诊断失败 Cloud Formation 部署并显示ECS 失败上下文 .

用法 :

catnip stack-diagnose
catnip stack-diagnose --stack-name my-stack
catnip stack-diagnose --stage prod
catnip stack-diagnose --stack-name my-stack --tail 200 --tasks 10

选项 :

  • --stack-name <name> —— 堆栈到诊断( 可选的; 自动检测到最后一个失败的堆栈如果省略)
  • --stage <name> ——自动检测的相位过滤器(如果 --stack-name (已提供)
  • --tail <n> — 每个容器显示的对数行数( 默认: 100)
  • --tasks <n> - 最近停止检查的任务数目(默认:5)

语录

流出运行 CloudFormation 堆栈中的 ECS 服务的活日志 .

用法 :

catnip ecs-logs --stack-name my-stack
catnip ecs-logs --stack-name my-stack --follow
catnip ecs-logs --stack-name my-stack --service api --tail 50
catnip ecs-logs --stack-name my-stack --output raw
catnip ecs-logs --stack-name my-stack --output pretty

选项 :

  • --stack-name <name> — CloudFormation 堆栈名( 需要)
  • --tail <n> ——每个容器显示历史线(默认:100)
  • -f, --follow 保持新日志活动的投票
  • --service <name> ——按名称过滤服务
  • -o, --output <mode> 输出模式 : text, (中文(简体) ), raw,或 pretty (默认:文本)

音响

使用 CloudFormation 输出从堆栈获取 Cognito 令牌 .

用法 :

catnip oidc-token --stack-name my-stack
catnip oidc-token --stack-name my-stack --output json

选项 :

  • --stack-name <name> – 出口Cognito资源的堆栈(需要)
  • --output <token|json> ——只打印符号,或完全响应 JSON(默认: token(中文(简体) )
    • token 输出为 access_token

pg- 隧道

打开安全会话管理器通向Aurora PostgreSQL并启动本地客户端.

用法 :

catnip pg-tunnel --stack-name my-stack
catnip pg-tunnel --stack-name my-stack --exec "psql"
catnip pg-tunnel --stack-name my-stack --database app
catnip pg-tunnel --stack-name my-stack --no-auto-launch
catnip pg-tunnel --stage prod

选项 :

  • --stack-name <name> – 部署Aurora集群的堆放地(通常是基站台堆放地;自动发现工作时可选)
  • --stage <name> – 堆栈自动发现时使用的相位过滤器
  • --local-port <port> 首选本地端口( 默认 : 5432(中文(简体) )
  • --database <name> - 超过 PGDATABASE 用于启动的客户端/壳
  • --exec <command> ——隧道开通后运行的明确命令
  • --no-auto-launch 保持隧道连接,不发射客户端/壳
  • --tunnel-instance-id <id> —— 堆栈导出缺失时倒置 EC2 实例 ID

数据库选择行为 :

  • 若为 --database 提供了该值
  • 如果省略, catnip 从已部署的ECS服务任务定义推断出数据库名称(POSTGRES_DATABASE(中文(简体) )
  • 如果准确地推断出一个数据库,则作为 PGDATABASE
  • 如果推断出多个数据库,则用源堆栈/服务打印 PGDATABASE 未设置

先决条件:

  • session-manager-plugin 必须在 PATH

文档

许可证

Apache-2.0 — BTC 嵌入式系统 AG

版本与发布记录

@btc-embedded/cdk-extensions 共发布 134 个版本,首次发布于 2024/12/13;过去 12 个月发布了 78 个版本。

版本发布日期距今
0.24.7latest2026/10/2613 天前
0.24.52026/09/012 个月前
0.24.42026/08/172 个月前
0.24.32026/08/043 个月前
0.24.22026/08/043 个月前
0.24.12026/07/293 个月前

关于 @btc-embedded/cdk-extensions 的常见问题

@btc-embedded/cdk-extensions 是什么?

有用的 CDK 扩展和常见逻辑集合

如何安装 @btc-embedded/cdk-extensions?

在项目目录运行 npm install @btc-embedded/cdk-extensions,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:constructs(^10.5.1)、aws-cdk-lib(^2.260.0)、cdk-monitoring-constructs(^9.0.0)、@aws-cdk-containers/ecs-service-extensions(>=2.0.1-alpha.535)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。它还提供命令行工具 catnip,可以用 npx catnip 直接运行。

@btc-embedded/cdk-extensions 支持 TypeScript 吗?

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

@btc-embedded/cdk-extensions 支持 ESM 还是 CommonJS?

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

@btc-embedded/cdk-extensions 可以商用吗?

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

@btc-embedded/cdk-extensions 的下载量有多少?

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

@btc-embedded/cdk-extensions 还在维护吗?

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