模板文件

{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"Description": {
"Type": "String",
"Description": "Description of the instance, [2, 256] characters. Do not fill or empty, the default is empty.",
"Default": "msync"
},
"DataDiskName": {
"Type": "String",
"Default": "datadisk"
},
"DataDiskSize": {
"Type": "Number",
"Default": 100
},
"SystemDiskSize": {
"Type": "Number",
"Description": "Disk size of the system disk, range from 40 to 500 GB. If you specify with your own image, make sure the system disk size bigger than image size. ",
"MinValue": 40,
"MaxValue": 500,
"Default": 80
},
"MaxAmount": {
"Type": "Number",
"Description": "Max number of instances to create, should be smaller than 'MaxAmount' and smaller than 100.",
"MinValue": 1,
"MaxValue": 100,
"Default": 1
},
"NetworkType": {
"Type": "String",
"Description": "Instance network type. Support 'vpc' and 'classic', for compatible reason, default is 'classic'. If vswitch id and vpc id is specified, the property will be forced to be set to 'vpc' ",
"Default": "classic"
},
"MinAmount": {
"Type": "Number",
"Description": "Max number of instances to create, should be bigger than 'MinAmount' and smaller than 100.",
"MinValue": 1,
"MaxValue": 100,
"Default": 1
},
"ImageId": {
"Type": "String",
"Description": "Image ID to create ecs instance.",
"Default": "m-2ze5ahokm5p8zeblr3sm"
},
"InstanceType": {
"Type": "String",
"Description": "Ecs instance supported instance type, make sure it should be correct.",
"Default": "ecs.s3.large"
},
"AllocatePublicIP": {
"Type": "Boolean",
"Description": "The public ip for ecs instance, if properties is true, will allocate public ip. If property InternetMaxBandwidthOut set to 0, it will not assign public ip.",
"Default": false
},
"HostName": {
"Type": "String",
"Description": "Host name of created ecs instance. at least 2 characters, and '.' '-' Is not the first and last characters as hostname, not continuous use. Windows platform can be up to 15 characters, allowing letters (without limiting case), numbers and '-', and does not support the number of points, not all is digital ('.').Other (Linux, etc.) platform up to 30 characters, allowing support number multiple points for the period between the points, each permit letters (without limiting case), numbers and '-' components.",
"Default": "ebs-ali-beijing-msync"
},
"Password": {
"Type": "String",
"Description": "Password of created ecs instance. Must contain at least 3 types of special character, lower character, upper character, number.",
"Default": "passwordishere"
},
"IoOptimized": {
"Type": "String",
"Description": "The 'optimized' instance can provide better IO performance. Support 'none' and 'optimized' only, default is 'none'.",
"Default": "optimized"
},
"ZoneId": {
"Type": "String",
"Description": "current zone to create the instance.",
"Default": "cn-beijing-a"
},
"SecurityGroupId": {
"Type": "String",
"Description": "Security group to create ecs instance. For classic instance need the security group not belong to VPC, for VPC instance, please make sure the security group belong to specified VPC.",
"Default": "sg-2zegx612vcgzlkzpydsi"
},
"InternetChargeType": {
"Type": "String",
"Description": "Instance internet access charge type.Support 'PayByBandwidth' and 'PayByTraffic' only. Default is PayByTraffic",
"Default": "PayByBandwidth"
},
"SystemDiskCategory": {
"Type": "String",
"Description": "Category of system disk. Default is cloud.support cloud|cloud_efficiency|cloud_ssd|ephemeral_ssd",
"Default": "cloud_efficiency"
},
"InstanceName": {
"Type": "String",
"Description": "Display name of the instance, [2, 128] English or Chinese characters, must start with a letter or Chinese in size, can contain numbers, '_' or '.', '-'",
"Default": "msync"
},
"InternetMaxBandwidthOut": {
"Type": "Number",
"Description": "Set internet output bandwidth of instance. Unit is Mbps(Mega bit per second). Range is [0,100]. Default is 1.While the property is not 0, public ip will be assigned for instance.",
"MinValue": 0,
"MaxValue": 200,
"Default": 1
},
"InternetMaxBandwidthIn": {
"Type": "Number",
"Description": "Max internet out band width setting, unit in Mbps(Mega bit per second). The range is [1,200], default is 200 Mbps.",
"MinValue": 1,
"MaxValue": 200,
"Default": 200
}
},
"Resources": {
"InstanceGroup": {
"Type": "ALIYUN::ECS::InstanceGroup",
"Properties": {
"Description": {
"Ref": "Description"
},
"DiskMappings": [
{
"Size": {
"Ref": "DataDiskSize"
},
"DiskName": {
"Ref": "DataDiskName"
}
}
],
"SystemDiskSize": {
"Ref": "SystemDiskSize"
},
"MaxAmount": {
"Ref": "MaxAmount"
},
"NetworkType": {
"Ref": "NetworkType"
},
"MinAmount": {
"Ref": "MinAmount"
},
"ImageId": {
"Ref": "ImageId"
},
"InstanceType": {
"Ref": "InstanceType"
},
"AllocatePublicIP": {
"Ref": "AllocatePublicIP"
},
"HostName": {
"Ref": "HostName"
},
"Password": {
"Ref": "Password"
},
"IoOptimized": {
"Ref": "IoOptimized"
},
"ZoneId": {
"Ref": "ZoneId"
},
"SecurityGroupId": {
"Ref": "SecurityGroupId"
},
"InternetChargeType": {
"Ref": "InternetChargeType"
},
"InstanceName": {
"Ref": "InstanceName"
},
"InternetMaxBandwidthOut": {
"Ref": "InternetMaxBandwidthOut"
},
"InternetMaxBandwidthIn": {
"Ref": "InternetMaxBandwidthIn"
}
}
}
},
"Outputs": {
"HostNames": {
"Description": "Host names of created instance.",
"Value": {
"Fn::GetAtt": [
"InstanceGroup",
"HostNames"
]
}
},
"InnerIps": {
"Description": "Inner IP address list of the specified instance. Only for classical instance.",
"Value": {
"Fn::GetAtt": [
"InstanceGroup",
"InnerIps"
]
}
},
"ZoneIds": {
"Description": "Zone id of created instance.",
"Value": {
"Fn::GetAtt": [
"InstanceGroup",
"ZoneIds"
]
}
},
"OrderId": {
"Description": "The order id list of created instance.",
"Value": {
"Fn::GetAtt": [
"InstanceGroup",
"OrderId"
]
}
},
"InstanceIds": {
"Description": "The instance id list of created ecs instance",
"Value": {
"Fn::GetAtt": [
"InstanceGroup",
"InstanceIds"
]
}
}
}
}

代码:

class AliyunROS(object):
def __init__(self, region_id, template_render):
tpl = Environment(loader=FileSystemLoader(searchpath='./')) \
.get_template('msync.template')
template = tpl.render(template_render.get(region_id))
self.region_id = region_id
self.client = AcsClient('aaa', 'bbb', region_id)
self.create_stack_body = '''
{
"Name": "%s",
"TimeoutMins": %d,
"DisableRollback": false,
"Template": %s
}
''' % ('msync_%s' % (time.strftime('%Y%m%d_%H%M%S')), 15, template.encode('utf-8'))
print(self.create_stack_body)
raise SystemExit
def create_ecs_instace(self):
""" :return: {"Id":"String", "Name":"String"} """
req = CreateStacksRequest.CreateStacksRequest()
req.set_headers({'x-acs-region-id': self.region_id})
req.set_content(self.create_stack_body)
return self.client.do_action_with_exception(req)

  

阿里云ros实例的更多相关文章

  1. 不服跑个分:ARM鲲鹏云服务器实战评测——华为云鲲鹏KC1实例 vs. 阿里云G5实例【华为云技术分享】

    原文链接:https://m.ithome.com/html/444828.htm 今年一月份,华为正式发布了鲲鹏920数据中心高性能处理器,该处理器兼容ARM架构,采用7纳米制造,最高支持64核,主 ...

  2. [转帖]华为鲲鹏云服务器实战:华为云鲲鹏KC1实例 vs. 阿里云G5实例

    鲲鹏云服务器实战:华为云鲲鹏KC1实例 vs. 阿里云G5实例 https://m.ithome.com/html/444828.htm 2019-09-12 15:25IT之家 (阿迷) 今年一月份 ...

  3. 【故障公告】阿里云 RDS 实例 CPU 100% 故障引发全站无法正常访问

    非常抱歉,今天凌晨 3:20~8:30 左右,我们使用的阿里云 RDS 实例 SQL Server 2016 标准版突然出现 CPU 100% 故障,造成全站无法正常访问,由此给您带来巨大的麻烦,请您 ...

  4. python3 获取阿里云ECS 实例及监控的方法

    #!/usr/bin/env python3.5 # -*- coding:utf8 -*- try: import httplib except ImportError: import http.c ...

  5. 阿里云rds实例恢复到本地

    摘要: 前提: 1,阿里云数据库备份实例,恢复数据的时候需要将数据恢复到本地数据库,是不能直接恢复到RDS上的. 2,需要在本地服务器上下载一个数据库,尽量和RDS数据库版本保持一致.(我现在用的是5 ...

  6. 阿里云RDS实例内不同数据库之间的数据迁移

    适用场景 本文适用于使用DTS实现相同实例下库名不同的数据库之间的数据迁移.本文以使用DTS将同一RDS实例下的amptest库迁移到jiangliu_amptest库为例来说明如何使用DTS实现相同 ...

  7. 阿里云ECS 实例Centos7系统磁盘扩容

    需求:一台阿里云的数据盘磁盘空间不足,需要扩容,我这里只有一个主分区,ext4文件系统. 因为磁盘扩容场景不同,阿里云的文档比较全面一些,所以先奉上阿里云的文档,下面开始我的操作步骤: 1.登录控制台 ...

  8. 阿里云数据库实例的一个db被开发人员删除了 如何恢复

    1没有 逻辑备份的话. 如下操作即可 可以将那个临时实例的需要导的db用逻辑备份出来恢复到主实例就行了 好多朋友都在问,RDS中把数据恢复到7天内任意时间点的功能在哪里啊? 其实挺简单的,只需要五步操 ...

  9. 阿里云 RDS实例间的数据迁移

    使用数据传输DTS可以实现两个RDS实例间的数据迁移.对于支持增量迁移的存储引擎,还可以使用DTS在源RDS实例不停服的情况下,将数据迁移到目标RDS实例.目前对于RDS不同存储引擎,只支持同构迁移( ...

随机推荐

  1. 迷你MVVM框架 avalonjs 0.98发布

    在本版本中,avalon侧重于对组件开发的支持,可用控件达到12个,末来将大力投入对GRID,TREE等重型UI的开发中. 添加ms-widget绑定,废弃ms-ui绑定 为ms-include添加跨 ...

  2. JAVA程序中使用正则表达式

    import java.util.regex.Matcher;import java.util.regex.Pattern; /** * @author Administrator 测试正则表达式 * ...

  3. viewer.js--一个强大的jQuery图像查看插件

    Viewer 是一款强大的 jQuery 图像浏览插件. 主要功能: 支持选项 支持方法 支持事件 支持触摸 支持移动 支持缩放 支持旋转 支持键盘 跨浏览器支持 查看演示      立即下载 部分插 ...

  4. TouchEvent里的targetTouches、touches、changedTouches的区别的具体体现是?

    touches:当前屏幕上所有触摸点的集合列表 targetTouches: 绑定事件的那个结点上的触摸点的集合列表 changedTouches: 触发事件时改变的触摸点的集合 举例来说,比如div ...

  5. oracle之Sequences

    产生这样的代码,运行即可

  6. oracle 知识点

    1.条件运算2.关联运算,子查询3.集合运算4.函数运算5.分组运算[group by](凑维度,条件,过滤,分组函数)6.行转列7.PL/SQL

  7. java 框架收藏

    一.java 异步非阻塞编程框架 1.Spring Webflux 2.Vert.x 3.Ratpack 4.smart-socket 国产异步框架 二.微服务框架 1.Jboot :专为大型分布式项 ...

  8. HBase 系列(二)安装部署

    HBase 系列(二)安装部署 本节以 Hadoop-2.7.6,HBase-1.4.5 为例安装 HBase 环境.HBase 也有三种模式:本地模式.伪分布模式.分布模式. 一.环境准备 (1) ...

  9. c11时间库一个小例子

    #pragma once #include <chrono> #include <string> #include <iostream> #include < ...

  10. max文件属性设置,

    之前一直都没找到 用到的时候就是用net 弄了.哎.还在开发东西都是在9上面, 这次脚本必须在 max8 上面 逼的我找到了他 getFileAttribute <filename_string ...