AWS 近日宣布推出 CDK Mixins这款 AWS CDK 的新功能允许开发者为 AWS 资源添加安全控制、监控以及配置管理等可复用能力。Mixins 可以跨不同类型的 Construct 使用从而提升基础设施代码的灵活性和复用性。AWS 高级软件开发工程师 Michael Kaiser 与 AWS 解决方案架构师 Momo Kornher 表示CDK Mixins 代表了我们对基础设施抽象方式的一次重要转变。通过将能力与 Construct 的具体实现解耦Mixins 让开发者能够自由组合所需的基础设施能力。无论是为了第一时间使用新的 CloudFormation 资源而选择 L1 Construct还是为了便利性使用 L2 Construct亦或是为了满足企业级需求而构建自定义 Construct都可以按需组合所需功能。AWS Cloud Development KitCDK是一个开源的基础设施即代码框架开发者可以通过 AWS CloudFormation 来定义和部署云资源。CDK 的模块化、可复用组件体系分为三个层级L1 Construct 与 CloudFormation 资源一一对应L2 Construct 在此基础上提供更高级的抽象和默认配置L3 Construct 则进一步将多个资源组合成可复用的架构模式。这种设计带来了一个长期存在的取舍一方面开发者希望尽快使用 AWS 新发布的能力另一方面又希望享受高级抽象带来的便利。因此团队往往需要对现有 Construct 进行大量定制甚至重新实现自己的抽象层。虽然 Kaiser 和 Kornher 在 5 月底的 AWS 博客中表示“很高兴宣布 CDK Mixins”但实际上 AWS 早在今年 3 月便已正式发布了这一功能。CDK Mixins 已集成到 aws-cdk-lib 中使用方式与开发者现有的 AWS 服务导入方式保持一致并且能够同时作用于 L1、L2 和 L3 Construct。在解释 CDK Mixins 与 CDK Aspects 的区别时Kaiser 和 Kornher 写道Mixins 与 Aspects 互为补充Mixins 会立即将功能应用到指定 Construct 上而 Aspects 则会在合成synthesis阶段对某个作用域内的所有 Construct 统一执行规则检查。一个常见的使用模式是利用 Mixins 完成资源配置再通过 Aspects 验证配置是否符合要求。过去www.jpbara.com开发团队往往不得不在两种方案之间做出选择要么使用 L1 Construct以便第一时间获得 AWS 新功能支持要么使用 L2 Construct享受更完善的抽象能力和默认配置。但无论选择哪种方式通常都还需要额外进行定制才能满足安全和合规要求。ReeVo 超大规模云运营负责人 Monica Colangelo 解释了 Mixins 带来的变化想想 AWS 发布一个新功能时会发生什么。L1 Construct例如 CfnBucket立刻就能有支持因为 L1 是根据 CloudFormation 规范自动生成的。而 L2 Construct例如 Bucket——也就是那些提供默认配置和便捷方法的高级抽象——往往要等 CDK 团队完成相应抽象实现这一过程通常要花上几周甚至几个月 。因此以前你只有两个选择要么使用 L2 并干等到支持上线要么退回到 L1然后手动配置原本 L2 免费提供的各种能力。这显然不够理想。Mixins 改变了这一点。你可以为了第一时间使用新功能而选择 L1 Construct再按需叠加所需行为。L1 与 L2 之间原本泾渭分明的边界如今变得模糊得多了。CDK Mixins 允许开发者通过 .with() 语法为 Construct 添加可复用功能和策略从而在保持对新能力快速访问的同时让基础设施代码更容易定制、更安全也更易于维护。The Duckbill Group 首席云经济学家 Corey Quinn 则在自己的新闻通讯中调侃道现在 CDK 有了 Mixins因为显然 L1、L2 和 L3 Construct 还不足以让新手感到困惑。现在你可以在这三种 Construct 之间自由组合抽象层。听起来很棒但等你回过神来就会发现自己是在用 TypeScript 生成 YAML再通过 YAML 去部署 JSON最终召唤出某种神秘存在。此时此刻大概有 Terraform 用户正一边喝咖啡一边偷笑。
AWS推出CDK Mixins让基础设施抽象支持灵活组合
发布时间:2026/6/18 2:46:57
AWS 近日宣布推出 CDK Mixins这款 AWS CDK 的新功能允许开发者为 AWS 资源添加安全控制、监控以及配置管理等可复用能力。Mixins 可以跨不同类型的 Construct 使用从而提升基础设施代码的灵活性和复用性。AWS 高级软件开发工程师 Michael Kaiser 与 AWS 解决方案架构师 Momo Kornher 表示CDK Mixins 代表了我们对基础设施抽象方式的一次重要转变。通过将能力与 Construct 的具体实现解耦Mixins 让开发者能够自由组合所需的基础设施能力。无论是为了第一时间使用新的 CloudFormation 资源而选择 L1 Construct还是为了便利性使用 L2 Construct亦或是为了满足企业级需求而构建自定义 Construct都可以按需组合所需功能。AWS Cloud Development KitCDK是一个开源的基础设施即代码框架开发者可以通过 AWS CloudFormation 来定义和部署云资源。CDK 的模块化、可复用组件体系分为三个层级L1 Construct 与 CloudFormation 资源一一对应L2 Construct 在此基础上提供更高级的抽象和默认配置L3 Construct 则进一步将多个资源组合成可复用的架构模式。这种设计带来了一个长期存在的取舍一方面开发者希望尽快使用 AWS 新发布的能力另一方面又希望享受高级抽象带来的便利。因此团队往往需要对现有 Construct 进行大量定制甚至重新实现自己的抽象层。虽然 Kaiser 和 Kornher 在 5 月底的 AWS 博客中表示“很高兴宣布 CDK Mixins”但实际上 AWS 早在今年 3 月便已正式发布了这一功能。CDK Mixins 已集成到 aws-cdk-lib 中使用方式与开发者现有的 AWS 服务导入方式保持一致并且能够同时作用于 L1、L2 和 L3 Construct。在解释 CDK Mixins 与 CDK Aspects 的区别时Kaiser 和 Kornher 写道Mixins 与 Aspects 互为补充Mixins 会立即将功能应用到指定 Construct 上而 Aspects 则会在合成synthesis阶段对某个作用域内的所有 Construct 统一执行规则检查。一个常见的使用模式是利用 Mixins 完成资源配置再通过 Aspects 验证配置是否符合要求。过去www.jpbara.com开发团队往往不得不在两种方案之间做出选择要么使用 L1 Construct以便第一时间获得 AWS 新功能支持要么使用 L2 Construct享受更完善的抽象能力和默认配置。但无论选择哪种方式通常都还需要额外进行定制才能满足安全和合规要求。ReeVo 超大规模云运营负责人 Monica Colangelo 解释了 Mixins 带来的变化想想 AWS 发布一个新功能时会发生什么。L1 Construct例如 CfnBucket立刻就能有支持因为 L1 是根据 CloudFormation 规范自动生成的。而 L2 Construct例如 Bucket——也就是那些提供默认配置和便捷方法的高级抽象——往往要等 CDK 团队完成相应抽象实现这一过程通常要花上几周甚至几个月 。因此以前你只有两个选择要么使用 L2 并干等到支持上线要么退回到 L1然后手动配置原本 L2 免费提供的各种能力。这显然不够理想。Mixins 改变了这一点。你可以为了第一时间使用新功能而选择 L1 Construct再按需叠加所需行为。L1 与 L2 之间原本泾渭分明的边界如今变得模糊得多了。CDK Mixins 允许开发者通过 .with() 语法为 Construct 添加可复用功能和策略从而在保持对新能力快速访问的同时让基础设施代码更容易定制、更安全也更易于维护。The Duckbill Group 首席云经济学家 Corey Quinn 则在自己的新闻通讯中调侃道现在 CDK 有了 Mixins因为显然 L1、L2 和 L3 Construct 还不足以让新手感到困惑。现在你可以在这三种 Construct 之间自由组合抽象层。听起来很棒但等你回过神来就会发现自己是在用 TypeScript 生成 YAML再通过 YAML 去部署 JSON最终召唤出某种神秘存在。此时此刻大概有 Terraform 用户正一边喝咖啡一边偷笑。