本文介绍基于SpringBoot软件包快速构建单租版全托管版计算巢服务的详细信息。
服务说明
本示例会自动的构建计算巢服务,创建过程大约持续2分钟,当服务变成待提交后构建成功。具体的服务构建流程为
上传文件并构建计算巢文件部署物
创建计算巢服务并关联文件部署物
服务架构
本部署架构为单机ECS部署,通过公网IP的8080端口访问。
服务构建计费说明
测试本服务构建无需任何费用,创建服务实例涉及的费用参考服务实例计费说明。
RAM账号所需权限
本服务需要对ECS、VPC等资源进行访问和创建操作,若您使用RAM用户创建服务实例,需要在创建服务实例前,对使用的RAM用户的账号添加相应资源的权限。添加RAM权限的详细操作,请参见为RAM用户授权。
所需权限如下表所示。
权限策略名称 | 备注 |
AliyunECSFullAccess | 管理云服务器服务(ECS)的权限 |
AliyunVPCFullAccess | 管理专有网络(VPC)的权限 |
AliyunROSFullAccess | 管理资源编排服务(ROS)的权限 |
AliyunComputeNestUserFullAccess | 管理计算巢服务(ComputeNest)的用户侧权限 |
AliyunComputeNestSupplierFullAccess | 管理计算巢服务(ComputeNest)的服务商侧权限 |
服务实例计费说明
由于本服务式托管版服务,资源属于服务商,所以创建服务实例的费用由服务商承担,主要涉及:
所选vCPU与内存规格
系统盘类型及容量
公网带宽
计费方式包括:
按量付费(小时)
包年包月
该服务模板构建的服务默认包含如下三种套餐。
套餐名 | ECS规格族 | vCPU与内存 | 系统盘 | 公网带宽 |
低配版 | ecs.c6.large | 内存型c6,2vCPU 4 GiB | ESSD云盘 200 GiB PL0 | 固定带宽1 Mbps |
基础版 | ecs.c6.xlarge | 内存型c6,4vCPU 8 GiB | ESSD云盘 200 GiB PL0 | 固定带宽1 Mbps |
高配版 | ecs.c6.2xlarge | 内存型c6,4vCPU 8 GiB | ESSD云盘 200 GiB PL0 | 固定带宽1 Mbps |
服务实例部署流程
部署参数说明
参数项 | 说明 |
实例密码 | 服务器登录密码,长度8-30,必须包含三项(大写字母、小写字母、数字、()`~!@#$%^&*_-+=)。 |
部署步骤
部署服务实例。
单击部署链接,在部署界面根据界面提示填写实例参数。
单击下一步:确认订单。
在参数确认界面,确认参数信息和授权信息后,单击立即创建。
用户创建出新的服务实例,处于待部署状态,需要服务商确认后才可以进入部署流程。
查看并使用服务实例。
等待部署完成后就可以开始使用服务
单击服务实例详情的visitUrl。
返回结果。
服务详细说明
本文通过将代码构建后,将deploy.sh和application.jar打包成package.tgz,通过计算巢部署物上传为文件部署物,并分发生成SpringBootPackage,然后在模板中ALIYUN:: ECS::RunCommand
执行如下命令。
yum install -y java
mkdir -p /home/admin/application
cd /home/admin/application
wget '{{ computenest::file::springboot }}' -O package.tgz
tar xvf package.tgz
/bin/bash deploy.sh start
其中{{ computenest::file::springboot }}
为占位符,会由计算巢服务替换成文件部署物SpringBootPackage的HTTP下载地址。
templates/template.yaml主要由如下三部分组成。
Parameters
定义需要用户填写的参数,包括付费类型,实例规格和实例密码可用区参数。EcsInstanceType: Type: String Label: en: Instance Type zh-cn: 实例类型 AssociationProperty: ALIYUN::ECS::Instance::InstanceType AssociationPropertyMetadata: InstanceChargeType: ${PayType} AllowedValues: - ecs.c6.large - ecs.c6.xlarge - ecs.c6.2xlarge InstancePassword: NoEcho: true Type: String Description: en: Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in) zh-cn: 服务器登录密码,长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号) AllowedPattern: '^[a-zA-Z0-9-\(\)\`\~\!\@\#\$\%\^\&\*\_\-\+\=\|\{\}\[\]\:\;\<\>\,\.\?\/]*$' Label: en: Instance Password zh-cn: 实例密码 ConstraintDescription: en: Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in) zh-cn: 长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号) MinLength: 8 MaxLength: 30 AssociationProperty: ALIYUN::ECS::Instance::Password # 可用区 ZoneId: Type: String AssociationProperty: ALIYUN::ECS::Instance:ZoneId Label: en: VSwitch Available Zone zh-cn: 可用区 VpcId: AssociationProperty: ALIYUN::ECS::VPC::VPCId Type: String Label: en: VPC ID zh-cn: 专有网络VPC实例ID # 交换机实例ID VSwitchId: AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId AssociationPropertyMetadata: VpcId: ${VpcId} ZoneId: ${ZoneId} Type: String Label: en: VSwitch ID zh-cn: 交换机实例ID
Resources
定义需要开的资源,包括新开的VPC、Vswitch、ECS实例以及执行命令的定义。SecurityGroup: Type: ALIYUN::ECS::SecurityGroup Properties: SecurityGroupName: Ref: ALIYUN::StackName VpcId: Ref: VpcId # 安全组入端口 SecurityGroupIngress: - PortRange: 8080/8080 Priority: 1 SourceCidrIp: 0.0.0.0/0 IpProtocol: tcp NicType: internet InstanceGroup: Type: ALIYUN::ECS::InstanceGroup Properties: # 付费类型 InstanceChargeType: PostPaid VpcId: Ref: VpcId VSwitchId: Ref: VSwitchId SecurityGroupId: Ref: SecurityGroup ZoneId: Ref: ZoneId ImageId: centos_7_8_x64_20G_alibase_20211130.vhd Password: Ref: InstancePassword InstanceType: Ref: EcsInstanceType SystemDiskCategory: cloud_essd SystemDiskSize: 200 InternetMaxBandwidthOut: 1 IoOptimized: optimized MaxAmount: 1 InstallPackage: Type: ALIYUN::ECS::RunCommand Properties: InstanceIds: Fn::GetAtt: - InstanceGroup - InstanceIds Type: RunShellScript Sync: true Timeout: 3600 CommandContent: Fn::Sub: - | #!/bin/bash yum install -y java mkdir -p /home/admin/application cd /home/admin/application wget '{{ computenest::file::springboot }}' -O package.tgz tar xvf package.tgz /bin/bash deploy.sh start - AccountId: Ref: ALIYUN::TenantId
Outputs
定义需要最终在计算巢概览页中对用户展示的输出。Outputs: VisitUrl: Description: en: VisitUrl. zh-cn: 访问页面。 Value: Fn::Sub: - http://${Address}:8080 - Address: Fn::Select: - 0 - Fn::GetAtt: - InstanceGroup - PublicIps