调用CreateInstance创建实例。

使用说明

  • 单用户调用频率:10次/秒。
  • 由于创建实例是异步操作,建议您适当增加请求时间。当API返回Code=0时仅代表请求成功,并不代表成功创建实例,在请求成功时会返回实例ID,然后您可以根据实例ID查询实例是否创建成功。
  • InvalidUserData.NotInWhiteList接口限制条件:只有配置了购买权限的相关白名单才可以进行创建,否则报错。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateInstance

系统规定参数。取值:CreateInstance

InstanceType String ens.se1.tiny

实例规格。

实例规格详情请参见使用限制

EnsRegionId String cn-hangzhou

地域。

Password String yourPassword:1

实例的密码。

长度为8至30个字符,必须同时包含大小写英文字母、数字和特殊符号中的三类字符。可以设置以下特殊符号:
()`~!@#$%^&*-_+=|{}[]:;'<>,.?/
Period String 12

购买资源的时长,取值范围:1~912,单位:月。

ImageId String yourImage ID

镜像文件ID,启动实例时选择的镜像资源。

SystemDisk.Size String 40

系统盘大小,单位为GiB。取值:2040,不能比镜像小,需要为10的倍数。

Quantity String 1

实例数量。

DataDisk.1.Size String 50

第一块数据盘的容量大小,单位为GiB,容量至少为20 GiB且为10的倍数。

InternetChargeType String 95BandwidthByMonth

如果您第一次创建该参数为必传。如果已有实例资源,则默认按照已存在的计费方式。取值:

  • BandwidthByDay:日峰值带宽。
  • 95BandwidthByMonth:月95峰值带宽。
AutoRenewPeriod String 12

每次自动续费的时长,当参数AutoRenew取值True时为必填。取值:1~12,单位:月。

AutoRenew String True

是否要自动续费。取值:True|False(默认值)。

IpType String ipv4

IP类型。取值:

  • ipv4(默认值):IPv4。
  • ipv6:IPv6。
  • ipv4Andipv6:IPv4和IPv6。
KeyPairName String TestKeyPairName

密钥对名称。仅支持传单个名称。

UserData String #!/bin/sh echo "Hello World. The time is now $(date -R)!" | tee /root/output.txt

自定义数据,以#!开头。目前,最长支持256字符,最大支持16 KB。传参内容仅支持自定义数据Script,不支持InstanceMetaData渲染。

您可传入自定义数据。数据以Base64的方式编码。调用API发起请求时,不会加密您设置的自定义数据,建议您不要以明文方式传入机密的信息,例如:密码和私钥等。如果需要传入密码和私钥等内容,请您对内容进行加密后,然后以Base64的方式编码后再传入。在实例内部以同样的方式反解密。

详情请参见数据格式

VSwitchId String YourVSwitchId

交换机ID。

PrivateIpAddress String 10.10.10.10

内网地址。

如果传了内网地址,则vSwitch必传。vSwitch需要先创建好,否则会报错。

PaymentType String Subscription

支付方式。目前为固定值Subscription:预付费实例,暂不支持修改。

InstanceName String test:Instance_Name.1-2

实例的名称。命名规则如下所示:

  • 长度为2~128个英文或中文字符。
  • 必须以大小字母或中文开头,不能以http://和https://开头。
  • 可以包含数字、半角冒号(:)、下划线(_)、英文句号(.)或者连字符(-)。

如果没有指定该参数,默认值为实例的InstanceId。

HostName String test-HostName

云服务器的主机名。

通用命名规则:英文句号(.)和短横线(-)不能作为首尾字符,更不能连续使用。

具体实例命名规则如下:

  • Windows实例:字符长度为2~15,不支持英文句号(.),不能全是数字。允许大小写英文字母、数字和短横线(-)。
  • 其他类型实例(Linux等):字符长度为2~64,支持多个英文句号(.),英文句号之间为一段,每段允许大小写英文字母、数字和短横线(-)。
UniqueSuffix Boolean false

是否为HostNameInstanceName添加有序后缀。有序后缀从001开始递增,最大不能超过999

例如:LocalHost001LocalHost002MyInstance001MyInstance002

默认值:false

PublicIpIdentification Boolean true

公网IP是否可以分配给指定实例。取值:

  • true(默认值):可以分配。
  • false:不可以分配。
PasswordInherit Boolean false

是否使用镜像预设的密码。取值:

  • true:使用镜像预设的密码,且Password参数必须为空,同时您需要确保使用的镜像已经设置了密码。
  • false:不使用镜像预设的密码。

返回数据

名称 类型 示例值 描述
RequestId String 4A431388-2D4B-46F4-A96B-D4E6BD0688C1

请求ID。

InstanceIds Array of String [i-7ecpqvkicnchxccozrp****,i-6ecpqvkicnchxccozrp****]

实例ID列表。

Code Integer 0

返回码,成功返回0。

说明 如果您通过SDK方式调用该API会返回Integer类型,通用方式或者HTTP方式调用会返回字符串类型。

示例

请求示例

http(s)://ens.aliyuncs.com/?Action=CreateInstance
&InstanceType=ens.se1.tiny
&EnsRegionId=cn-hangzhou
&Password=yourPassword:1
&Period=12
&ImageId=yourImage ID
&SystemDisk.Size=40
&Quantity=1
&DataDisk.1.Size=50
&InternetChargeType=95BandwidthByMonth
&AutoRenewPeriod=12
&AutoRenew=True
&IpType=ipv4
&KeyPairName=TestKeyPairName
&UserData=#!/bin/sh  echo "Hello World.  The time is now $(date -R)!" | tee /root/output.txt
&VSwitchId=YourVSwitchId
&PrivateIpAddress=10.10.10.10
&PaymentType=Subscription
&InstanceName=test:Instance_Name.1-2
&HostName=test-HostName
&UniqueSuffix=false
&PublicIpIdentification=true
&PasswordInherit=false
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<CreateInstanceResponse>
    <RequestId>4A431388-2D4B-46F4-A96B-D4E6BD0688C1</RequestId>
    <InstanceIds>[i-7ecpqvkicnchxccozrp****,i-6ecpqvkicnchxccozrp****]</InstanceIds>
    <Code>0</Code>
</CreateInstanceResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "4A431388-2D4B-46F4-A96B-D4E6BD0688C1",
  "InstanceIds" : [ "[i-7ecpqvkicnchxccozrp****,i-6ecpqvkicnchxccozrp****]" ],
  "Code" : 0
}

错误码

HttpCode 错误码 错误信息 描述
400 NoPermission Permission denied. 没有足够的权限,请联系云账号管理员授予您相应权限。
400 CallInterface Call Interface Happen Error. 接口调用出错。
400 InvalidPasswordParam.Mismatch The input password should be null when passwordInherit is true. 启用PasswdInherit后,用户密码应该设置为空。

访问错误中心查看更多错误码。