资源编排服务ROS(Resource Orchestration Service)是阿里云提供的一项简化云计算资源管理的服务。首次使用ROS时,您可以编写模板,定义所需的云计算资源、资源间的依赖关系等,然后创建资源栈,快速创建资源。本文以快速创建专有网络和交换机为例,为您介绍具体的操作方法。

前提条件

请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册

步骤一:编写模板

模板是一个JSON、YAML或Terraform格式的文本文件,使用UTF-8编码。您需要使用模板定义阿里云资源和配置细节,并说明资源间的依赖关系,然后基于模板创建资源栈。您可以根据模板结构和资源类型自行编写模板,也可以直接使用模板示例。

关于模板结构的更多信息,请参见JSON和YAML类型模板结构Terraform类型模板结构

创建专有网络和交换机的模板示例如下:

{
   "ROSTemplateFormatVersion": "2015-09-01",
   "Description": "Example of provisioning VPC and vSwitch.",
   "Parameters": {
     "VpcName": {
       "Type": "String",
       "Description": {
         "zh-cn": "长度为2~128个字符。必须以英文字母或汉字开头,不能以http://或https://开头。可包含英文字母、汉字、数字、下划线(_)和短划线(-)。",
         "en": "The name must be 2 to 128 characters in length and can contain letters, digits, underscores (_), and hyphens (-). It must start with a letter and cannot start with http:// or  https://."
       },
       "Default": null
     },
     "VpcCidrBlock": {
       "Type": "String",
       "Description": {
         "zh-cn": "专有网络网段",
         "en": "The CIDR block of the VPC."
       },
       "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",
       "Description": {
         "zh-cn": "可用区",
         "en": "Zone ID."
       },
       "AssociationProperty": "ALIYUN::ECS::Instance::ZoneId"
     },
     "VSwitchName": {
       "Type": "String",
       "Description": {
         "zh-cn": "长度为2~128个字符。必须以英文字母或汉字开头,不能以 http://或 https://开头。可包含英文字母、汉字、数字、下划线(_)和短划线(-)。",
         "en": "The name must be 2 to 128 characters in length and can contain letters, digits, underscores (_), and hyphens (-). It must start with a letter and cannot start with http:// or  https://."
       },
       "Default": null
     },
     "VSwitchCidrBlock": {
       "Type": "String",
       "Description": {
         "zh-cn": "交换机网段",
         "en": "The CIDR block of the VSwitch."
       },
       "Default": "192.168.0.0/24",
       "AllowedValues": [
         "10.0.0.0/24",
         "172.16.0.0/24",
         "192.168.0.0/24"
       ]
     },
     "Tags": {
       "Type": "Json",
       "Description": {
         "zh-cn": "最多设置20个标签,每个标签由键值对组成。标签值可以为空。",
         "en": "A maximum of 20 tags can be specified. Each tag is a key-value pair. The tag value can be left empty."
       },
       "Default": [
         {
           "Key": "ros",
           "Value": "beginner-tutorial"
         }
       ]
     }
   },
   "Resources": {
     "Vpc": {
       "Type": "ALIYUN::ECS::VPC",
       "Properties": {
         "VpcName": {
           "Ref": "VpcName"
         },
         "CidrBlock": {
           "Ref": "VpcCidrBlock"
         },
         "Tags": {
           "Ref": "Tags"
         }
       }
     },
     "VSwitch": {
       "Type": "ALIYUN::ECS::VSwitch",
       "Properties": {
         "VpcId": {
           "Ref": "Vpc"
         },
         "ZoneId": {"Ref": "ZoneId"},
         "VSwitchName": {
           "Ref": "VSwitchName"
         },
         "CidrBlock": {
           "Ref": "VSwitchCidrBlock"
         },
         "Tags": {
           "Ref": "Tags"
         }
       }
     }
   },
   "Outputs": {
     "VpcId": {
       "Description": "The VPC ID allocated by the system.",
       "Value": {
         "Fn::GetAtt": ["Vpc", "VpcId"]
       }
     },
     "VSwitchId": {
       "Description": "The VSwitch ID allocated by the system.",
       "Value": {
         "Fn::GetAtt": ["VSwitch", "VSwitchId"]
       }
     }
   }
 }

模板含义如下:

  • ROSTemplateFormatVersion:模板的版本号,当前版本号:2015-09-01。
  • Description:模板的描述信息,可用于说明模板的适用场景、架构说明等。通常情况下,对模板进行详细描述,有利于用户理解模板的内容。
  • Parameters:模板的参数。示例中定义了专有网络名称(VpcName)、专有网络网段(VpcCidrBlock)、可用区ID(ZoneId)、交换机名称(VSwitchName)、交换机网段(VSwitchCidrBlock)和标签(Tags)等参数。关于参数定义的更多信息,请参见概览
  • Resources:模板所包含的阿里云资源。示例将创建一个专有网络和一个交换机。资源属性将引用Parameters中定义的参数。关于资源的更多信息,请参见ALIYUN::ECS::VPCALIYUN::ECS::VSwitch
  • Outputs:资源栈创建完成后,输出的资源信息。示例将输出专有网络ID和交换机ID。

步骤二:创建资源栈

您可以使用步骤一:编写模板编写的模板快速创建资源栈。

  1. 登录资源编排控制台
  2. 在左侧导航栏,单击资源栈
  3. 在页面左上角的地域下拉列表,选择资源栈的所在地域,例如:华东1(杭州)。
  4. 资源栈列表页面,单击创建资源栈,然后在下拉列表中选择使用新资源(标准)
  5. 选择模板页面,在指定模板区域单击选择已有模板、选择模板录入方式输入模板,然后在模板内容区域的ROS页签输入步骤一:编写模板中编写的JSON格式的模板,最后单击下一步
  6. 配置模板参数页面,输入资源栈名称,并设置以下参数。
    参数 说明 示例
    VpcName 专有网络名称。 myVPC
    VpcCidrBlock 专有网络网段。取值:
    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16(默认值)
    192.168.0.0/16
    ZoneId 可用区ID。 华东1可用区K
    VSwitchName 交换机名称。 myVSwitch
    VSwitchCidrBlock 交换机网段。取值:
    • 10.0.0.0/24
    • 172.16.0.0/24
    • 192.168.0.0/24
    说明 交换机跟专有网络需处于同一网段。
    192.168.0.0/24
    Tags 标签。

    最多支持设置20个标签,每个标签由键值对组成。标签值可以为空。

    [{"Key": "ros", "Value": "beginner-tutorial"}]
  7. 单击创建

步骤三:使用资源栈中的资源

资源栈创建成功后,您可以根据需要使用资源栈中的资源,例如:在专有网络的交换机中部署阿里云资源。

  1. 在资源编排控制台的左侧导航栏,单击资源栈
  2. 资源栈列表页面,单击目标资源栈ID。
  3. 单击资源页签,然后单击交换机资源ID。
  4. 在专有网络控制台,查看交换机基本信息,包括交换机ID、可用区、所属的专有网络ID等信息。
  5. 在交换机中部署阿里云资源。
    具体操作,请参见创建云资源

步骤四(可选):更新资源栈

当您需要更新资源栈中的资源(例如:VpcName)时,可以更新资源栈。

  1. 在资源编排控制台的左侧导航栏,单击资源栈
  2. 资源栈列表页面,单击目标资源栈操作列的更新
  3. 配置模板参数页面,更新参数信息(例如:将VpcName更新为testVPC)。
  4. 单击确认修改

步骤五(可选):删除资源栈

当您不再需要已创建的资源时,可以删除资源栈,释放资源,以免产生不必要的费用。

  1. 在资源编排控制台的左侧导航栏,单击资源栈
  2. 资源栈列表页面,单击目标资源栈操作列的删除
  3. 删除资源栈对话框,选择删除方式释放资源
  4. 单击确定