如何使用 AWS CDK 快速构建可复用的云基础设施模式

解决云基础设施重复造轮子的问题:通过 AI 引导,使用 AWS CDK 构建标准化的 L3 高级构件(Constructs),实现 API + Lambda + DynamoDB 等常见架构模式的快速复用与部署。

为什么需要这个技能

在构建大规模 AWS 环境时,直接编写底层的 CloudFormation 模板或简单的 L1 资源定义会导致代码冗余且难以维护。开发者需要一种方式将经过验证的架构模式(例如:标准的 Serverless API 拓扑)封装成可复用的组件。

本技能让 AI 扮演 AWS CDK 专家,引导你设计生产级别的 L3 构件。它不仅能帮你写出代码,还能确保遵循最小权限原则(Least Privilege)、正确处理资源删除策略(RemovalPolicy)以及通过状态分离来提高系统的稳定性。

适用场景

  • 需要构建可复用的 CDK 构件或基础设施模式库时。
  • 设计涉及多 Stack 的复杂 CDK 应用程序。
  • 实现常见的云端模式,如:API 网关 + Lambda + DynamoDB 组合,或 ECS 容器服务、静态网站托管。
  • 对现有的 CDK 代码进行最佳实践审查,识别反模式并优化。

核心工作流

  1. 模式识别:明确所需的基础设施模式(如:Serverless API 或数据流水线)。
  2. 构件选择:优先使用 L2 构件而非 L1 (Cfn*) 构件,以获得更安全的默认配置。
  3. 权限与安全:为所有 IAM 角色应用最小权限原则,确保不过度授权。
  4. 生产就绪配置:合理设置 RemovalPolicy(防止误删数据库)和 Tags(资源追踪)。
  5. 状态分离:将有状态资源(如数据库、S3 Bucket)与无状态资源(如 Lambda、API)拆分到不同的 Stack 中。
  6. 可观测性集成:默认启用 CloudWatch 警报和 X-Ray 链路追踪。

示例代码:Serverless API 模式

import { Construct } from "constructs";
import * as apigateway from "aws-cdk-lib/aws-apigateway";
import * as lambda from "aws-cdk-lib/aws-lambda";
import * as dynamodb from "aws-cdk-lib/aws-dynamodb";

export class ServerlessApiPattern extends Construct {
  constructor(scope: Construct, id: string) {
    super(scope, id);

    const table = new dynamodb.Table(this, "Table", {
      partitionKey: { name: "pk", type: dynamodb.AttributeType.STRING },
      billingMode: dynamodb.BillingMode.PAY_PER_REQUEST,
      removalPolicy: cdk.RemovalPolicy.RETAIN,
    });

    const handler = new lambda.Function(this, "Handler", {
      runtime: lambda.Runtime.NODEJS_20_X,
      handler: "index.handler",
      code: lambda.Code.fromAsset("lambda"),
      environment: { TABLE_NAME: table.tableName },
      tracing: lambda.Tracing.ACTIVE,
    });

    table.grantReadWriteData(handler);

    new apigateway.LambdaRestApi(this, "Api", { handler });
  }
}

下载和安装

下载 cdk-patterns 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐