AWS Application Composer

在可视化画布上通过拖放操作设计 CloudFormation 和 SAM 模板,并与 IaC 代码实时双向同步的开发工具

概述

AWS Application Composer 是一款用于可视化设计无服务器应用程序架构的工具。在画布上拖放 Lambda、DynamoDB、S3、API Gateway 等资源并连线,即可自动生成所需的 IAM 策略和环境变量。设计的架构会实时输出为 CloudFormation 模板或 SAM 模板,反过来在文本编辑器中编辑模板也会立即反映到画布上,这种双向同步是其特色。它还以 VS Code 扩展的形式提供,在本地开发环境中打开模板文件即可启动可视化编辑器。

可视化画布与资源连接

Application Composer 的画布以卡片形式显示 AWS 资源,通过在卡片之间连线来定义资源的依赖关系。例如,连接 API GatewayLambda 后,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 部署到云端的完整流程。实务中的活用模式是,在新项目启动时用画布快速搭建原型,经过团队评审后再精细化模板。模板的语法错误会在画布上以可视化方式高亮显示,因此在部署前阶段更容易发现问题。

共有するXB!