CDK-Cost-Limit 项目教程
1. 项目的目录结构及介绍
CDK-Cost-Limit 项目的目录结构如下:
cdk-cost-limit/
├── bin/
│ └── cdk-cost-limit.ts
├── lib/
│ └── cdk-cost-limit-stack.ts
├── test/
│ └── cdk-cost-limit.test.ts
├── package.json
├── tsconfig.json
└── README.md
目录结构介绍:
- bin/: 包含项目的启动文件
cdk-cost-limit.ts
。 - lib/: 包含项目的主要逻辑文件
cdk-cost-limit-stack.ts
。 - test/: 包含项目的测试文件
cdk-cost-limit.test.ts
。 - package.json: 项目的依赖管理文件。
- tsconfig.json: TypeScript 配置文件。
- README.md: 项目说明文档。
2. 项目的启动文件介绍
项目的启动文件位于 bin/cdk-cost-limit.ts
,主要负责初始化 CDK 应用并加载主逻辑文件。
#!/usr/bin/env node
import 'source-map-support/register';
import * as cdk from 'aws-cdk-lib';
import { CdkCostLimitStack } from '../lib/cdk-cost-limit-stack';
const app = new cdk.App();
new CdkCostLimitStack(app, 'CdkCostLimitStack', {
/* 如果有需要,可以在这里添加堆栈参数 */
});
启动文件介绍:
- #!/usr/bin/env node: 指定脚本解释器。
- import 'source-map-support/register': 启用源映射支持,便于调试。
- import * as cdk from 'aws-cdk-lib': 导入 AWS CDK 库。
- import { CdkCostLimitStack } from '../lib/cdk-cost-limit-stack': 导入主逻辑文件。
- const app = new cdk.App(): 创建一个新的 CDK 应用实例。
- new CdkCostLimitStack(app, 'CdkCostLimitStack', { ... }): 初始化主逻辑堆栈。
3. 项目的配置文件介绍
项目的配置文件主要是 tsconfig.json
和 package.json
。
tsconfig.json
tsconfig.json
文件用于配置 TypeScript 编译选项。
{
"compilerOptions": {
"target": "ES2018",
"module": "commonjs",
"outDir": "dist",
"sourceMap": true,
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": [
"lib/**/*.ts",
"bin/**/*.ts",
"test/**/*.ts"
]
}
package.json
package.json
文件用于管理项目的依赖和脚本。
{
"name": "cdk-cost-limit",
"version": "1.0.0",
"description": "A Collection of CDK Constructs to Deploy Cost-Aware Self-Limiting Resources",
"main": "index.js",
"scripts": {
"build": "tsc",
"watch": "tsc -w",
"test": "jest",
"cdk": "cdk"
},
"dependencies": {
"aws-cdk-lib": "^2.0.0",
"constructs": "^10.0.0",
"@revant-io/cdk-cost-limit": "^1.0.0"
},
"devDependencies": {
"@types/jest": "^27.0.0",
"@types/node": "^14.14.37",
"jest": "^27.0.0",
"ts-jest": "^27.0.0",
"typescript": "^4.2.0"
}
}