创建实例

最近更新时间:2019-05-31 11:31:27

说明:

当前页面接口为旧版 API,未来可能停止维护,目前不展示在左侧导航。云服务器 API 3.0 版本接口定义更加规范,访问时延下降显著,建议使用 云服务器 API 3.0

1. 接口描述

本接口 (RunInstances) 用于创建一个或多个指定配置的实例。

接口请求域名:cvm.api.qcloud.com

  • 实例创建成功后将自动开机启动,实例状态变为“运行中”。
  • 预付费实例的购买会预先扣除本次实例购买所需金额,按小时后付费实例购买会预先冻结本次实例购买一小时内所需金额,在调用本接口前请确保账户余额充足。
  • 本接口允许购买的实例数量遵循CVM实例购买限制,所创建的实例和官网入口创建的实例共用配额。
  • 本接口为异步接口,当创建请求下发成功后会返回一个实例ID列表,此时实例的创建并立即未完成。在此期间实例的状态将会处于“准备中”,可以通过调用 DescribeInstancesStatus 接口查询对应实例的状态,来判断生产有没有最终成功。如果实例的状态由“准备中”变为“运行中”,则为创建成功。

2. 输入参数

以下请求参数列表仅列出了接口请求参数,其它参数见公共请求参数页面。

名称 类型 是否必选 描述
Version String 表示API版本号,主要用于标识请求的不同API版本。 本接口第一版本可传:2017-03-12。
InstanceChargeType String 实例计费类型
  • PREPAID:预付费,即包年包月
  • POSTPAID_BY_HOUR:按小时后付费
    默认值:POSTPAID_BY_HOUR。
  • InstanceChargePrepaid InstanceChargePrepaid object 预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月实例的购买时长、是否设置自动续费等属性。若指定实例的付费模式为预付费则该参数必传。
    Placement Placement object 实例所在的位置。通过该参数可以指定实例所属可用区,所属项目等属性。
    InstanceType String 实例机型。不同实例机型指定了不同的资源规格,具体取值可通过调用接口 DescribeInstanceTypeConfigs 来获得最新的规格表或参见实例类型描述。若不指定该参数,则默认机型为S1.SMALL1。
    ImageId String 指定有效的镜像ID,格式形如img-xxx。镜像类型分为四种:
  • 公共镜像
  • 自定义镜像
  • 共享镜像
  • 服务市场镜像

  • 可通过以下方式获取可用的镜像ID:
  • 公共镜像自定义镜像共享镜像的镜像ID可通过登录控制台查询;服务镜像市场的镜像ID可通过云市场查询。
  • 通过调用接口 DescribeImages ,取返回信息中的ImageId字段。
  • SystemDisk SystemDisk object 实例系统盘配置信息。若不指定该参数,则按照系统默认值进行分配。
    DataDisks.N array of DataDisk objects 实例数据盘配置信息。若不指定该参数,则默认不购买数据盘,当前仅支持购买的时候指定一个数据盘。
    VirtualPrivateCloud VirtualPrivateCloud object 私有网络相关信息配置。通过该参数可以指定私有网络的ID,子网ID等信息。若不指定该参数,则默认使用基础网络。若在此参数中指定了私有网络ip,那么InstanceCount参数只能为1。
    InternetAccessible InternetAccessible object 公网带宽相关信息设置。若不指定该参数,则默认公网带宽为0Mbps。
    InstanceCount Integer 购买实例数量。取值范围:[1,100]。默认取值:1。指定购买实例的数量不能超过用户所能购买的剩余配额数量,具体配额相关限制详见CVM实例购买限制
    InstanceName String 实例显示名称。如果不指定则默认显示"未命名"。最大长度不能超60个字节。
    LoginSettings LoginSettings object 实例登录设置。通过该参数可以设置实例的登录方式密码、密钥或保持镜像的原始登录设置。默认情况下会随机生成密码,并以站内信方式知会到用户。
    SecurityGroupIds.N array of Strings 实例所属安全组。该参数可以通过调用 DescribeSecurityGroups 的返回值中的sgId字段来获取。若不指定该参数,则默认不绑定安全组。不绑定安全组将暴露所有端口到公网和内网,实例的所有业务(如80、443等端口)将均可被访问,但会有一定的安全风险,建议选择按需新建的安全组。当前仅支持购买的时候指定一个安全组。
    EnhancedService EnhancedService object 增强服务。通过该参数可以指定是否开启云安全、云监控等服务。若不指定该参数,则默认开启云监控、云安全服务。
    ClientToken String 用于保证请求幂等性的字符串。该字符串由客户生成,需保证不同请求之间唯一,最大值不超过64个ASCII字符。若不指定该参数,则无法保证请求的幂等性。
    更多详细信息请参阅:如何保证幂等性。

    3. 输出参数

    参数名称 类型 描述
    InstanceIdSet array of Strings 当通过本接口来创建实例时会返回该参数,表示一个或多个实例ID。返回实例ID列表并不代表实例创建成功,可根据 DescribeInstancesStatus 接口查询返回的InstancesSet中对应实例的ID的状态来判断创建是否完成;如果实例状态由“准备中”变为“正在运行”,则为创建成功。
    RequestId String 唯一请求ID。每次请求都会返回一个唯一的RequestId,当客户调用接口失败找后台研发人员处理时需提供该RequestId具体值。

    接口执行正常返回参数示例

    {
        "Response": {
            "InstanceIdSet": [
                "xxx1",
                "xxx2"
            ],
            "RequestId": "eac6b301-a322-493a-8e36-83b295459397"
        }
    }
    

    接口执行异常返回参数示例

    {
      "Response": {
        "Error": {
          "Code": "AuthFailure",
          "Message": "qcloud was not able to validate the provided access credentials"
        },
        "RequestId": "eac6b301-a322-493a-8e36-83b295459397"
      }
    }
    

    4. 错误码

    以下错误码表仅列出了该接口的业务逻辑错误码,更多错误码详见公共错误码

    错误码 描述
    InvalidParameterValue 无效参数值。参数值格式错误或者参数值不被支持等。
    InvalidParameterValue.Range 表示参数取值范围不合法。
    InvalidParameterCombination 表示参数组合不正确。
    MissingParameter 参数缺失。该请求涉及的必选参数缺失。
    InvalidPermission 账户权限限制,无法进行该操作。
    AccountQualificationRestrictions 该请求账户未通过资格审计。
    InvalidZone.MismatchRegion 指定的可用区ID不合法或不属于指定Region底下的可用区。
    InvalidHostId.NotFound 指定的HostId不存在,或不属于该请求账号所有。
    InvalidPeriod 指定的购买时长不在合理取值范围内。
    InvalidInstanceType.Malformed 指定InstanceType参数格式不合法。
    InstancesQuotaLimitExceeded 表示当前创建的实例个数超过了该账户允许购买的剩余配额数。
    InvalidInstanceName.TooLong 指定的InstanceName字符串长度超出限制,必须小于等于60字节。
    InvalidPassword 表示指定的密码复杂度符合限制要求。
    InvalidClientToken.TooLong 指定的ClientToken字符串长度超出限制,必须小于等于64字节。
    VpcAddrNotInSubNet 私有网络ip不在子网内
    VpcIpIsUsed 私有网络ip已经被使用

    5. 示例

    示例1

    最简单参数的购买:

    只传必传的Zone和镜像ID,其他均采用系统默认值,具体配置如下:实例所在位置为广州二区,镜像ID为:img-pmqg1cw7。

    请求参数

      https://cvm.api.qcloud.com/v2/index.php?Action=RunInstances
      &Version=2017-03-12
      &Placement.Zone=ap-guangzhou-2
      &ImageId=img-pmqg1cw7
      &<公共请求参数>
    

    返回参数

    {
        "Response": {
            "InstanceIdSet": [
                "ins-1vogaxgk"
            ],
            "RequestID": "3c140219-cfe9-470e-b241-907877d6fb03"
        }
    }
    

    示例2

    包年包月实例购买:

    实例所在位置为广州二区,付费模式为包年包月,购买一个月,到期自动续费,镜像ID为:img-pmqg1cw7,选择机型为:1C1G标准型(S1.SMALL1),50G大小本地普通系统盘,带100G大小本地普通数据盘,基础网络,公网付费模式为流量按小时后付费,外网带宽上限10Mbps,分配公网IP,实例命名为QCLOUD-TEST,设置登录密码未Qcloud@TestApi123++,安装云监控云安全,购买数量为1台。

    请求参数

      https://cvm.api.qcloud.com/v2/index.php?Action=RunInstances
      &Version=2017-03-12
      &Placement.Zone=ap-guangzhou-2
      &InstanceChargeType=PREPAID
      &InstanceChargePrepaid.Period=1
      &InstanceChargePrepaid.RenewFlag=NOTIFY_AND_AUTO_RENEW
      &ImageId=img-pmqg1cw7
      &InstanceType=S1.SMALL1
      &SystemDisk.DiskType=LOCAL_BASIC
      &SystemDisk.DiskSize=50
      &DataDisks.0.DiskType=LOCAL_BASIC
      &DataDisks.0.DiskSize=100
      &InternetAccessible.InternetChargeType=TRAFFIC_POSTPAID_BY_HOUR
      &InternetAccessible.InternetMaxBandwidthOut=10
      &InternetAccessible.PublicIpAssigned=TRUE
      &InstanceName=QCLOUD-TEST
      &LoginSettings.Password=Qcloud@TestApi123++
      &EnhancedService.SecurityService.Enabled=TRUE
      &EnhancedService.MonitorService.Enabled=TRUE
      &InstanceCount=1
      &<公共请求参数>
    

    返回参数

    {
        "Response": {
            "InstanceIdSet": [
                "ins-bfw5zq3y"
            ],
            "RequestID": "3c140219-cfe9-470e-b241-907877d6fb03"
        }
    }
    

    示例3

    按小时后付费实例购买:

    实例所在位置为广州二区,付费模式为按小时后付费,镜像ID为:img-pmqg1cw7,选择机型为:1C1G标准型(S1.SMALL1),50G大小本地普通系统盘,带100G大小本地普通数据盘,基础网络,公网付费模式为流量按小时后付费,外网带宽上限10Mbps,分配公网IP,实例命名为QCLOUD-TEST,设置登录密码未Qcloud@TestApi123++,安装云监控云安全,购买数量为1台。

    请求参数

      https://cvm.api.qcloud.com/v2/index.php?Action=RunInstances
      &Version=2017-03-12
      &Placement.Zone=ap-guangzhou-2
      &InstanceChargeType=POSTPAID_BY_HOUR
      &ImageId=img-pmqg1cw7
      &InstanceType=S1.SMALL1
      &SystemDisk.DiskType=LOCAL_BASIC
      &SystemDisk.DiskSize=50
      &DataDisks.0.DiskType=LOCAL_BASIC
      &DataDisks.0.DiskSize=100
      &InternetAccessible.InternetChargeType=TRAFFIC_POSTPAID_BY_HOUR
      &InternetAccessible.InternetMaxBandwidthOut=10
      &InternetAccessible.PublicIpAssigned=TRUE
      &InstanceName=QCLOUD-TEST
      &LoginSettings.Password=Qcloud@TestApi123++
      &EnhancedService.SecurityService.Enabled=TRUE
      &EnhancedService.MonitorService.Enabled=TRUE
      &InstanceCount=1
      &<公共请求参数>
    

    返回参数

    {
        "Response": {
            "InstanceIdSet": [
                "ins-32kcaqoa"
            ],
            "RequestID": "3c140219-cfe9-470e-b241-907877d6fb03"
        }
    }