在全托管服務中,如果您的模板參數之間存在依賴關系,并且在特定條件下希望將參數設置為固定的值,則可以在服務中配置參數映射。計算巢在部署服務實例時,在滿足條件的場景下,會自動將您配置的參數值用作實例部署。本文介紹如何配置參數映射關系。
背景信息
全托管服務支持直接添加和使用資源棧組添加兩種映射方式添加映射關系。設置后,對應參數自動變為隱藏參數。在用戶創建服務實例時,只體現依賴參數,且選擇依賴參數的值后,隱藏的參數自動填寫映射關系中對應參數設置的值。
直接添加:用于少數地域配置參數映射關系。服務商對模板中的參數進行映射關系和子依賴映射設置。選擇依賴參數和對應參數,并設置依賴參數和對應參數的值。
試用資源棧組添加:用于服務部署在多個地域的多個可用區且需要在每個地域都配置一個參數映射關系的情況。服務商可以使用資源棧組添加參數映射關系,簡化配置參數映射的操作。
直接添加參數映射關系
操作步驟
登錄計算巢控制臺。
在左側導航欄中選擇我的服務,在我創建的服務區域下單擊創建新服務。
在創建新服務頁面,設置服務信息。
此處只列舉參數映射需要特別配置的參數,其他參數,請參見創建全托管服務。
在模板內容框中,輸入模板內容。模板內容的詳細信息,請參見模板示例。
單擊添加參數映射關系,在彈出的添加參數映射關系彈窗中選擇直接添加并配置相關參數。
在映射配置和子依賴項映射配置區域,分別選擇依賴參數和對應參數。
單擊添加自動參數映射,設置選擇依賴參數和對應參數的值。
在已設置的依賴參數
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云服務器'