本文介紹基于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