本接口用于修改ECS实例的计费方式,支持批量修改。
接口说明
使用须知
请确保目标实例的状态为运行中(
Running)或者已停止(Stopped),并且账号无欠费。更换计费方式后,默认自动扣费。请确保账户余额充足,否则会生成异常订单,此时只能作废订单。如果您的账户余额不足,可以将参数
AutoPay置为false,此时会生成正常的未支付订单,您可以登录 ECS 管理控制台支付。
注意事项
包年包月转按量付费:
包年包月实例转按量实例的时候,新计费方式将覆盖实例的整个生命周期。您会收到修改前后的实例计费的价格差退款,退还到您的原付款渠道中,已使用的代金券将不退回。
-
退款规则:您在一个月内能自由操作的退款额度有限且不累计,消耗完退款额度后,只能等待次月转换计费方式。一次转换计费消耗的退款额度公式为vCPU 数 *(退款天数*24±浮动小时数)。更多信息,请参见包年包月转按量付费。
- 按量付费转包年包月:
支持将实例挂载的所有按量付费数据盘同时转换为包年包月数据盘。
如果按量付费实例已经设置了释放时间,则不能调用该接口。更多信息,请参见包年包月转按量付费。
若实例处于节省停机模式需先启动实例。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
调试
授权信息
|
操作 |
访问级别 |
资源类型 |
条件关键字 |
关联操作 |
|
ecs:ModifyInstanceChargeType |
update |
*Instance
|
无 | 无 |
请求参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
| InstanceIds |
string |
是 |
实例 ID。取值可以由多台实例 ID 组成一个 JSON 数组,最多支持 20 个 ID,ID 之间用半角逗号(,)隔开。 |
["i-bp67acfmxazb4p****","i-bp67acfmxazb4d****"] |
| RegionId |
string |
是 |
实例所属的地域 ID。您可以调用 DescribeRegions 查看最新的阿里云地域列表。 |
cn-hangzhou |
| Period |
integer |
否 |
包年包月续费时长。如果 ECS 实例的宿主机为专有宿主机 DDH,则取值范围不能超过专有宿主机的订阅时长。取值范围:
|
1 |
| PeriodUnit |
string |
否 |
续费时长的时间单位,即参数
默认值:Month。 |
Month |
| IncludeDataDisks |
boolean |
否 |
是否将实例挂载的所有按量付费数据盘一起转换为包年包月数据盘。
默认值:false。 |
false |
| DryRun |
boolean |
否 |
是否只预检此次请求。取值范围:
默认值:false。 |
false |
| AutoPay |
boolean |
否 |
是否自动支付。取值范围:
默认值:true。 说明
如果您的支付方式余额不足,可以将参数 AutoPay 设置为 false,此时会生成未支付订单,您可以登录 ECS 管理控制台自行支付。 |
false |
| InstanceChargeType |
string |
否 |
实例需要修改的目标计费方式。取值范围:
默认值:PrePaid。 |
PrePaid |
| ClientToken |
string |
否 |
保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken 只支持 ASCII 字符,且不能超过 64 个字符。更多信息,请参见如何保证幂等性。 |
123e4567-e89b-12d3-a456-426655440000 |
| IsDetailFee |
boolean |
否 |
包年包月转换为按量计费时,是否返回订单费用详情。取值范围:
默认值:false。 |
false |
返回参数
|
名称 |
类型 |
描述 |
示例值 |
|
object |
|||
| FeeOfInstances |
object |
||
| FeeOfInstance |
array<object> |
订单费用详情。 |
|
|
object |
|||
| Currency |
string |
账单费用货币单位。 中国站:CNY。 国际站:USD。 |
CNY |
| Fee |
string |
费用数值。 |
0 |
| InstanceId |
string |
实例 ID。 |
i-bp67acfmxazb4p**** |
| OrderId |
string |
订单 ID。仅在付费方式修改为预付费时返回。 |
20413515388**** |
| RequestId |
string |
请求 ID。 |
B61C08E5-403A-46A2-96C1-F7B1216DB10C |
示例
正常返回示例
JSON格式
{
"FeeOfInstances": {
"FeeOfInstance": [
{
"Currency": "CNY",
"Fee": "0",
"InstanceId": "i-bp67acfmxazb4p****"
}
]
},
"OrderId": "20413515388****",
"RequestId": "B61C08E5-403A-46A2-96C1-F7B1216DB10C"
}
错误码
|
HTTP status code |
错误码 |
错误信息 |
描述 |
|---|---|---|---|
| 400 | InvalidInstance.UnpaidOrder | %s | |
| 400 | Throttling | Request was denied due to request throttling, try again later. | 请求因资源或账号维度过于频繁,请稍后重试。 |
| 400 | InstanceHasProcessingConvertOrder | %s | |
| 400 | InvalidParameter.InstanceIds | The specified InstanceIds are invalid. | 指定的实例无效。 |
| 400 | InvalidParameter | %s | 无效的参数。 |
| 400 | InvalidStatus.ValueNotSupported | %s | 该资源当前的状态不支持此操作。 |
| 400 | InvalidInstanceChargeType.ValueNotSupported | %s | 暂不支持此付款类型,请核对相关信息后重试。 |
| 400 | InvalidSpotStrategy | The specified spotStrategy is not valid. | 指定的竞价策略参数SpotStrategy不支持此实例,或此实例的竞价策略属性(Spot实例)不支持此操作。 |
| 400 | ExpiredInstance | The specified instance has expired. | 指定的实例已过期。 |
| 400 | InstancesIdQuotaExceed | The maximum number of Instances is exceeded. | |
| 400 | InvalidClientToken.ValueNotSupported | The ClientToken provided is invalid. | 指定的 ClientToken 不合法。 |
| 400 | InvalidInternetChargeType.ValueNotSupported | %s | 暂不支持指定的网络计费方式,请确认相关参数是否正确。 |
| 400 | ReleaseTimeHaveBeenSet | The specified instance has been set released time. | 指定的实例已设置释放时间。 |
| 400 | QuotaExceed.AfterpayInstance | The maximum number of Pay-As-You-Go instances is exceeded: %s. | |
| 400 | InvalidParameter.Bandwidth | %s | 指定的带宽无效,请检查参数是否正确。 |
| 400 | QuotaExceed.RufundVcpu | The maximum number of refund vcpu is exceeded: %s. | |
| 400 | InvalidPeriod.UnitMismatch | The specified Period must be correlated with the PeriodUnit. | 指定的时长必须与 PeriodUnit 关联。 |
| 400 | InvalidImageType.NotSupported | %s | 指定的镜像类型无效,请查询本地域是否支持此镜像类型。 |
| 400 | InvalidPeriod.ExceededDedicatedHost | Instance expired date can't exceed dedicated host expired date. | |
| 400 | InvalidMarketImageChargeType.NotSupport | The specified chargeType of marketImage is unsupported. | 暂不支持该市场镜像的付费类型。 |
| 400 | InvalidSystemDiskCategory.ValueNotSupported | %s | 当前操作不支持此系统磁盘类型。 |
| 400 | InvalidAccountStatus.PayAmountLimitExceeded | Your account is being restricted, due to no default payment method is set or you has not being authorized. | |
| 400 | InvalidInstance.NotFoundSystemDisk | The specified instance has no system disk. | 指定的实例没有挂载系统盘。请确保指定的实例已挂载了系统盘。您可以调用 DescribeInstances 查询指定实例的信息。 |
| 400 | AccountForbidden.ProductCreationLimited | The commodity must be officially operated by Aliyun and in pay-as-you-go billing method. | 集团上云客户只能购买按量付费的 ECS,且不能购买第三方的商品比如由镜像市场提供的镜像。请检查参数,传入符合条件的参数重试。 |
| 400 | Invalid.PrivatePoolOptions.MatchCriteria | Target mode does not support this operation. | Target模式不支持本次操作。 |
| 400 | InvalidPeriod | The specified period is not valid. | 指定的时段不合法。 |
| 400 | DISK_IN_DEDICATED_BLOCK_STORAGE_CLUSTER | The disk in dedicated block storage cluster is not allowed to do this operation. | |
| 400 | NoPermission.Price | The operation requires price permission. Please either apply for permission from your main account, or set the parameter AutoPay as true. | 该操作需要价格权限。请向您的主账户申请权限,或将参数AutoPay设置为true进行自动支付。 |
| 400 | NoPermission.Refund | The operation requires refund permission. Please apply for permission from your main account. | 该账号无权限操作退款,主账号需要授权退款相关权限。 |
| 400 | QuotaExceeded.InternetBandwidth | %s. | 您当前账号下,按量付费ECS实例的按固定带宽计费公网带宽超过了总带宽配额限制。 |
| 400 | DiskExpiredOrInArrears | Your account has an overdue payment for the specified instance. | 指定的实例已欠费。 |
| 400 | LastTokenProcessing | The last token request is processing | 正在处理上一条令牌请求,请您稍后再试。 |
| 500 | InternalError | The request processing has failed due to some unknown error, exception or failure. | 内部错误,请重试。 |
| 500 | InvalidInstanceType.ValueUnauthorized | The specified InstanceType is not authorized. | |
| 500 | InvalidOperation.RefundFailed | Failed to refund. Please try again or submit a support ticket. | 退款失败 |
| 403 | InvalidInstance.TempBandwidthUpgrade | Cannot switch to Pay-As-You-Go during the period of temporary bandwidth upgrade. | 实例在临时带宽升级期间不能转换为按量付费。 |
| 403 | InvalidInstanceType.ValueNotSupported | The specified InstanceType does not exist or beyond the permitted range. | |
| 403 | InstanceType.Offline | %s | 实例规格因停售、供货不足等原因,不支持该操作。 |
| 403 | InvalidAccountStatus.NotEnoughBalance | Your account does not have enough balance. | |
| 403 | Account.Arrearage | Your account has an outstanding payment. | |
| 403 | InvalidParameter.NotMatch | %s | 您输入的参数无效,请检查参数之间是否冲突。 |
| 403 | InvalidAction | %s | |
| 403 | QuotaExceed.PostPaidDisk | Living postPaid disks quota exceeded. | 按量付费磁盘数量已超出允许数量。 |
| 403 | ImageNotSupportInstanceType | The specified instanceType is not supported by instance with marketplace image. | 指定的市场镜像不支持该实例规格。 |
| 403 | InvalidInstanceType.PhasedOut | This instanceType is no longer offered. | 您指定的实例规格已下线不再出售。 |
| 403 | InvalidPeriod.ExceededDedicatedHost | Instance expired date can't exceed dedicated host expired date. | |
| 403 | RealNameAuthenticationError | Your account has not passed the real-name authentication yet. | 您的阿里云账号尚未通过实名认证,请先实名认证后再操作。 |
| 403 | InvalidOperation.NotSupport | Instance on dedicated host not support modify charge type. | |
| 403 | QuotaExceed.ElasticQuota | No additional quota is available for the specified ECS instance type. | 您在当前地域选择的实例规格所要创建的台数超出系统限额,您可以选择其他地域、实例规格或减少台数重新购买,也可以前往ECS管理控制台或配额中心申请提高限额。 |
| 403 | PeriodNotSupported.InstanceOnManagedPrivateSpace | The instance on ManagedPrivateSpace is not supported to modify chargeType. | |
| 403 | UnsupportedIspChargeType | %s | 付费类型不支持此账号的服务提供商(ISP)。 |
| 403 | InvalidOperation.StoppedModeUnsupported | The specified instance is StopCharging. | 无法操作处于节省停机模式的实例 |
| 404 | InvalidInstanceId.NotFound | The specified instanceId does not exist. |
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。