购买算力单元实例
更新时间:2024-09-30
功能介绍
本接口用于购买当前服务部署所需的算力单元实例。
注意事项
- 当库存不足或余额不足时,可能会导致购买失败。
- 调用本文API,需符合以下权限要求:需要具有QianfanServiceOperateAccessPolicy 权限,QianfanServiceOperateAccessPolicy包含全量QianfanServiceReadAccessPolicy权限;权限介绍及分配,请查看角色与权限控制列表、账号创建与权限分配。
SDK调用
使用说明
本文API支持通过Python SDK、Go SDK、Java SDK 和 Node.js SDK调用,调用流程请参考SDK安装及使用流程。
调用示例
import os
from qianfan import resources
# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
resp = resources.Charge.charge_tpm_credit(
service_id='svco-48esssdpa594',
billing={
"paymentTiming":"Prepaid",
"reservation":{
"reservationTimeUnit":"Month",
"reservationLength":5
}
},
replicas=1,
)
print(resp.body)
package main
import (
"context"
"fmt"
"os"
"github.com/baidubce/bce-qianfan-sdk/go/qianfan"
)
func main() {
// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")
ca := qianfan.NewConsoleAction()
res, err := ca.Call(context.TODO(),
// 调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求地址的后缀
"/v2/serviceresources",
// 调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求参数-Query参数的Action
"PurchaseComputeUnit",
// 对应本文HTTP调用-请求说明-请求参数-Body参数,具体使用请查看Body参数说明,根据实际使用选择参数
map[string]interface{}{
"serviceId": "svco-48esssdpa594",
"replicasCount": 5,
"billing": map[string]any{
"paymentTiming": "Prepaid",
"reservation": map[string]any{
"reservationTimeUnit": "Month",
"reservationLength": 5,
},
},
})
if err != nil {
panic(err)
}
fmt.Println(string(res.Body))
}
import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.model.console.ConsoleResponse;
import com.baidubce.qianfan.util.CollUtils;
import com.baidubce.qianfan.util.Json;
import java.util.Map;
public class Dome {
public static void main(String args[]){
// 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");
ConsoleResponse<Map<String, Object>> response = qianfan.console()
// 调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求地址的后缀
.route("/v2/serviceresources")
// 调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求参数-Query参数的Action
.action("PurchaseComputeUnit")
// 需要传入参数的场景,可以自行封装请求类,或者使用Map.of()来构建请求Body
// Java 8可以使用SDK提供的CollUtils.mapOf()来替代Map.of()
// 对应本文HTTP调用-请求说明-请求参数-Body参数,具体使用请查看Body参数说明,根据实际使用选择参数
.body(CollUtils.mapOf(
"serviceId","svco-48esssdpa594",
"billing",CollUtils.mapOf(
"paymentTiming","Prepaid",
"reservation",CollUtils.mapOf(
"reservationTimeUnit","Month",
"reservationLength",5
)
),
"replicasCount",5
))
.execute();
System.out.println(Json.serialize(response));
}
}
import {consoleAction, setEnvVariable} from "@baiducloud/qianfan";
// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
setEnvVariable('QIANFAN_ACCESS_KEY','your_iam_ak');
setEnvVariable('QIANFAN_SECRET_KEY','your_iam_sk');
async function main() {
//base_api_route:调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求地址的后缀
//action:调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求参数-Query参数的Action
//data:对应本文HTTP调用-请求说明-请求参数-Body参数,具体使用请查看Body参数说明,根据实际使用选择参数
const res = await consoleAction({base_api_route: '/v2/serviceresources', action: 'PurchaseComputeUnit', data: {
"serviceId":"svco-48esssdpa594",
"billing":{
"paymentTiming":"Prepaid",
"reservation":{
"reservationTimeUnit":"Month",
"reservationLength":5
}
},
"replicasCount":5
}
});
console.log(res);
}
main();
返回示例
{
"requestId":"1bef3f87-c5b2-4419-936b-50f9884f10d4",
"result":{
"instanceId":"44961088fxxxx9e9379f5daf"
}
}
{
"requestId":"1bef3f87-c5b2-4419-936b-50f9884f10d4",
"result":{
"instanceId":"44961088fxxxx9e9379f5daf"
}
}
{
"requestId":"1bef3f87-c5b2-4419-936b-50f9884f10d4",
"result":{
"instanceId":"44961088fxxxx9e9379f5daf"
}
}
{
requestId:'1bef3f87-c5b2-4419-936b-50f9884f10d4',
result:{
instanceId:'44961088fxxxx9e9379f5daf'
}
}
请求参数
注意:以下为Python SDK参数说明,Go SDK、Java SDK、Node.js SDK参数说明请参考本文HTTP调用-请求说明。
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
service_id | string | 是 | 服务ID |
billing | Billing | 是 | 订单、计费相关参数 |
replicasCount | int | 是 | 购买副本数量 |
Billing说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
paymentTiming | string | 是 | 付费类型,可选值: · Prepaid:表示预付费 · Postpaid:表示后付费 |
reservation | dict | 否 | 保留信息,说明: (1)只有当付费类型为预付费,即paymentTiming值为Prepaid时,该字段必填 (2)付费类型为后付费,无需填写此参数 |
reservation说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
reservationTimeUnit | string | 是 | 时间单位,可选值: · Month:月 |
reservationLength | int | 是 | 购买时长,说明: · 时间单位为月,取值范围 [1-12] |
返回参数
请参考本文HTTP调用-响应说明。
HTTP调用
更新说明
本文API文档,请求地址和Query参数值变更,推荐参考本文内容,更新成最新url、Query参数Action值。如果之前已接入,目前可正常调用,后续可能会下线以下url的服务:
- 请求地址:
https://qianfan.baidubce.com/v2/charge
- Query参数Action值:
PurchaseServiceResource
鉴权说明
调用本文API,使用“基于安全认证AK/SK”进行签名计算鉴权,即使用安全认证中的Access Key ID 和 Secret Access Key进行鉴权,具体鉴权认证机制参考HTTP调用鉴权说明。
请求说明
- 基本信息
请求地址: https://qianfan.baidubce.com/v2/serviceresources
请求方式: POST
- Header参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
Content-Type | string | 是 | 固定值application/json |
x-bce-date | string | 否 | 当前时间,遵循ISO8601规范,格式如2016-04-06T08:23:49Z |
Authorization | string | 是 | 用于验证请求合法性的认证信息,更多内容请参考鉴权认证机制,签名工具可参考IAM签名工具 |
- Query参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
Action | string | 是 | 方法名称,固定值PurchaseComputeUnit |
- Body参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
serviceId | string | 是 | 服务ID |
billing | Billing | 是 | 订单、计费相关参数 |
replicasCount | int | 是 | 购买副本数量 |
Billing说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
paymentTiming | string | 是 | 付费类型,可选值: · Prepaid:表示预付费 · Postpaid:表示后付费 |
reservation | Reservation | 否 | 保留信息,说明: (1)只有当付费类型为预付费,即paymentTiming值为Prepaid时,该字段必填 (2)付费类型为后付费,无需填写此参数 |
Reservation说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
reservationTimeUnit | string | 是 | 时间单位,可选值: · Month: 月 |
reservationLength | int | 是 | 购买时长,说明: · 时间单位为月,取值范围 [1-12] |
autoRenew | boolean | 否 | 是否自动续费,可选值: · true:是 · false:否,默认值为false |
autoRenewTimeUnit | String | 否 | 自动续费周期时间单位,默认值为month,可选值: · month:月 |
autoRenewTime | int | 否 | 自动续费时长,说明: (1)单位:月 (2)默认值为1,取值范围:[1,6] |
响应说明
名称 | 类型 | 描述 |
---|---|---|
requestId | string | 请求ID |
result | object | 请求结果 |
result说明
名称 | 类型 | 描述 |
---|---|---|
instanceId | string | 实例ID |
请求示例
curl --location 'https://qianfan.baidubce.com/v2/serviceresources?Action=PurchaseComputeUnit' \
--header 'Authorization: bce-auth-v1/f0ee7a166b934xxxx2c13/2023-09-19T13:42:13Z/180000/host;x-bce-date/9a8cfb8ee58a8xxxx525543' \
--header 'x-bce-date: 2023-09-19T13:37:10Z' \
--header 'Content-Type: application/json' \
--data '{
"serviceId":"svco-48esssdpa594",
"billing":{
"paymentTiming":"Prepaid",
"reservation":{
"reservationTimeUnit":"Month",
"reservationLength":5
}
},
"replicasCount":5
}'
响应示例
{
"requestId":"1bef3f87-c5b2-4419-936b-50f9884f10d4",
"result":{
"instanceId":"44961088fxxxx9e9379f5daf"
}
}
错误码
若请求错误,服务器将返回的JSON文本包含以下参数:
名称 | 描述 |
---|---|
requestId | 请求ID |
code | 错误码 |
message | 错误描述信息,帮助理解和解决发生的错误 |
例如错误返回:
{
"requestId":"1bef3f87-cxxxx9884f10d4",
"code":"AccessDenied",
"message":"Access denied."
}
更多其他错误码,也可以查看错误码说明。