天天看点

使用OpenApi弹性创建云服务器ECS

创建ecs的有下面几个api需要关注:

<a href="https://help.aliyun.com/document_detail/25499.html">创建ecs实例</a>

<a href="https://help.aliyun.com/document_detail/25506.html">查询实例列表</a>

<a href="https://help.aliyun.com/document_detail/25500.html">启动ecs实例</a>

<a href="https://help.aliyun.com/document_detail/25544.html">分配公网 ip 地址</a>

创建一台云服务器有很多关键参数,下面几个是必选属性:

securitygroupid: 安全组id,安全组通过安全组防火墙规则配置实现对一组实例的防火墙配置。保护您的实例的网络出入请求。在设置安全组的出入规则的时候建议按需开放而不要默认开放所有的出入规则。您也可以通过ecs控制台创建安全组进行创建。

创建一台云服务器也比较简单。如下面的代码就创建一台经典网络的ecs,使用的系统盘是ssd 盘参数为<code>cloud_ssd</code>,选择的是io优化实例<code>optimized</code>。代码如下:

创建成功会返回相应的实例id,失败的话也会有对应的errorcode,创建实例的参数较多,您可以参考ecs的售卖页面进行调整。

只有<code>stopped</code>状态的实例可以执行start操作。也只有<code>running</code>状态的ecs可以执行<code>stop</code>操作。查询云服务器的状态可以通过查询实例列表传入instanceid进行过滤, 在<code>describeinstancesrequest</code>的时候可以通过传入一个json数组格式的string就可以查询这个资源的状态。对于查询单个实例的状态建议使用<code>describeinstances</code>而不要使用<code>describeinstanceattribute</code>, 因为前者比后者返回更多的属性和内容。

下面的代码会检查实例的状态,只有实例的状态符合入参才会返回实例的详情

创建成功后的ecs默认状态是<code>stopped</code>,如果要启动ecs为<code>running</code>状态, 只需要发送启动指令即可。

停止云服务器也是非常的简单,只需要传入instanceid即可。

服务器的启动和停止都是一个异步的操作,所以我们可以通过脚本在创建时候检测云服务器符合状态的时候执行相应的操作。

在创建资源之后得到实例id,首先判断实例是否处于<code>stopped</code>的状态,如果处于<code>stopped</code>状态,我们下发<code>start</code>服务器的指令,然后等待服务器的状态变成 <code>running</code>状态。

这样就完成了资源的创建。

除了创建按量服务的云服务器,我们的api还支持创建包年包月的服务器。包年包月的创建和官网的创建流程不同,使用的是自动扣费的模式,也就是说您需要在创建服务器之前确保账号有足够的余额或者信用额度,在创建的时候将会直接扣费无需确认。

和按量付费的ecs相比我们只需要指定付费类型和时长即可,下面的时长为1个月。

创建包年包月实例的整体的代码如下

完整的代码如下,您可以按照自己的资源参数进行设置。