使用 AWS Application Composer 可视化设计无服务器应用 - 自动生成 IaC 模板

详解通过 Application Composer 进行无服务器架构的可视化设计、SAM 模板的自动生成以及 VS Code 集成。

Application Composer 概述

Application Composer 是一项可视化设计无服务器应用架构并自动生成 SAM 模板的服务。无需手写 YAML,只需在画布上放置资源并连接,即可生成包含正确 IAM 策略和事件源配置的模板。

可视化设计与双向同步

Lambda 函数拖到画布上并用连接线与 API Gateway 相连,即可自动生成 API Gateway 的事件源映射和 Lambda 的执行角色。将 DynamoDB 表与 Lambda 连接后,表的 ARN 会设置为环境变量,IAM 策略中也会自动添加 DynamoDB 的访问权限。可视化的变更会立即反映到 YAML 中,手动编辑 YAML 也会反映到可视化界面,这种双向同步是其特色。使用 VS Code 扩展可以可视化编辑本地已有的 SAM 模板。

团队开发中的应用与限制

使用 Application Composer 设计的模板可通过 SAM CLI 进行本地测试,提交到 Git 仓库后纳入常规 IaC 工作流。在可视化画布上的变更会立即反映到 YAML 中,因此可在代码审查中确认差异。但 Application Composer 支持的资源类型仅限于 LambdaAPI Gateway、DynamoDB、S3、SQSSNSStep Functions 等主要无服务器资源。VPCRDSElastiCache 等资源需要手动添加到 YAML 中,不会显示在可视化画布上。对于大量使用复杂 Conditions 和 Mappings 的模板,可视化编辑与手动编辑的边界会变得模糊,因此在团队内事先约定哪些部分由 Composer 管理、哪些部分手写非常重要。 如需深入了解无服务器设计,也可参考Amazon 上的相关书籍

与 CloudFormation / SAM 的使用区分

Application Composer 定位为 SAM 模板的可视化编辑器,并非 CloudFormation 或 SAM CLI 的替代品。在快速原型设计新的无服务器应用时最能发挥威力。导入现有的大规模模板(数百个资源)时画布会变得杂乱,操作性下降,因此对现有项目的应用需谨慎判断。使用 CDK 的项目中,虽然可以在 Composer 中可视化 CDK 构造生成的 CloudFormation 模板,但没有将 Composer 上的编辑结果逆向转换为 CDK 代码的功能,因此作为只读可视化工具使用更为现实。结合 SAM Accelerator(sam sync),可以高速循环 Composer 设计 → sam sync 热部署 → 验证的流程。

Application Composer 的定价

Application Composer 完全免费使用。AWS 控制台的可视化编辑器、VS Code 扩展和 SAM 模板的自动生成均不产生额外费用。成本仅为通过生成的模板部署的 AWS 资源使用费。结合 SAM CLI 执行本地测试时也无额外费用,可以免费构建整个开发工作流。

总结

Application Composer 是一款将无服务器应用设计可视化、通过 SAM 模板自动生成加速 IaC 初始构建的工具。可视化画布与 YAML 的双向同步消除了设计与实现之间的差距。在理解支持资源限制的前提下,用于原型设计或中小规模无服务器项目最为有效。