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