全部產品
Search
文件中心

Resource Orchestration Service:模板編寫快速入門

更新時間:Jun 19, 2024

模板是描述基礎設施和架構的藍圖,您可以在模板中部署雲產品及其依賴關係,然後通過ROS完成部署。本文以建立Virtual Private Cloud和交換器(vSwitch)為例向您介紹如何編寫模板。

前提條件

請您提前熟悉模板的結構要求。更多資訊,請參見模板結構說明

使用須知

您可以訪問對應的資源類型文檔查看屬性詳情。更多資訊,請參見資源類型索引

資源類型為每個屬性定義了類型、是否必須、是否允許更新等資訊。如果為必須,則要求必須在Resources的Properties中聲明該屬性;反之,則為非必須聲明。如果為允許更新,則可以在新模板中修改該屬性,然後使用修改後的模板更新資源棧以達到更新資源屬性的目的;反之,則不允許更新。

編寫模板

編寫模板最重要的部分是在Resources中聲明需要建立的資源,您可以在資源類型索引中查看ROS支援的所有資源類型,然後在對應資源類型文檔中查看該資源支援的屬性和傳回值。您可以在Resource Orchestration Service控制台的資源棧或模板功能頁面編寫模板,ROS控制台會在您編寫模板的過程中進行提示和校正。更多資訊,請參見使用ROS線上編輯器編寫模板

  1. 查看資源類型詳情。

    1. 訪問資源類型索引,根據部署情境查看對應的資源類型。(例如:建立VPC和vSwitch需要用到的資源類型為ALIYUN::ECS::VPCALIYUN::ECS::VSwitch

    2. 訪問指定資源類型,查看資源對應屬性。更多資訊,請參見使用須知

  2. 參數(Parameters)中定義模板參數。

    您可以定義VPC資源中的VpcCidrBlock,vSwitch資源中的ZoneId、VSwitchNameVSwitchCidrBlock,Parameters模板內容為ROS控制台參數提供可視化介面取值。更多資訊,請參見ALIYUN::ECS::VPCALIYUN::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
  3. 資源(Resources)中聲明待建立的資源。

    您必須定義vSwitch資源的VpcId、ZoneId和CidrBlock屬性,VPC和vSwitch資源的其他屬性可以選擇性定義。更多資訊,請參見ALIYUN::ECS::VPCALIYUN::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
  4. 輸出(Outputs)中定義模板輸出。

    您可以定義VPC資源的輸出值VpcId和vSwitch資源的輸出值VSwitchId。更多資訊,請參見ALIYUN::ECS::VPCALIYUN::ECS::VSwitch。您可以通過調用內建函式Fn::GetAtt擷取對應資源的屬性值。更多資訊,請參見Fn::GetAtt

    Outputs:
      VpcId:
        Value:
          Fn::GetAtt:
            - Vpc
            - VpcId
      VSwitchId:
        Value:
          Fn::GetAtt:
            - VSwitch
            - VSwitchId
  5. 根據模板結構,編寫完整的模板。

    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

後續操作

當您編寫完模板後,您可以選擇使用模板建立資源棧或者儲存為我的模板。具體操作,請參見資源棧快速入門建立模板

相關文檔