数字交通-常见
这是可供其他cdk项目使用的公共设施和班级的地方.
设置
通过运行以下命令来初始化工程脚本. 这只需要做一次, 克隆后或 第一次调出仓库 它会安装/重新安装左上钩子.
pnpm run setup
之后批准兴建:
pnpm approve-builds
然后再次运行设置.
如何建设
使用 pnpm 来构建代码,即:.
pnpm install
pnpm run build
pnpm run test
pnpm run test --test-path-pattern 'dt-logger.test'
pnpm run test:watch
pnpm run test:watch --test-path-pattern 'dt-logger.test'
格式代码
pnpm run format:package-json # Format package.json
pnpm run format:check # Checks all files
pnpm run format:check-staged # Checks stagged files
pnpm run format:fix # Format all files
pnpm run format:fix-staged # Formats stagged files
更新道具
这个项目使用精确的依赖版本( 没有 semver 范围) 并定义了7天的冷却 .npmerc (英语)。 。 。 .
全面更新工作流程
-
更新所有依赖关系 (代码、 端点和节点版本)
.npmrc:pnpm deps:update-all此更新
package.json, (中文(简体) ),pnpm-lock.yaml,然后一步安装所有设备——没有单独的pnpm install需要帮助。 什麽pnpm deps:update-all是否为:- 运行
pnpm up --latest所有软件包 除外 所列者pnpm.updateConfig.ignoredPackages内package.json(例如:.typescript, (中文(简体) ),@types/node(中文(简体) ) - 全部更新
peerDependencies(适用相同的除外情形) - 更新
.npmrcuse-node-version到最新的节点发布时间比minimum-release-age财务报告和审定财务报表 匹配engines.node
见
scripts/update-deps-and-peers.ts详细执行情况.还有 更新
packageManager手动 ——剧本没有触及. 请检查archive-date=中的日期值 (帮助) https://www.npmjs.com/package/pnpm?活性Tab=变相 更新package.json数字 :"packageManager": "[email protected]"见 (简体中文) 详细情况.
- 运行
-
检查弱点 :
pnpm audit如果在过渡性依赖中报告脆弱性,则在
package.json和/或不适用的情况.npmrc。 。 。 . -
检查是否可以删除已有的覆盖 ——如果上游依赖性,可能不再需要现有覆盖 现在拉一个安全版本。 通过暂时移除、重置和重跑来测试每个覆盖
pnpm audit数字 :# Remove the override from package.json, then do a fresh resolution: rm -rf node_modules pnpm-lock.yaml && pnpm install pnpm audit如果不报告脆弱性,就不再需要这种控制——继续消除。 如果弱点再次出现, 恢复控制 见 (简体中文) 详细情况.
-
构建和测试 :
pnpm run build pnpm run test -
提交并打开拉动请求
做一个功能分支的工作,这样在合并前可以审查更改.
-
发布新版本 - 一旦拉动请求被合并到主人身上,就公布于众 下游项目接收变化(对安全修复尤其重要):
./scripts/publish.sh见 发布到 npmjs.com 详情见下文.
见 (简体中文) 关于添加、更新和去除的详细指示
覆盖和 .npmrc 除外情形.
发布到 npmjs.com (英语)
见https://www.npmjs.com/package/@digitraffic/common
要以今天的日期作为版本号发布 :
./scripts/publish.sh
要以特定版本编号发布 :
./scripts/publish.sh 2026.8.6-1
如何使用
在软件包中。 json 依赖性 :
"dependencies": {
"@digitraffic/common": "*",
}
在代码中 :
import {DigitrafficStack, StackConfiguration} from "@digitraffic/common/dist/aws/infra/stack/stack";
数字交通软件
如果你从DigitrafficStack扩展你的堆栈,你可以得到许多好处:
- 秘密、 VPC、 Sg 和 提醒
- 堆叠校验与堆叠检查
- 使用 Stack 配置的简单配置
如果你不需要这些东西,你不应该使用 DigitrafficStack.
堆栈配置
常用参数在 StackConfiguration。为您的环境写入一次配置,然后在 cdk 项目中重复使用.
堆叠检查视图
使用 cdk 方面来检查您的 cdk 堆栈是否正常 :
- 堆栈命名检查( 在名称中测试/ 程序)
- 函数配置(记忆、超时、运行时间、保留货币)
- 标记, 必须定义解决方案标签
- S3 Buckets, 无公开访问
- Api 网关资源外壳( kebabCase和 snake case)
- 队列加密
- 日志组保留
您可以对任意堆栈使用 StackCheckAspect, DigitrafficStack 自动进行, 但您可以手动调用 :
Aspects.of(this).add(StackCheckingAspect.create(this));
任何资源都可以通过给出一个参数或者在 Stack 配置中被白化列出
函数构建器
函数构建器允许您在内存使用和超时时时使用提醒来制作羊排 .
默认情况下,所创建的函数可以访问数据库,但这当然是可以控制的.
创建羊肉园很简单:
const lambda = FunctionBuilder.create(stack, "get-metadata")
.withTimeout(Duration.seconds(2))
.build();
更多信息见文件.