AWS Application Composer
在可视化画布上通过拖放操作设计 CloudFormation 和 SAM 模板,并与 IaC 代码实时双向同步的开发工具
概述
AWS Application Composer 是一款用于可视化设计无服务器应用程序架构的工具。在画布上拖放 Lambda、DynamoDB、S3、API Gateway 等资源并连线,即可自动生成所需的 IAM 策略和环境变量。设计的架构会实时输出为 CloudFormation 模板或 SAM 模板,反过来在文本编辑器中编辑模板也会立即反映到画布上,这种双向同步是其特色。它还以 VS Code 扩展的形式提供,在本地开发环境中打开模板文件即可启动可视化编辑器。
可视化画布与资源连接
Application Composer 的画布以卡片形式显示 AWS 资源,通过在卡片之间连线来定义资源的依赖关系。例如,连接 API Gateway 和 Lambda 后,API 的路由定义和 Lambda 的 Events 部分会自动追加到模板中。连接 Lambda 和 DynamoDB 后,表名的环境变量和读写权限的 IAM 策略会自动授予。这种自动配线大幅减少了手动编写 IAM 策略 JSON 的工作量。每个资源卡片都有属性面板,可以通过表单形式设置 Lambda 的运行时和内存大小、DynamoDB 的分区键等。使用分组功能可以按微服务单元将资源归类并进行可视化整理。画布也可以在只读模式下使用,可作为了解现有模板结构的文档替代。对于向团队成员说明架构或在评审时共享全局视图非常有效。
与 IaC 模板的双向同步
Application Composer 最大的特点是可视化表示与模板代码的双向同步。在画布上添加或修改资源时,对应的 YAML 模板会实时更新。反过来,直接在文本编辑器中编辑模板文件时,画布的布局也会立即跟随变化。通过这一机制,先用可视化操作设计大框架再用文本调整细节的工作流程自然成立。输出的模板是标准的 SAM 模板,可以直接使用 sam build 或 sam deploy 进行部署。CloudFormation 的内置函数 (!Ref、!Sub、!GetAtt) 也会在画布上以连接线的形式可视化,因此可以直观地把握模板的引用关系。导入现有的大型模板时,Application Composer 会解析资源间的依赖关系并自动生成布局。即使是数百行的模板也能一目了然地确认整体结构,在交接或审计场景中尤其发挥威力。
VS Code 扩展与本地开发集成
Application Composer 以 VS Code 扩展的形式提供,在本地环境中打开 SAM 模板文件时,编辑器内会显示可视化画布。无需切换到浏览器的 AWS 控制台,可以在编码和架构设计之间无缝切换。VS Code 扩展中,保存模板文件的同时画布会更新,与 Git 版本管理也自然集成。通过与 SAM CLI 的联动,可以完成从在画布上设计架构、用 sam local invoke 进行本地测试、确认运行后用 sam deploy 部署到云端的完整流程。实务中的活用模式是,在新项目启动时用画布快速搭建原型,经过团队评审后再精细化模板。模板的语法错误会在画布上以可视化方式高亮显示,因此在部署前阶段更容易发现问题。