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

前提条件

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

背景信息

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

操作步骤

  1. 登录ROS控制台
  2. 在左侧导航栏选择模板 > 模板示例
  3. 查找模板simple_ecs_instance模板示例
  4. 单击查看详情,模板会显示为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。
  5. 单击右上角的创建资源栈
  6. 创建资源栈向导的配置模板参数页面,配置资源栈名称参数录入,单击下一步
  7. 创建资源栈向导的配置资源栈页面,配置资源栈策略失败时回滚超时设置标签,单击下一步
    资源的创建或更新未在超时设置的时间内完成,系统自动判断该操作失败,再根据失败时回滚设置,判断是否回滚到创建或更新资源之前的状态。
  8. 创建资源栈向导的确认页面,单击创建资源栈
    您可以在资源栈管理页面,查看当前创建的资源栈状态和信息。

后续步骤

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