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

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

Infrastructure Composer 概述

Infrastructure Composer 是一项可视化设计无服务器应用架构,并自动创建 AWS CloudFormation 和 AWS SAM 模板的服务。无需手写 YAML,只要在画布上放置资源并连接,Infrastructure Composer 就会按照 AWS 的最佳实践,组装包含所需 IAM 策略和事件源设置的模板。

可视化设计与双向同步

将 Lambda 函数拖到画布上,并用连接线与 API Gateway 相连,就会自动生成 API Gateway 的事件源映射和 Lambda 的执行角色。将 DynamoDB 表与 Lambda 连接后,表的 ARN 会被设置为环境变量,并在 IAM 策略中添加对 DynamoDB 的访问权限。画布与模板代码的更改会自动同步,手动修改 YAML 的内容也会反映在图中。使用 VS Code 扩展,可以可视化编辑本地现有的 SAM 模板。

在团队开发中的运用与限制

用 Infrastructure Composer 设计的模板通过 SAM CLI 进行本地测试,提交到 Git 仓库,并纳入常规的 IaC 工作流。在可视化画布上更改的内容也会自动写入模板,因此通过代码评审确认差异。Infrastructure Composer 可以处理的资源不限于 Lambda、API Gateway、DynamoDB、S3、SQS、SNS、Step Functions 等无服务器资源。VPC、RDS、ElastiCache 等资源,只要 CloudFormation 支持,也可以放在画布上。在大量使用复杂 Conditions 和 Mappings 的模板中,可视化编辑与手动编辑的边界会变得模糊,因此团队内部事先约定哪些部分用 Composer 管理、哪些部分手写的规则很重要。

与 CloudFormation / SAM 的选用

Infrastructure Composer 是以图的形式处理 CloudFormation 和 AWS SAM 模板的工具,并不能取代 CloudFormation 或 SAM CLI。它适合快速为新的无服务器应用制作原型的场景。导入现有的大型模板(数百个资源)时,画布会变得杂乱,操作性下降,因此要慎重判断是否用于现有项目。在使用 CDK 的项目中,可以用 Composer 可视化 CDK 构造生成的 CloudFormation 模板。但没有将 Composer 上的编辑结果反向转换为 CDK 代码的功能,因此作为只读的可视化工具使用比较现实。与 SAM Accelerator(sam sync)结合使用,可以在短间隔内运行用 Composer 设计 → 用 sam sync 热部署 → 确认运行这一周期。

Infrastructure Composer 的定价

使用 Infrastructure Composer 本身不收费。AWS 控制台的可视化编辑器、VS Code 扩展、SAM 模板的自动生成均不产生额外费用。成本只有用生成的模板部署的 AWS 资源的使用费用。与 SAM CLI 结合进行的本地测试也不产生额外费用。

从构想到部署的流程

Infrastructure Composer 将从设计到部署的一系列流程顺畅地连接起来。在界面上放置 / 连接资源来组装架构后,就会生成对应的 IaC 模板。用线连接资源后,所需的权限和设置会自动补全,从而减少手动编写细节连接的工作量。生成的模板可以与面向无服务器的开发工具结合,进入本地测试和生产环境的部署。能够快速将脑海中的架构具体化,并直接展开为可运行的东西,这一点有助于开发的启动。

事件源与权限的自动连接

在无服务器应用中,需要正确连接函数、数据存储、消息队列等多个资源。手动编写时,容易出现遗漏授予所需权限或连接设置错误的情况。在可视化设计中将资源相互连接后,该关系所需的权限和引用设置会自动反映到模板中。这样可以减少连接错误,排查无法运行原因所需的时间也会缩短。以可视化方式组装资源之间的关系,背后繁琐的设置就会整理到位,因此无服务器开发的工作会变得轻松。

作为学习和理解的辅助

Infrastructure Composer 也可以作为学习无服务器架构的入口。放置并连接资源后,可以一边对照图和代码,一边理解它对应模板中的哪一段描述。对于正在学习 IaC 写法的初学者来说,这有助于把抽象的模板理解为具体的架构。此外,如果读取现有模板并转换为图,就能快速掌握复杂应用的全貌,在交接和调查时很有帮助。能够将视觉和描述结合起来理解,为无服务器开发的学习和维护提供支持。

总结

Infrastructure Composer 是一款将无服务器应用的设计可视化,并通过自动生成 SAM 模板加速 IaC 初始构建的工具。借助可视化画布与 YAML 的双向同步,更容易使设计与实现保持一致。它适合原型制作和中小规模的无服务器项目。

参考资料(AWS 官方)

本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。

如本页内容与官方文档不一致,请以官方文档为准。

分享