甘南州屿庙神教35号
办公时间:上午9:00-下午6:00

公司新闻

首页 / Our News /使用 AWS Application Composer 直观设计您的应用程序 计算博客

使用 AWS Application Composer 直观设计您的应用程序 计算博客

2026-01-27 12:49:20

使用 AWS Application Composer 直观设计应用程序

由 Paras Jain 和 Curtis Darst 于 2023 年 9 月 26 日发表。

主要要点

AWS Application Composer 提供了一个互动画布,帮助用户视觉化设计和构建应用程序。新版释放扩展了对所有可用 CloudFormation 资源类型的支持。支持的资源数量增加到 1134 种资源类型,并且可以通过拖放方式轻松配置组件。优化的组件卡可用于配置和连接各种云服务,帮助用户创建可扩展且容错的计算架构。

AWS Application Composer 使您可以使用 13 种 AWS CloudFormation 资源类型视觉设计和构建应用程序。 本次更新扩展了对所有可用 CloudFormation 资源类型的支持,让用户使用拖放界面来创建应用程序设计,或者导入现有的应用程序定义进行编辑。

概述

AWS Application Composer 提供了一个互动画布来视觉化设计应用程序。您可以使用拖放界面从零开始创造应用程序,或导入现有的应用程序定义进行编辑。现代事件驱动应用程序基于多种服务,视觉化架构有助于更好地理解这些服务之间的关系,并识别出改进的区域。

您可以使用 AWS Application Composer 的本地同步模式来连接到本地文件系统,这样您的更改会自动更新到文件系统中。这样,您可以与现有的版本控制系统以及开发和部署工作流程集成。

AWS Application Composer 提供了拖放画布视图和代码编辑器模板视图。对其中一个视图所做的更改会反映在另一个视图中,反之亦然。

AWS 本次释放了什么?

AWS Application Composer 已经支持 13 种无伺服器资源类型。本次更新提供了增强的组件卡,以便您可以配置并将组件连接在一起。今天的更新让您能够将 1134 种资源类型 拖放到画布上,并使用资源配置面板进行配置。

本篇博客将演示如何创建一个容错的计算架构,涉及一个 应用负载均衡器、两个位于不同 可用区域 的 Amazon Elastic Compute Cloud (EC2) 实例,以及一个 Amazon 关联数据库服务 (RDS) 实例。

概念架构设计示例

设计可扩展且容错的计算堆栈

在本篇博客中,您将创建一个包含 ALB、两个位于不同可用区域的 EC2 实例具备自动扩展能力和一个 RDS 实例的容错计算堆栈。

登录 AWS 管理控制台并导航到 AWS Application Composer 服务,选择 创建项目 来创建新项目。如果您使用的是支持本地同步的浏览器目前支持的有 Google Chrome 和 Microsoft Edge,则可以将项目连接到本地文件系统并使用命令行介面或集成开发环境进行编辑。具体步骤:选择 菜单,然后选择 本地同步。在本地文件系统中选择一个文件夹,并在提示时允许浏览器所需的权限。一些架构图中的组件,例如安全组,可以在画布中可视化,但您不一定需要将其作为架构的突出部分展示。因此为了简洁起见,您可以只在模板模式中对其进行配置。选择 模板 切换到模板视图。在模板编辑器中粘贴以下代码:

yaml Resources DBEC2SecurityGroup Type AWSEC2SecurityGroup Properties GroupDescription 打开数据库以进行访问 SecurityGroupIngress IpProtocol tcp FromPort 3306 ToPort 3306 SourceSecurityGroupId !Ref WebServerSecurityGroup VpcId ParameterId VpcId Format AWSEC2VPCId WebServerSecurityGroup Type AWSEC2SecurityGroup Properties GroupDescription 通过端口 80 限制加载平衡器的 HTTP 访问 SSH 访问。 SecurityGroupIngress IpProtocol tcp FromPort 80 ToPort 80 SourceSecurityGroupId !Select 0 !GetAtt LoadBalancerSecurityGroups IpProtocol tcp FromPort 22 ToPort 22 CidrIp ParameterId SSHLocation Format String Default 0000/0 VpcId ParameterId VpcId Format AWSEC2VPCId WebServerGroup Type AWSAutoScalingAutoScalingGroup Properties VPCZoneIdentifier ParameterId Subnets Format ListltAWSEC2SubnetIdgt LaunchConfigurationName !Ref LaunchConfiguration MinSize 1 MaxSize 5 DesiredCapacity ParameterId WebServerCapacity Format Number Default 1 TargetGroupARNs !Ref TargetGroup

重新切换回画布视图。添加一个 应用负载均衡器、负载均衡器监听器、负载均衡器目标组、自动扩展启动配置 和一个 RDS 数据库实例。 在左侧的资源面板中输入 loadbalancer 作为搜索词。从资源面板拖放 AWSElasticLoadBalancingV2LoadBalancer 到画布上。重复该步骤添加其余四种资源类型。选择 排列,您的画布应如下所示: 开始配置其余组件卡。可以通过将一张卡的右侧连接端口连接到另一张卡的左侧连接端口来视觉上连接两张卡。目前,并非所有组件卡都支持可视连接。对于这些卡,您可以使用资源配置面板来建立连接,或者直接更新模板代码。无论哪种方式,连接情况都会在画布中反映出来。在架构中配置组件,使用 资源配置 面板。首先,配置应用负载均衡器监听器: 选择画布中的 监听器卡。选择 详情。在 资源配置部分 粘贴以下代码:

yaml DefaultActions Type forward TargetGroupArn !Ref TargetGroup LoadBalancerArn !Ref LoadBalancer Port 80 Protocol HTTP

选择 保存。对其余资源类型重复相同的步骤,以下是负载均衡器卡的代码:

yaml Subnets ParameterId Subnets Format ListltAWSEC2SubnetIdgt

目标组 卡的代码如下:

yaml HealthCheckPath / HealthCheckIntervalSeconds 10 HealthCheckTimeoutSeconds 5 HealthyThresholdCount 2 Port 80 Protocol HTTP UnhealthyThresholdCount 5 VpcId ParameterId VpcId Format AWSEC2VPCId TargetGroupAttributes Key stickinessenabled Value true Key stickinesstype Value lbcookie Key stickinesslbcookiedurationseconds Value 30

这是启动配置 的代码。用正确的图像 ID 替换 ltimageidgt:

yaml ImageId ltimageidgt InstanceType t2small SecurityGroups !Ref WebServerSecurityGroup

DBInstance 的代码为:

yaml DBName ParameterId DBName Format String Default wordpressdb Engine MySQL MultiAZ ParameterId MultiAZDatabase Format String Default false MasterUsername ParameterId DBUser Format String MasterUserPassword ParameterId DBPassword Format String DBInstanceClass ParameterId DBClass Format String Default dbt2small AllocatedStorage ParameterId DBAllocatedStorage Format Number Default 5 VPCSecurityGroups !GetAtt DBEC2SecurityGroupGroupId

选择 排列,您的画布现在看起来是这样的:

使用 AWS Application Composer 直观设计您的应用程序 计算博客

这完成了应用程序架构的可视化部分。您可以利用菜单中的 导出画布选项来导出此可视化。

添加可观察性

在添加核心应用程序组件之后,现在可以为您的应用程序添加 可观察性。可观察性使您能够收集和分析应用程序的重要事件和指标。

为了接收 RDS 数据库配置的任何更改通知,您可以使用无伺服器设计模式来避免在不需要时运行实例。概念上,您的可观察性堆栈如下所示:

Amazon EventBridge 捕获来自 Amazon RDS 的事件。对于任何符合 EventBridge 规则的事件,EventBridge 会调用 AWS Lambda。Lambda 运行自定义逻辑并向 Amazon Simple Notification Service(SNS) 主题发送电子邮件。您可以订阅感兴趣的方来接收这个 SNS 主题的消息。

现在架构中有两组不同的组件。一组组件包括核心应用程序,另一组则包含可观察性逻辑。

AWS Application Composer 允许您按组组织不同的组件。这样可以让您和您的团队一次专注于架构的一部分。在添加可观察性组件之前,首先创建现有组件的组。

选择一个组件卡。按住 shift 键选择其他卡片。在选中所有资源后,选择 分组操作。

创建分组后,按照以下步骤重命名该分组。

选择组卡。将组重命名为 应用程序堆栈。选择 保存。

现在添加可观察性组件。重复从 资源 面板中搜索然后拖放以下组件到画布上,这些组件位于 应用程序堆栈 组的外部。

EventBridge 事件规则Lambda 函数SNS 主题SNS 订阅

重复创建这四个组件的分组,组名为 可观察性。

其中一些组件在其侧面有小圆圈,这是连接端口。卡片右侧的端口表示该卡片可以触发另一张卡片的机会,而左侧的端口则表示该卡片可以被另一个卡片触发。您可以通过单击一张卡的右端口并将其拖到另一张卡的左端口来连接两张卡。

飞兔加速器

按照以下步骤创建可观察性堆栈:

将 EventBridge 事件规则卡的右端口连接到 Lambda 函数卡的左端口,使 Lambda 函数成为 EventBridge 规则的目标。将 Lambda 函数的右端口连接到 SNS 主题的左端口,这样会向 Lambda 函数添加所需的 AWS 身份和管理 权限策略和环境变量,以使其能够与 SNS 主题交互。选择 EventBridge 事件规则卡,并将资源属性面板中的事件模式代码替换为以下代码。该事件模式监控 RDS 实例的变更事件并将此事件推送到 Lambda。

yaml source awsrds detailtype RDS DB Instance Event

选择 SNS 订阅以查看资源配置面板。将以下代码添加到资源配置中,并将 test@examplecom 替换为您的电子邮件地址。

yaml Endpoint test@examplecom Protocol email TopicArn !Ref Topic

重复创建步骤以创建一个包含 EventBridge 事件规则、Lambda 函数、SNS 主题和 SNS 订阅的可观察性组,将其命名为 可观察性。您的组看起来如下: ![可观察性组](https//d2908q01vomqb2cloudfrontnet/1b6453892473a467d