本接口用于修改一臺或者多臺ECS實例的計費方式。您可以通過此接口實現按量付費實例和包年包月實例之間的相互轉換,同時支持您將實例掛載的所有按量付費云盤轉換為包年包月云盤。
接口說明
請確保在使用該接口前,您已充分了解云服務器 ECS的計費方式和產品定價。
調用該接口時,您需要注意:
- 目標實例的狀態必須為運行中(
Running
)或者已停止(Stopped
),并且無欠費的情況下才能修改計費方式。 - 更換計費方式后,默認自動扣費。您需要確保賬戶余額充足,否則會生成異常訂單,此時只能作廢訂單。如果您的賬戶余額不足,可以將參數
AutoPay
置為false
,此時會生成正常的未支付訂單,您可以登錄 ECS 管理控制臺支付。 - 包年包月轉按量付費:
-
是否支持包年包月轉按量付費功能,是根據您的云服務器使用情況而定的。
-
包年包月實例轉按量實例的時候,新計費方式將覆蓋實例的整個生命周期。您會收到修改前后的實例計費的價格差退款,退還到您的原付款渠道中,已使用的代金券將不退回。更多信息,請參見退款規則。
-
退款規則:您在一個月內能自由操作的退款額度有限且不累計,消耗完退款額度后,只能等待次月轉換計費方式。一次轉換計費消耗的退款額度公式為vCPU 數 *(退款天數*24±浮動小時數)。
-
- 按量付費轉包年包月:
- 支持將實例掛載的所有按量付費數據盤同時轉換為包年包月數據盤。
- 如果按量付費實例已經設置了釋放時間,則不能調用該接口。
調試
您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
授權信息
下表是API對應的授權信息,可以在RAM權限策略語句的Action
元素中使用,用來給RAM用戶或RAM角色授予調用此API的權限。具體說明如下:
- 操作:是指具體的權限點。
- 訪問級別:是指每個操作的訪問級別,取值為寫入(Write)、讀取(Read)或列出(List)。
- 資源類型:是指操作中支持授權的資源類型。具體說明如下:
- 對于必選的資源類型,用背景高亮的方式表示。
- 對于不支持資源級授權的操作,用
全部資源
表示。
- 條件關鍵字:是指云產品自身定義的條件關鍵字。
- 關聯操作:是指成功執行操作所需要的其他權限。操作者必須同時具備關聯操作的權限,操作才能成功。
操作 | 訪問級別 | 資源類型 | 條件關鍵字 | 關聯操作 |
---|---|---|---|---|
ecs:ModifyInstanceChargeType | update | *Instance acs:ecs:{#regionId}:{#accountId}:instance/{#instanceId} |
| 無 |
請求參數
名稱 | 類型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
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 |
返回參數
示例
正常返回示例
JSON
格式
{
"OrderId": "20413515388****",
"RequestId": "B61C08E5-403A-46A2-96C1-F7B1216DB10C",
"FeeOfInstances": {
"FeeOfInstance": [
{
"InstanceId": "i-bp67acfmxazb4p****",
"Currency": "CNY",
"Fee": "0"
}
]
}
}
錯誤碼
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 參數無效。 |
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 | InvalidInstance.UnpaidOrder | The specified instance has unpaid order. | 指定的實例有未支付的訂單,請您先支付再進行操作。 |
400 | InvalidInternetChargeType.ValueNotSupported | %s | 暫不支持指定的網絡計費方式,請確認相關參數是否正確。 |
400 | ReleaseTimeHaveBeenSet | The specified instance has been set released time. | 指定的實例已設置釋放時間。 |
400 | Throttling | Request was denied due to request throttling, please try again after 5 minutes. | 您當前的請求被流控,請5分鐘后重試。 |
400 | Throttling | %s | 請求被流控。 |
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. | - |
400 | NoPermission.Refund | The operation requires refund permission. Please apply for permission from your main account. | - |
400 | QuotaExceeded.InternetBandwidth | %s. | 您當前賬號下,按量付費ECS實例的按固定帶寬計費公網帶寬超過了總帶寬配額限制。 |
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 | 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 | QuotaExceed.ElasticQuota | The number of the specified ECS instances has exceeded the quota of the specified instance type. | 您在當前地域選擇的實例規格所要創建的臺數超出系統限額,您可以選擇其他地域、實例規格或減少臺數重新購買,也可以前往ECS管理控制臺或配額中心申請提高限額。 |
403 | QuotaExceed.ElasticQuota | The number of vCPUs assigned to the ECS instances has exceeded the quota in the zone. | 您的全實例規格vCPU配額超出系統限額,您可以前往ECS管理控制臺或配額中心申請提高限額。 |
403 | QuotaExceed.ElasticQuota | The number of the specified ECS instances has exceeded the quota of the specified instance type, or the number of vCPUs assigned to the ECS instances has exceeded the quota in the zone. | 您在當前地域選擇的實例規格所要創建的臺數超出系統限額,或者全實例規格vCPU配額超出系統限額,您可以前往ECS管理控制臺或配額中心申請提高限額。 |
403 | PeriodNotSupported.InstanceOnManagedPrivateSpace | The instance on ManagedPrivateSpace is not supported to modify chargeType. | - |
403 | UnsupportedIspChargeType | %s | - |
404 | InvalidInstanceId.NotFound | The specified instanceId does not exist. | 指定的實例ID未找到。 |
500 | InternalError | The request processing has failed due to some unknown error, exception or failure. | 內部錯誤,請重試。 |
500 | InternalError | The request processing has failed due to some unknown error. | 內部錯誤,請重試。 |
500 | InvalidInstanceType.ValueUnauthorized | The specified InstanceType is not authorized. | 指定的實例規格未授權使用。 |
訪問錯誤中心查看更多錯誤碼。
變更歷史
變更時間 | 變更內容概要 | 操作 |
---|---|---|
2024-09-27 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |
2023-07-21 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |