资源编排服务(ROS)通过模板创建一组阿里云资源。ROS把每组资源定义为一个栈(stack)。ROS通过栈管理,分组维护阿里云资源。

前提条件

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

背景信息

本文以simple_ecs_instance模板为例,为您介绍如何在ROS控制台上通过模板创建、管理和维护阿里云资源。ROS模板是JSON格式的文本文件。您可以在这个文本中定义自己的阿里云资源,例如安全组、ECS实例、VPC、RDS实例等。

操作步骤

  1. 登录ROS控制台
  2. 单击左侧导航栏中的模板样例,找到simple_ecs_instance模板。

  3. 单击预览,模板会显示为JSON格式。
    simple_ecs_instance模板的详细信息如下。
    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Description": "One simple ECS instance with a security group and a vSwitch in a VPC. The user only needs to specify the image ID.",
      "Parameters": {
        "ImageId": {
          "Type": "String",
          "Description": "Image Id, represents the image resource to startup one ECS instance,, <a href='#/product/cn-shenzhen/list/imageList' target='_blank'>View image resources</a>",
          "Label": "ECS Image Id",
          "Default": "centos_7"
        },
        "InstanceType": {
          "Type": "String",
          "Description": "The instance type",
          "Label": "ECS Instance Type",
          "Default": "ecs.c5.large",
          "AllowedValues": [
            "ecs.c5.large",
            "ecs.g5.large",
            "ecs.c5.xlarge",
            "ecs.g5.xlarge"
          ]
        },
        "Password": {
          "Type": "String",
          "Description": "The login password of ECS instances",
          "ConstraintDescription": "[8, 30] characters, consists of uppercase letter, lowercase letter and special characters.",
          "Label": "ECS Instance Password",
          "MaxLength": "30",
          "MinLength": "8",
          "AllowedPattern": "[a-zA-Z0-9-\\(\\)\\`\\~\\!@\\#\\$%\\^&\\*-+=\\|\\{\\}\\[\\]\\:\\;\\‘\\,\\.\\?\\/]*",
          "NoEcho": true,
          "Confirm": true
        }
      },
      "Resources": {
        "WebServer": {
          "Type": "ALIYUN::ECS::Instance",
          "Properties": {
            "ImageId": {
              "Ref": "ImageId"
            },
            "InstanceType": {
              "Ref": "InstanceType"
            },
            "SecurityGroupId": {
              "Ref": "SecurityGroup"
            },
            "PrivateIpAddress": "192.168.0.1",
            "VSwitchId": {
              "Ref": "vswitch"
            },
            "VpcId": {
              "Ref": "vpc"
            },
            "Password": {
              "Ref": "Password"
            }
          }
        },
        "vswitch": {
          "Type": "ALIYUN::ECS::VSwitch",
          "Properties": {
            "VpcId": {
              "Ref": "vpc"
            },
            "ZoneId": {
              "Fn::Select": [
                "0",
                {
                  "Fn::GetAZs": {
                    "Ref": "ALIYUN::Region"
                  }
                }
              ]
            },
            "CidrBlock": "192.168.0.0/16"
          }
        },
        "SecurityGroup": {
          "Type": "ALIYUN::ECS::SecurityGroup",
          "Properties": {
            "VpcId": {
              "Ref": "vpc"
            }
          }
        },
        "vpc": {
          "Type": "ALIYUN::ECS::VPC",
          "Properties": {
            "CidrBlock": "192.168.0.0/16",
            "VpcName": "simple_ecs_vpc"
          }
        }
      },
      "Outputs": {
        "InstanceId": {
          "Description": "The instance id of created ecs instance",
          "Value": {
            "Fn::GetAtt": [
              "WebServer",
              "InstanceId"
            ]
          }
        },
        "PublicIp": {
          "Description": "Public IP address of created ecs instance.",
          "Value": {
            "Fn::GetAtt": [
              "WebServer",
              "PublicIp"
            ]
          }
        },
        "SecurityGroupId": {
          "Description": "generated security group id for security group.",
          "Value": {
            "Fn::GetAtt": [
              "SecurityGroup",
              "SecurityGroupId"
            ]
          }
        }
      }
    }
    这个JSON文本包含5个一级字段:
    • "ROSTemplateFormatVersion"定义模板的版本。
    • "Description"定义模板的解释说明。
    • "Parameters" : { }定义模板的参数。本例定义了镜像ID和实例规格等参数,并指定了参数的默认值。
    • "Resources" : { }定义模板可创建的阿里云资源。本例将创建一个ECS实例和一个安全组,资源属性将引用Parameters中定义的参数。
    • "Outputs": { }定义资源创建完成后,通过ROS输出栈的资源信息。本例将输出ECS实例的ID、公网IP和安全组ID。
  4. 单击创建栈,开始创建您的资源栈。
  5. 选择地域(region)的下拉框中选择您的目标地域,单击下一步

  6. 填写栈名,单击创建

  7. 单击管理,进入栈的管理页面。

  8. 在栈的管理页面,查看栈的详情。
    • 单击左侧导航栏中的概览,查看栈的概况。
    • 单击左侧导航栏中的资源,查看栈中所有资源。
    • 单击左侧导航栏中的事件,查看创建栈时的相关操作。如有操作失败,此处也会显示具体的失败原因。
    • 单击左侧导航栏中的模板,查看栈的原始模板。

后续步骤

ROS可以通过用户指定的模板URL地址创建资源栈。您可以通过ROS管理资源,删除资源或者只删除栈而保留资源,也可以根据自己的需求更新资源栈,重新检查资源栈的状态等。
说明 阿里云规定,当您创建按量付费的资源时(例如本例的ECS实例),您的账户中必须有超过100元的现金余额、可用信用额度或可用于开通产品的代金券,否则将导致资源创建失败。