模板是描述基礎設施和架構的藍圖,您可以在模板中部署雲產品及其依賴關係,然後通過ROS完成部署。本文以建立Virtual Private Cloud和交換器(vSwitch)為例向您介紹如何編寫模板。
前提條件
請您提前熟悉模板的結構要求。更多資訊,請參見模板結構說明。
使用須知
您可以訪問對應的資源類型文檔查看屬性詳情。更多資訊,請參見資源類型索引。
資源類型為每個屬性定義了類型、是否必須、是否允許更新等資訊。如果為必須,則要求必須在Resources的Properties中聲明該屬性;反之,則為非必須聲明。如果為允許更新,則可以在新模板中修改該屬性,然後使用修改後的模板更新資源棧以達到更新資源屬性的目的;反之,則不允許更新。
編寫模板
編寫模板最重要的部分是在Resources中聲明需要建立的資源,您可以在資源類型索引中查看ROS支援的所有資源類型,然後在對應資源類型文檔中查看該資源支援的屬性和傳回值。您可以在Resource Orchestration Service控制台的資源棧或模板功能頁面編寫模板,ROS控制台會在您編寫模板的過程中進行提示和校正。更多資訊,請參見使用ROS線上編輯器編寫模板。
查看資源類型詳情。
訪問資源類型索引,根據部署情境查看對應的資源類型。(例如:建立VPC和vSwitch需要用到的資源類型為ALIYUN::ECS::VPC和ALIYUN::ECS::VSwitch)
訪問指定資源類型,查看資源對應屬性。更多資訊,請參見使用須知。
在參數(Parameters)中定義模板參數。
您可以定義VPC資源中的VpcCidrBlock,vSwitch資源中的ZoneId、VSwitchName
、VSwitchCidrBlock
,Parameters模板內容為ROS控制台參數提供可視化介面取值。更多資訊,請參見ALIYUN::ECS::VPC和ALIYUN::ECS::VSwitch。如果您建立的交換器和專用網路有關聯,請確保VPC和vSwitch的CidrBlock屬性在同一網段中。
Parameters:
VpcCidrBlock:
Type: String
Default: 192.168.0.0/16
AllowedValues:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
ZoneId:
Type: String
AssociationProperty: ALIYUN::ECS::Instance::ZoneId
VSwitchName:
Type: String
VSwitchCidrBlock:
Type: String
Default: 192.168.0.0/24
AllowedValues:
- 10.0.0.0/24
- 172.16.0.0/24
- 192.168.0.0/24
在資源(Resources)中聲明待建立的資源。
您必須定義vSwitch資源的VpcId、ZoneId和CidrBlock屬性,VPC和vSwitch資源的其他屬性可以選擇性定義。更多資訊,請參見ALIYUN::ECS::VPC和ALIYUN::ECS::VSwitch。您可以直接通過Ref函數引用Parameters中定義的參數,或者直接給資源屬性賦值。更多資訊,請參見Ref。
Resources:
Vpc:
Type: ALIYUN::ECS::VPC
Properties:
VpcName: MyTest
CidrBlock:
Ref: VpcCidrBlock
VSwitch:
Type: ALIYUN::ECS::VSwitch
Properties:
VpcId:
Ref: Vpc
ZoneId:
Ref: ZoneId
VSwitchName:
Ref: VSwitchName
CidrBlock:
Ref: VSwitchCidrBlock
在輸出(Outputs)中定義模板輸出。
您可以定義VPC資源的輸出值VpcId和vSwitch資源的輸出值VSwitchId。更多資訊,請參見ALIYUN::ECS::VPC和ALIYUN::ECS::VSwitch。您可以通過調用內建函式Fn::GetAtt擷取對應資源的屬性值。更多資訊,請參見Fn::GetAtt。
Outputs:
VpcId:
Value:
Fn::GetAtt:
- Vpc
- VpcId
VSwitchId:
Value:
Fn::GetAtt:
- VSwitch
- VSwitchId
根據模板結構,編寫完整的模板。
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
VSwitchName:
Type: String
VSwitchCidrBlock:
Default: 192.168.0.0/24
Type: String
AllowedValues:
- 10.0.0.0/24
- 172.16.0.0/24
- 192.168.0.0/24
VpcCidrBlock:
Default: 192.168.0.0/16
Type: String
AllowedValues:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
ZoneId:
AssociationProperty: ALIYUN::ECS::Instance::ZoneId
Type: String
Resources:
VSwitch:
Type: ALIYUN::ECS::VSwitch
Properties:
VSwitchName:
Ref: VSwitchName
VpcId:
Ref: Vpc
CidrBlock:
Ref: VSwitchCidrBlock
ZoneId:
Ref: ZoneId
Vpc:
Type: ALIYUN::ECS::VPC
Properties:
VpcName: MyTest
CidrBlock:
Ref: VpcCidrBlock
Outputs:
VpcId:
Value:
Fn::GetAtt:
- Vpc
- VpcId
VSwitchId:
Value:
Fn::GetAtt:
- VSwitch
- VSwitchId
後續操作
當您編寫完模板後,您可以選擇使用模板建立資源棧或者儲存為我的模板。具體操作,請參見資源棧快速入門和建立模板。
相關文檔