在全托管服务中,如果您的模板参数之间存在依赖关系,并且在特定条件下希望将参数设置为固定的值,则可以在服务中配置参数映射。计算巢在部署服务实例时,在满足条件的场景下,会自动将您配置的参数值用作实例部署。本文介绍如何配置参数映射关系。
背景信息
全托管服务支持直接添加和使用资源栈组添加两种映射方式添加映射关系。设置后,对应参数自动变为隐藏参数。在用户创建服务实例时,只体现依赖参数,且选择依赖参数的值后,隐藏的参数自动填写映射关系中对应参数设置的值。
直接添加:用于少数地域配置参数映射关系。服务商对模板中的参数进行映射关系和子依赖映射设置。选择依赖参数和对应参数,并设置依赖参数和对应参数的值。
试用资源栈组添加:用于服务部署在多个地域的多个可用区且需要在每个地域都配置一个参数映射关系的情况。服务商可以使用资源栈组添加参数映射关系,简化配置参数映射的操作。
直接添加参数映射关系
操作步骤
登录计算巢控制台。
在左侧导航栏中,选择我的服务,在我的服务页面中,选择我发布的服务,然后单击创建新服务。
在创建新服务页面,设置服务信息。
此处只列举参数映射需要特别配置的参数,其他参数,请参见创建全托管服务。
在模板内容框中,输入模板内容。模板内容的详细信息,请参见模板示例。
单击添加参数映射关系,在弹出的添加参数映射关系弹窗中选择直接添加并配置相关参数。
在映射配置和子依赖项映射配置区域,分别选择依赖参数和对应参数。
单击添加自动参数映射,设置选择依赖参数和对应参数的值。
在已设置的依赖参数
Region
后,选择华东1(杭州)
;在已设置的对应参数VpcId
后,选择一个已有VPC。单击添加子依赖参数,选择子依赖参数和对应参数的值。
在已设置的子依赖参数
ZoneId
后,选择华东 1 可用区 K
;在已配置的对应参数vSwitchId
后,选择一个已有vSwitch。重复此步骤,添加华东 1 可用区 J
和对应可用区的vSwitch。单击确定。
单击保存服务。
使用资源栈组添加参数映射关系
操作步骤
登录计算巢控制台。
在左侧导航栏中,选择我的服务,并在我的服务页面中选择我创建的服务,然后单击创建新服务。
在创建新服务页面,设置服务信息。
此处只列举使用资源栈组添加参数映射需要特别配置的参数,其他参数,请参见创建全托管服务。
点击添加自动参数映射,在添加自动参数映射弹窗中配置相关参数。
选择使用资源栈组添加页签,并添加资源栈组。
若您有已创建的资源栈组,则您可以直接在资源栈组区域,选择已创建资源栈组的地域、资源栈组ID。
若您还未创建资源栈组,则需要先完成资源栈组的创建,再选择资源栈组。更多信息,请参见创建资源栈组。
为方便您的操作,计算巢为您提供了两个创建资源栈组的最佳实践,这两个模板都会在各地域各可用区下创建VPC、交换机、安全组等信息。您只需要单击对应的名称,即可跳转到资源栈组创建页面。然后根据界面提示填写相应的参数,完成资源栈组的创建。
使用在某个地域创建VPC、交换机、安全组,并指定可用区数量创建资源栈时,您需要指定可用区数量,且需要保证指定的可用区数量不大于地域中的可用区真实数量。
使用在某个地域所有可用区创建VPC、交换机、安全组创建资源栈时,会默认在所有可用区下创建。
单击确定。
计算巢会自动生成参数映射。这可能会耗时几秒钟,请您耐心等待。
单击创建服务,并在弹出的确认弹窗中单击确定。
服务实例部署效果
服务实例部署界面
服务创建完成后,在服务实例部署界面,用户只需要选择在参数映射中已配置的地域和可用区信息,并且VPC参数和vSwitch参数信息对用户不可见。
服务实例部署完成
服务实例部署成功后,VPC参数和vSwitch参数的信息对用户也不可见。
模板示例
ROSTemplateFormatVersion: '2015-09-01'
Description:
zh-cn: 此模板为单实例自定义镜像模板示例,支持选择已有基础资源配置,支持配置ECS的付费模式为预付费或者后付费
en: >-
This template supports single-instance with custom image, including
scenarios using existing and creating ECS by prepaid or postpaid model
Parameters:
SystemDiskCategory:
AssociationProperty: 'ALIYUN::ECS::Disk::SystemDiskCategory'
AssociationPropertyMetadata:
InstanceType: InstanceType
ZoneId: ZoneId
Type: String
Description:
zh-cn: >-
<font color='blue'><b>可选值:</b></font><br>[cloud_efficiency: <font
color='green'>高效云盘</font>]<br>[cloud_ssd: <font
color='green'>SSD云盘</font>]<br>[cloud_essd: <font
color='green'>ESSD云盘</font>]<br>[cloud: <font color='green'>普通云盘</font>]
en: >-
<font color='blue'><b>Optional values:</b></font><br>[cloud_efficiency:
<font color='green'>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font
color='green'>SSD Cloud Disk</font>]<br>[cloud_essd: <font
color='green'>ESSD Cloud Disk</font>]<br>[cloud: <font
color='green'>Cloud Disk</font>]
Label:
zh-cn: 系统盘类型
en: System Disk Type
ECSPeriodUnit:
AssociationPropertyMetadata:
Visible:
Condition:
'Fn::Not':
'Fn::Equals':
- '${InstanceChargeType}'
- PostPaid
Description:
zh-cn: '云服务器预付费资源的购买时长周期,取值:[Week(周), Month(月)],<br>'
en: 'ECS Purchase cycle of prepaid resource, value: [Week, Month]<br>'
Default: Week
AllowedValues:
- Week
- Month
Label:
zh-cn: 云服务器预付费资源的购买周期
en: ECS Purchase cycle of prepaid resources
Type: String
ECSPeriod:
AssociationPropertyMetadata:
Visible:
Condition:
'Fn::Not':
'Fn::Equals':
- '${InstanceChargeType}'
- PostPaid
Description:
zh-cn: >-
云服务器预付费资源的购买时长,当预付费资源的购买周期为Week时,取值范围:[1,2,3,4];
当预付费资源的购买周期为Month时,取值:[1,2,3,4,5,6,7,8,9,12,24,36,48,60]<br>
en: >-
When the purchase cycle of prepaid resource is week, the value range is:
[1,2,3,4]; when the purchase cycle of prepaid resource is month, the
value is: [1,2,3,4,5,6,7,8,9,12,24,36,48,60]<br>
Default: 1
Label:
zh-cn: 云服务器预付费资源的购买时长
en: ECS Purchase duration of prepaid resources
AllowedValues:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 12
- 24
- 36
- 48
- 60
Type: Number
SecurityGroupId:
AssociationPropertyMetadata:
VpcId: VpcId
Description:
zh-cn: 现有安全组的实例ID
en: The instance ID of an existing security group.
Default: null
Label:
zh-cn: 安全组ID
en: Security Group ID
AssociationProperty: 'ALIYUN::ECS::SecurityGroup::SecurityGroupId'
Type: String
SystemDiskSize:
Default: 40
Type: Number
Description:
zh-cn: '系统盘大小, 取值范围:[40, 500], 单位:GB。'
en: 'System disk size, range of values: 40-500, units: GB.'
Label:
zh-cn: 系统盘空间
en: System Disk Space
ZoneId:
AssociationProperty: 'ALIYUN::ECS::Instance::ZoneId'
Type: String
Description:
zh-cn: 可用区配置决定了新建ECS实例的可用区。此外,如果您选择已有基础资源配置,仅能选到该可用区下的交换机。
en: >-
ECS VSwitch Zone ID defines the Availability Zone for creating ECS
instance. If you choose existing Infrastructure Configuration,you can
only find the VSwitch under the Availability zone.
Label:
zh-cn: ECS交换机可用区
en: ECS VSwitch Zone ID
DataDiskCategory:
AssociationProperty: 'ALIYUN::ECS::Disk::DataDiskCategory'
AssociationPropertyMetadata:
InstanceType: InstanceType
ZoneId: ZoneId
Type: String
Description:
zh-cn: >-
<font color='blue'><b>可选值:</b></font><br>[cloud_efficiency: <font
color='green'>高效云盘</font>]<br>[cloud_ssd: <font
color='green'>SSD云盘</font>]<br>[cloud_essd: <font
color='green'>ESSD云盘</font>]<br>[cloud: <font color='green'>普通云盘</font>]
en: >-
<font color='blue'><b>Optional values:</b></font><br>[cloud_efficiency:
<font color='green'>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font
color='green'>SSD Cloud Disk</font>]<br>[cloud_essd: <font
color='green'>ESSD Cloud Disk</font>]<br>[cloud: <font
color='green'>Cloud Disk</font>]
Label:
zh-cn: 数据盘类型
en: Data Disk Type
InstanceChargeType:
Default: PostPaid
Label:
zh-cn: ECS实例的付费模式
en: ECS Instance Billing Method
Type: String
Description:
zh-cn: >-
<font color='blue'><b>可选值:</b></font><br>[PostPaid: <font
color='green'>按量付费。</font>]<br>[PrePaid: <font
color='green'>预付费,包年包月。</font>]
en: >-
<font color='blue'><b>Optional values:</b></font><br>[PostPaid: <font
color='green'>Pay as you go.</font>]<br> [PrePaid: <font
color='green'>Prepaid, subscription.</font>]
AllowedValues:
- PostPaid
- PrePaid
VpcId:
Default: null
AssociationProperty: 'ALIYUN::ECS::VPC::VPCId'
Type: String
Description:
zh-cn: '请选择已有的VPC<br><b><font color=''blue''>如找不到VPC,请切换地域。</font></b>'
en: >-
Please select the existing VPC. <br><b><font color='blue'>If you can't
find the VPC, please switch Regions.</font></b>
Label:
zh-cn: 现有VPC的实例ID
en: Existing VPC ID
DataDiskSize:
Description:
zh-cn: ECS实例数据盘大小,单位为GiB。取值范围:20~32768
en: 'ECS Instance disk size, range of values: 20-32768, units: GB'
Default: 100
MaxValue: 32768
MinValue: 20
Label:
zh-cn: 数据盘空间
en: Data Disk Space
Type: Number
VSwitchId:
AssociationPropertyMetadata:
VpcId: VpcId
ZoneId: ZoneId
Description:
zh-cn: 现有网络交换机的实例ID
en: The instance ID of an existing network switch.
Default: null
Label:
zh-cn: 网络交换机ID
en: VSwitch ID
AssociationProperty: 'ALIYUN::ECS::VSwitch::VSwitchId'
Type: String
Password:
ConstraintDescription:
zh-cn: '长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;''<>,.?/ 中的特殊符号)。'
en: >-
Length 8-30, must contain three(Capital letters, lowercase letters,
numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in).
Description:
zh-cn: >-
服务器登录密码,长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/
中的特殊符号)。
en: >-
Server login password, Length 8-30, must contain three(Capital letters,
lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special
symbol in).
MinLength: 8
Label:
zh-cn: 实例密码
en: Instance Password
AllowedPattern: '[0-9A-Za-z\_\-\&:;''<>,=%`~!@#\(\)\$\^\*\+\|\{\}\[\]\.\?\/]+$'
NoEcho: true
MaxLength: 30
Type: String
InstanceType:
AssociationProperty: 'ALIYUN::ECS::Instance::InstanceType'
AssociationPropertyMetadata:
InstanceChargeType: '${InstanceChargeType}'
ZoneId: ZoneId
Type: String
Label:
zh-cn: 实例类型
en: Instance Type
InternetChargeType:
Type: String
Description:
zh-cn: >-
<font color='blue'><b>可选值:</b></font><br>[PayByBandwidth: <font
color='green'>按带宽付费。</font>]<br>[PayByTraffic: <font
color='green'>按流量付费。</font>],<br>默认为PayByTraffic
en: >-
<font color='blue'><b>Optional values:</b></font><br>[PayByBandwidth:
<font color='green'>Pay by bandwidth. </font>]<br>[PayByTraffic: <font
color='green'>Pay by traffic. </font>],<br>The default is PayByTraffic
Label:
en: InternetChargeType
zh-cn: 流量付费类型
AllowedValues:
- PayByBandwidth
- PayByTraffic
Default: PayByTraffic
InternetMaxBandwidthOut:
Type: Number
Description:
en: >-
ECS Internet Max Bandwidth Out. Value range: 0~100. Unit: Mbps. Default
value: 0.
zh-cn: ECS最大出带宽。取值范围:0~100。单位:Mbps。默认值:0。
Label:
en: 'Internet Max BandwidthOut '
zh-cn: 实例公网带宽
Default: 0
MaxValue: 100
MinValue: 0
Outputs:
InstanceIds:
Value:
'Fn::GetAtt':
- ECSInstances
- InstanceIds
Conditions: {}
Resources:
ECSInstances:
Type: 'ALIYUN::ECS::InstanceGroup'
Properties:
SystemDiskCategory:
Ref: SystemDiskCategory
VpcId:
Ref: VpcId
InstanceChargeType:
Ref: InstanceChargeType
AllocatePublicIP: true
SecurityGroupId:
Ref: SecurityGroupId
InternetChargeType:
Ref: InternetChargeType
InternetMaxBandwidthOut:
Ref: InternetMaxBandwidthOut
DiskMappings:
- Category:
Ref: DataDiskCategory
Size:
Ref: DataDiskSize
SystemDiskSize:
Ref: SystemDiskSize
ImageId: centos_7
PeriodUnit:
Ref: ECSPeriodUnit
VSwitchId:
Ref: VSwitchId
Period:
Ref: ECSPeriod
Password:
Ref: Password
InstanceType:
Ref: InstanceType
ZoneId:
Ref: ZoneId
MaxAmount: 1
Metadata:
'ALIYUN::ROS::Designer':
id: 3d97f557-f6c2-475f-bdca-942c45e583b5
Metadata:
'ALIYUN::ROS::Interface':
ParameterGroups:
- Parameters:
- ZoneId
Label:
default:
zh-cn: 可用区配置
en: Zone Configuration
- Parameters:
- VpcId
- VSwitchId
- SecurityGroupId
Label:
default:
zh-cn: 选择已有基础资源配置
en: Choose existing Infrastructure Configuration
- Parameters:
- InstanceChargeType
- ECSPeriodUnit
- ECSPeriod
- InstanceType
- SystemDiskCategory
- SystemDiskSize
- DataDiskCategory
- DataDiskSize
- InternetChargeType
- InternetMaxBandwidthOut
- Password
Label:
default:
zh-cn: ECS 配置(必填)
en: ECS Configuration
TemplateTags:
- 'acs:example:ISV软件部署:自定义镜像创建单实例ECS云服务器'