-
创建IDE实例 检查实例名是否重复。 GET https://{endpoint}/v2/instances/duplicate?display_name=test 接口相关信息请参考查询IDE实例名是否重复。 确定待创建实例的技术栈。 GET https://{endpoint}/v2/stacks/tag 接口相关信息请参考按region获取标签所有技术栈。 查询所有技术栈,根据实际需要选择技术栈及其对应的规格(CPU、存储)。 {
"stack" : {
"tags" : [ "Java", "Maven", "CPP", "Vue", "ServiceComb", "Blockchain", "GO", "Node.js", "DCN", "Quantum", "JavaScript", "Ruby", "Python" ],
"stack_list" : [ {
"id" : 1,
"stack_id" : "all",
"creator" : "ide",
"name" : "All in One",
"description" : "支持Java、Python、JS/TS等多种语言",
"scope" : "general",
"config" : {
"recipe" : {
"content" : "hishell-all-in-one:alpha",
"type" : "dockerimage"
},
"attributes" : {
"specs" : [ "2U4G" ],
"volumes" : [ "5GB", "10GB", "20GB" ]
}
},
"tags" : [ "Java", "Maven", "CPP", "JavaScript", "Vue", "GO", "Node.js", "Ruby", "Python", "ServiceComb" ],
"disable" : false,
"arm_config" : {
"recipe" : {
"content" : "hishell-all-in-one:alpha",
"type" : "dockerimage"
},
"attributes" : {
"specs" : [ "4U8G" ],
"volumes" : [ "5GB", "10GB", "20GB" ]
}
}
} ]
},
"status" : "success"
} stack_id:技术栈id。 config.attributes.specs:技术栈x86架构支持的内存。 config.attributes.volumes:技术栈x86架构支持的存储容量。 arm_config.attributes.specs:技术栈arm架构支持的内存。 arm _config.attributes.volumes:技术栈arm架构支持的存储容量。 查询技术栈费用。 可以参考获取技术栈计费信息,为cpu内存和存储容量价格和。 确定技术栈模板工程。 GET https://{endpoint}/v2/templates?stack_id=all 接口相关信息参考查询技术栈模板工程,根据实际需求选择模板工程。 {
"templates" : [ {
"template_id" : 5,
"name" : "web-java-spring",
"source" : {
"location" : "git@codehub.alpha.devcloud.inhuawei.com:Demo00226/JavaWeb.git",
"type" : "git",
"parameters" : { }
},
"display_name" : "web-java-spring",
"path" : "/web-java-spring",
"description" : "A basic example using Spring servlets. The app returns values entered into a submit form.",
"project_type" : "maven",
"region" : "cn-north-7",
"tags" : [ "maven", "spring", "java", "web" ],
"arch" : "x86,arm"
} ],
"status" : "success"
} 其中,source.location为模板git仓地址。 创建IDE实例。 org_id:组织id(对应华为云账号的domainId)。 POST https://{endpoint}/v2/{org_id}/instances {
"display_name" : "test",
"stack_id" : "java",
"description" : "",
"cpu_memory" : "2U4G",
"pvc_quantity" : "5GB",
"refresh_interval" : 30
} display_name:实例名称。 stack_id:技术栈id。 cpu_memory:内存。 pvc_quantity:存储容量。 refresh_interval:实例生命周期。 响应如下,表示创建成功。 {
"result" : {
"link" : "https://****/cloudide/loading?instanceId=mpdrao",
"arch" : "x86",
"id" : "mpdrao"
},
"status" : "success"
} id:实例id。 link:实例访问地址。 访问接口返回的link地址,可以进入IDE实例。此处没有获取模板工程,如果要下载模板,可以指定模板git地址scmUrl。 https://****/cloudide/loading?scmName=test&scmUrl=git@***/JavaWeb.git&deleteRepoInfo=true&instanceId=mpdrao
-
操作步骤 获取用户Token,用于调用点播接口时进行认证鉴权。 详细信息请参见构造请求。以“华北-北京四”为示例,若您需要调用其它区域的点播接口,请替换成对应区域的
IAM 终端节点。 POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens
Content-Type: application/json
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "username",
"password": "password",
"domain": {
"name": "domainname"
}
}
}
},
"scope": {
"project": {
"name": "projectname"
}
}
}
} 如图2所示,红框中的信息为获取用户Token。 图2 获取用户Token 调用创建媒资:上传方式接口,创建媒资,在请求头中增加“X-Auth-Token”字段,其中“Value”为步骤1获取的。 POST https://vod.cn-north-4.myhuaweicloud.com/v1.0/{project_id}/asset
{
"title": "test",
"description": "test",
"category_id": 87748,
"video_name": "test.mp4",
"video_type": "MP4",
"cover_type": "PNG",
"tags":"mytags,test",
"auto_publish": 0,
"template_group_name":"test",
"subtitles":[
{
"id":1,
"language":"CN",
"type": "SRT",
"md5": "SqcyFjJZoDZaP8oKIY6rgQ==",
"description":"AAAAA" ,
"name":"cc.srt"
}
],
"thumbnail":{
"type":"time",
"cover_position":1
},
"review":{
"interval":10,
"politics":-1,
"terrorism":-1,
"porn":-1
}
} “vod.cn-north-4.myhuaweicloud.com”为点播服务的终端节点,您可以在VOD终端节点中获取。 “category_id”为媒资分类ID。用户需要提前创建完成媒资分类,操作请参考创建媒资分类。 “template_group_name”为转码模板组名称。用户需要提前创建完成转码模板,操作请参考创建自定义转码模板。 调用IAM接口的区域需与调用点播接口的区域一致,如调用“cn-north-4”区域的IAM接口获取用户Token,则该Token仅能用于调用“cn-north-4”区域点播接口的鉴权。 在返回参数中获取“video_upload_url”,“cover_upload_url”和“subtitle_upload_urls”。 {
"asset_id": "3f40a2c7c60454f5f84381e0313ca230",
"video_upload_url": "https://vod-bucket-81.obs.cn-north-4.myhuaweicloud.com:443/474bcff2992f4be5b883a2fb9cec7343/3f40a2c7c60454f5f84381e0313ca230/cdeda86cd1b7b3dd760a3ff28a5ee497.mp4?AWSAccessKeyId=BG923RWHL4HFXOGKCVAL&Expires=1560420274&Signature=9f%2BZcdD6SwjIU5ARHYiP6YY1Lyw%3D",
"cover_upload_url": "https://vod-bucket-81.obs.cn-north-4.myhuaweicloud.com:443/474bcff2992f4be5b883a2fb9cec7343/3f40a2c7c60454f5f84381e0313ca230/cover/Cover0.png?AWSAccessKeyId=BG923RWHL4HFXOGKCVAL&Expires=1560420274&Signature=4Aa88NK%2By%2By1Xo0RvLpOvuaFCoE%3D",
"subtitle_upload_urls": [
"https://vod-bucket-81.obs.cn-north-4.myhuaweicloud.com:443/474bcff2992f4be5b883a2fb9cec7343/3f40a2c7c60454f5f84381e0313ca230/subtitle/1.srt?AWSAccessKeyId=BG923RWHL4HFXOGKCVAL&Expires=1560420274&Signature=l0UclE9yfaVrxkl0kaNnr%2BemG98%3D"
],
"target": {
"bucket": "vod-bucket-81",
"location": "cn-north-4",
"object": "474bcff2992f4be5b883a2fb9cec7343/3f40a2c7c60454f5f84381e0313ca230/cdeda86cd1b7b3dd760a3ff28a5ee497.mp4"
}
} 使用PUT请求分别向“video_upload_url”,“cover_upload_url”和“subtitle_upload_urls”中上传音视频文件、封面图片和字幕文件。 其中,请求头“Content-Type”需要根据上传的文件类型分别设置,如下所示: 视频文件:video/视频格式,如:“video/mp4”。更多视频文件格式对应的请求头填写规则,请参见表1。 音频文件:audio/音频格式,如:“audio/mp3”。更多音频文件格式对应的请求头填写规则,请参见表2。 图片文件:image/图片格式,如:“image/png”。 字幕文件:application/octet-stream。 表1 视频文件请求头填写说明 文件后缀 Content-Type MP4 video/mp4 MOV video/quicktime MXF application/mxf TS video/mp2t MPG video/mpeg FLV video/flv WMV video/x-ms-wmv AVI video/x-msvideo M4V video/m4v F4V application/f4v MPEG video/mpeg M3U8 application/octet-stream _3GP/3GP video/3gpp ASF video/x-ms-asf MKV video/x-matroska WEBM video/webm MPD video/dash 表2 音频文件请求头填写说明 文件后缀 Content-Type MP3 audio/mp3 WMA audio/wma APE audio/ape FLAC audio/flac AAC audio/aac AC3 audio/ac3 MMF audio/mmf AMR audio/amr M4A audio/m4a M4R audio/m4r OGG audio/ogg WAV audio/wav WV audio/wv MP2 audio/mp2 调用接口确认媒资上传接口,完成媒资上传。 POST https://vod.cn-north-4.myhuaweicloud.com/v1.0/{project_id}/asset/status/uploaded
{
"asset_id": "0f4d3f1f32ec353d8866f2d84a036124",
"status":"CREATED"
} 媒资上传成功后,您可以在
视频点播 控制台查看媒资相关详细信息。
-
操作步骤 调用创建工作空间接口,创建一个工作空间,记录接口返回工作空间的ID。 请求示例: POST https://{hostname}/v1/workspaces Body: {
"name": "apieworkspace",
"description": "apie test workspace"
}
响应示例:
{
"id": "e935d0ef-f4eb-4b95-aff1-9d33ae9f57a6",
"name": "fabric",
"description": "fabric",
"create_time": "2023-05-30T12:24:30.401Z",
"create_domain_name": "admin",
"create_user_name": "user",
"metastore_id": "2180518f-42b8-4947-b20b-adfc53981a25",
"access_url": "https://:test.fabric.com/",
"enterprise_project_id": "01049549-82cd-4b2b-9733-ddb94350c125"
} 调用创建端点接口,创建推理端点,记录接口返回的终端节点ID。 请求示例: POST https://{hostname}/v1/workspaces/{workspace_id}/endpoints workspace_id:为步骤1中记录的工作空间ID。 Body: {
"name": "apie_test",
"description": "apie test endpoint",
"type": "inference",
"reserved_resource": {
"mu": {
"spec_code": "mu.llama3.8b",
"min": 0,
"max": 1
}
}
} 响应示例: {
"visibility": "PRIVATE",
"id": "0b5633ba2b904511ad514346f4d23d4b",
"name": "endpoint1",
"type": "inference",
"status": "CREATING",
"description": "description",
"create_time": "2023-05-30T12:24:30.401Z",
"update_time": "2023-05-30T12:24:30.401Z",
"owner": {
"domain_name": "string",
"domain_id": "xxx",
"user_name": "string",
"user_id": "xxx"
}
"reserved_resource": {
"mu": {
"spec_code": "mu.llama3.8b",
"min": 0,
"max": 1
}
}
} 调用创建模型接口,创建一个用户私有的模型,并记录接口返回模型ID。 请求示例: POST https://{hostname}/v1/workspaces/{workspace_id}/models workspace_id:为步骤1中记录的工作空间ID。 Body: {
"name": "LLama3-8b",
"description": "this is a apie test model",
"type": "LLM_MODEL",
"version": {
"name": "v1",
"description": "test description",
"config": {
"llm_model_config": {
"base_model_type": "",
"model_path": ""
}
}
}
} 响应示例: {
"id": "ac8111bf-3601-4905-8ddd-b41d3e636a4e"}
} 调用创建推理服务接口,创建一个推理服务,记录接口返回推理服务的ID。 请求示例: POST https://{hostname}/v1/workspaces/{workspace_id}/services/instances workspace_id:为步骤1中记录的工作空间ID。 Body: {
"source": {
"id": ""
},
"name": "test_serviceInstanceName",
"description": "description",
"endpoint_id": ""} id:为步骤3中接口返回记录的模型ID。 endpoint_id:为步骤2中接口返回记录的推理端点ID。 响应示例: {
"id": "b935d0ef-f4eb-4b95-aff1-9d33ae9f57b6"
} 调用推理请求接口,发起推理请求。 请求示例: POST https://{hostname}/v1/workspaces/{workspace_id}/services/instances/{instance_id}/invocations workspace_id:为步骤1中记录的工作空间ID。 instance_id:为步骤4中记录的推理服务的ID。 Body: {
"messages": [
{
"role": "user",
"content": "hello"
}
]
} 响应示例:推理请求接口为流式返回。 {
"id": "chatcmpl-62dda7304f53451c9477e0",
"object": "chat.completion.chunk",
"created": 1730120529,
"model": "ada1d67d-f2a1-4e77-838f-0d8688d756f4",
"choices": [
{
"index": 0,
"delta": {
"role": "assistant",
"content": "\n\nHello! LLM stands for Large Language Model. It refers to artificial intelligence models, like myself,"
},
"finish_reason": null
}
],
"system_fingerprint": null,
"usage": null
}
-
操作步骤 查询证书列表。 接口相关信息 URI格式:GET /v3/scm/certificates 详情请参见查询证书列表。 请求示例 GET: https://{endpoint}/v3/scm/certificates {endpoint}信息请从地区和终端节点获取。 Body: {
"limit": "2",
"offset": "0"
} 响应示例 {
"certificates" : [ {
"id" : "scs1554192131150",
"name" : "test",
"domain" : "www.zx.com",
"type" : "OV_SSL_CERT",
"brand" : "GEOTRUST",
"expire_time" : "2021-05-27 16:46:25.0",
"domain_type" : "MULTI_DOMAIN",
"validity_period" : 12,
"status" : "ISSUED",
"domain_count" : 2,
"wildcard_count" : 0,
"description" : null
} ],
"total_count" : 1
} 删除证书。 接口相关信息 URI格式:DELETE /v3/scm/certificates/{certificate_id} 详情请参见删除证书。 请求示例 DELETE: https://{endpoint}/v3/scm/certificates/scs1554192131150 {endpoint}信息请从地区和终端节点获取。 Body: {
certificate_id:scs1554192131150
} 响应示例 { } 或 {
"error_code" : "SCM.XXX",
"error_msg" : "XXX"
}
-
操作步骤 创建网卡。 创建网络。 接口相关信息 URI格式:POST /v1/{project_id}/vpcs 详情请参见创建网络。 请求示例 POST https://{Endpoint}/v1/{project_id}/vpcs {endpoint}信息请从地区和终端节点获取。 Body: {
"vpc": {
"name": "vpc",
"description": "test",
"cidr": "192.168.0.0/16"
}
} 响应示例 {
"vpc": {
"id": "99d9d709-8478-4b46-9f3f-2206b1023fd3",
"name": "vpc",
"description": "test",
"cidr": "192.168.0.0/16",
"status": "CREATING",
"routes": []
}
} 记录响应中“vpc”的ID。 创建子网。 接口相关信息 URI格式:POST /v2.0/subnets 详情请参见创建子网。 请求示例 POST https://{endpoint}/v2.0/subnets {endpoint}信息请从地区和终端节点获取。 Body: {
"subnet": {
"name": "testsubnet",
"enable_dhcp": true,
"network_id": "c4a3019d-1ac0-4cfb-a838-2342eb992e6b",
"tenant_id": "74610f3a5ad941998e91f076297ecf27",
"dns_nameservers": [
"8.8.8.8",
"8.8.8.7"
],
"allocation_pools": [
{
"start": "10.0.10.2",
"end": "10.0.10.254"
}
],
"host_routes": [],
"ip_version": 4,
"gateway_ip": "10.0.10.1",
"cidr": "10.0.10.0/24"
}
} 响应示例 {
"subnet": {
"name": "testsubnet",
"cidr": "10.0.10.0/24",
"id": "877b5567-e8c6-4a0d-aabf-0f13da225fe5",
"enable_dhcp": true,
"network_id": "c4a3019d-1ac0-4cfb-a838-2342eb992e6b",
"tenant_id": "74610f3a5ad941998e91f076297ecf27",
"dns_nameservers": [
"8.8.8.8",
"8.8.8.7"
],
"allocation_pools": [
{
"start": "10.0.10.2",
"end": "10.0.10.254"
}
],
"host_routes": [],
"ip_version": 4,
"gateway_ip": "10.0.10.1"
}
} 记录响应中“subnet”的ID。 创建端口。 接口相关信息 URI格式:POST /v2.0/ports 详情请参见创建端口。 请求示例 POST https://{endpoint}/v2.0/ports {endpoint}信息请从地区和终端节点获取。 Body: {
"port": {
"admin_state_up": true,
"fixed_ips": [
{
"subnet_id": "877b5567-e8c6-4a0d-aabf-0f13da225fe5"
}
],
"name": "test",
"network_id": "c4a3019d-1ac0-4cfb-a838-2342eb992e6b",
"tenant_id": "74610f3a5ad941998e91f076297ecf27"
}
} 响应示例 {
"port": {
"id": "7bf1c36f-e7f8-478a-be3d-674b486abbc4",
"name": "test",
"status": "DOWN",
"admin_state_up": true,
"fixed_ips": [
{
"subnet_id": "877b5567-e8c6-4a0d-aabf-0f13da225fe5",
"ip_address": "10.0.10.233"
}
],
"mac_address": "fa:16:3e:db:91:f6",
"network_id": "c4a3019d-1ac0-4cfb-a838-2342eb992e6b",
"tenant_id": "74610f3a5ad941998e91f076297ecf27",
"device_id": "",
"device_owner": "",
"security_groups": [
"93031677-2895-4b83-855a-637e309aa9e6"
],
"extra_dhcp_opts": [],
"allowed_address_pairs": [],
"binding:vnic_type": "normal",
"binding:vif_details": {},
"binding:profile": {}
}
} 记录响应中“port”的ID。 挂载网卡。 接口相关信息 URI格式:POST /v1/{project_id}/cloudservers/{server_id}/nics 详情请参见“批量添加云服务器网卡”。 请求示例 POST https://{endpoint}/v1/74610f3a5ad941998e91f076297ecf27/cloudservers/9f4d9281-95e7-4915-a126-1ee597101e2e/nics {endpoint}信息请从地区和终端节点获取。 Body: {
"nics": [
{
"subnet_id": "877b5567-e8c6-4a0d-aabf-0f13da225fe5"
}
]
} 响应示例 {
"job_id": "ff80808288d41e1b018990260955686a"
} 查询任务执行状态。 接口相关信息 URI格式:GET /v1/{project_id}/jobs/{job_id} 详情请参见查询任务的执行状态。 请求示例 GET https://{endpoint}/v1/74610f3a5ad941998e91f076297ecf27/jobs/ff80808288d41e1b018990260955686a {endpoint}信息请从地区和终端节点获取。 响应示例 {
"job_id": "ff80808288d41e1b018990260955686a",
"job_type": "addNicsForServer",
"begin_time": "2025-02-14T08:43:05.181Z",
"end_time": "2025-02-14T08:43:17.075Z",
"status": "SUC
CES S",
"error_code": null,
"fail_reason": null,
"entities": {
"sub_jobs_total": 1,
"sub_jobs": [
{
"job_id": "ff80808288d41e1b018990260955686a",
"job_type": "addNic",
"begin_time": "2025-02-14T08:43:06.423Z",
"end_time": "2025-02-14T08:43:12.380Z",
"status": "SUCCESS",
"error_code": null,
"fail_reason": null,
"entities": {
"nic_id": "877b5567-e8c6-4a0d-aabf-0f13da225fe5"
}
}
]
}
}
-
查询资源的可用配额 如需查询当前账号的资源配额信息,包括已使用的配额,可以通过调用查询租户配额接口。 GET https://ecs.cn-east-2.myhuaweicloud.com/v1/05041fea8a8025662f4ac00927982f3e/cloudservers/limits 响应信息如下,例如通过maxTotalInstances可以查看云服务器的最大申请数量,通过totalInstancesUsed可以查看当前云服务器使用个数。 {
"absolute": {
"maxServerMeta": 128,
"maxPersonality": 5,
"maxImageMeta": 128,
"maxPersonalitySize": 10240,
"maxSecurityGroupRules": 20,
"maxTotalKeypairs": 1000,
"total
RAM Used": 22528,
"totalInstancesUsed": 4,
"maxSecurityGroups": 10,
"totalFloatingIpsUsed": 0,
"maxTotalCores": 8000,
"totalSecurityGroupsUsed": 1,
"maxTotalFloatingIps": 10,
"maxTotalInstances": 1000,
"totalCoresUsed": 11,
"maxTotalRAMSize": 16384000,
"maxServerGroups": 32,
"maxServerGroupMembers": 16,
"totalServerGroupsUsed": 0,
"maxTotalSpotInstances": 20,
"maxTotalSpotCores": 320,
"maxTotalSpotRAMSize": 655360,
"totalSpotInstancesUsed": 0,
"totalSpotCoresUsed": 0,
"totalSpotRAMUsed": 0,
"maxFaultDomainMembers": 200,
"limit_by_flavor": []
}
}
-
包年/包月资源续费 包年/包月资源即将到期时,可进行包年/包月资源的续订。通过调用续订包年/包月资源接口进行续费。 如下所示,指定资源ID,按月续费,续费1个月,到期后转按需,并自动支付订单。 POST https://bss.myhuaweicloud.com/v2/orders/subscriptions/resources/renew
{
"resource_ids": [
"96308d5efd7841b9a4dac673d84d0e14"
],
"period_type": 2,
"period_num": 1,
"expire_policy": 1,
"is_auto_pay": 1
} 续费成功后会返回一个order_id,即订单ID。 {
"order_ids": [
"
CS 190401192xxxxxx"
]
} 上面请求体中isAutoPay取值为1,表示自动支付,如果不填该字段或取值为0,则需要手动去支付,手动支付可以填写优惠券和折扣券等信息。手动支付需要调用支付包年/包月产品订单支付,以下示例是使用一张优惠券,优惠券类型为代金券的请求示例。 POST https://bss.myhuaweicloud.com/v2/orders/customer-orders/pay
{
"coupon_infos": [
{
"id": "CP2005270256xxxxxx",
"type": 301
}
],
"order_id": "CS190401192xxxxxx"
}
-
查询规格资源是否可购买/资源是否售罄 如需查询某一具体的云服务器规格在某可用区是否资源充足,可以通过调用查询规格详情和规格扩展信息列表查看该规格的详细信息。并通过响应信息中的cond:operation:status和cond:operation:az字段的取值判断在区域和可用区的取值。 例如查询华东上海二可用区一的资源情况,请求URI如下。 GET https://ecs.cn-east-2.myhuaweicloud.com/v1/05041fea8a8025662f4ac00927982f3e/cloudservers/flavors?availability_zone=cn-east-2a 响应信息 {
"id": "c3.3xlarge.2",
"name": "c3.3xlarge.2",
...
"os_extra_specs": {
"cond:spot_block:operation:az": "cn-east-2a(sellout),cn-east-2b(normal),cn-east-2c(normal),cn-east-2d(normal)",
"cond:operation:az": "cn-east-2d(sellout),cn-east-2a(normal),cn-east-2b(normal)"
...
"cond:operation:status": "abandon",
"cond:spot_block:operation:interrupt_policy": "cn-east-2d(immediate),cn-east-2a(immediate),cn-east-2b(immediate),cn-east-2c(immediate)",
"resource_type": "IOoptimizedC3_2"
}
} 响应信息中通过cond:operation:status和cond:operation:az字段的取值判断资源是否可用。 优先查看cond:operation:az的取值,如果某个可用区没有在cond:operation:az参数中配置时默认使用cond:operation:status的取值。 例如本例中,c3.3xlarge.2在华东上海二的可用区一、可用区二正常商用,可用区四售罄,可用区三在在cond:operation:az中无配置信息,则以cond:operation:status的取值为准,即c3.3xlarge.2在华东上海二的可用区三下线。
-
付费方式 创建包年/包月的云服务器时(chargingMode为prePaid),通过extendparam.isAutoPay字段控制订单的支付方式。 取值为true在订单创建完成后自动支付。 取值为false订单需要用户手动支付。手动支付可以填写优惠券和折扣券等信息。 手动支付需要调用支付包年/包月产品订单接口进行支付,以下示例是使用一张优惠券,优惠券类型为代金券的请求示例。 POST https://bss.myhuaweicloud.com/v2/orders/customer-orders/pay
{
"coupon_infos": [
{
"id": "CP2005270256xxxxxx",
"type": 301
}
],
"order_id": "CS190401192xxxxxx"
}
-
创建订单后资源未开通 订单创建后未查询到服务器信息,可能是由于指定了自动支付:请求体中extendparam.isAutoPay取值为false或续费时isAutoPay取值为0。 通常服务器创建后会返回一个order_id,即订单ID。 {
"job_id": "ff808082739334d80173943ec9b42130",
"order_id": "CS2007281506xxxxx",
"serverIds": [
"fe0528f0-5b1c-4c8c-9adf-e5d5047b8c17"
]
} 通过调用查询订单详情接口查看订单的状态 请求示例 GET
https://bss.myhuaweicloud.com/v2/orders/customer-orders/details/CS2007281506xxxxx 响应示例 {
"total_count": 1,
"order_info": {
"order_id": "CS2007281506xxxxx",
"customer_id": "982f05775ec94da390c3f174xxxxxxxx",
"service_type_code": "hws.service.type.ecs",
"source_type": 1,
"status": 6,
……
} 响应示例中"status": 6说明订单状态为待付款。此时需要手动支付该订单 手动支付可以填写优惠券和折扣券等信息。 手动支付需要调用支付包年/包月产品订单支付,以下示例是使用一张优惠券,优惠券类型为代金券的请求示例。 POST https://bss.myhuaweicloud.com/v2/orders/customer-orders/pay
{
"coupon_infos": [
{
"id": "CP2005270256xxxxxx",
"type": 301
}
],
"order_id": "CS2007281506xxxxx"
}
-
查询资源价格 使用查询按需产品价格和查询包年/包月产品价格,根据云服务类型、资源类型、云服务区和资源规格四个条件来查询产品价格。 例如查询华东上海二可用区、通用计算型、Linux操作系统、s6.small.1规格的包月,一个月的价格。 POST https://bss.myhuaweicloud.com/v2/bills/ratings/period-resources/subscribe-rate {
"product_infos": [
{
"id": "1",
"cloud_service_type": "hws.service.type.ec2",
"resource_type": "hws.resource.type.vm",
"resource_spec": "s6.small.1.linux",
"region": "cn-east-2",
"available_zone": "cn-east-2a",
"period_type": 2,
"period_num": 1,
"subscription_num": 1
}
],
"project_id": "05041fea8a8025662f4ac00927982f3e"
} 响应信息如下所示,其中official_website_amount字段的取值即为包年/包月产品价格。 {
"official_website_rating_result": {
"official_website_amount": 32.2,
"measure_id": 1,
-"product_rating_results": [-{
"id": "1",
"product_id": "00301-233164-0--0",
"official_website_amount": 32.2,
"measure_id": 1
}]
},
"optional_discount_rating_results": [],
"currency": "CNY"
}
-
查询可用的公共镜像 使用
镜像服务 的查询镜像列表的API可以根据不同条件查询镜像列表信息,在GET请求后通过‘?’和‘&’添加不同的查询条件组合。 如需查询公共镜像列表。 GET /v2/cloudimages?__imagetype=gold&visibility=public&protected=true 请注意调用镜像服务接口注意替换镜像服务的Endpoint信息。 查询镜像列表时,建议使用分页查询才能返回全部的镜像列表。通过指定marker和limit实现镜像列表的分页查询。 marker表示从哪个镜像开始查询,取值为镜像ID。limit表示查询几条镜像记录,取值为整数,默认取值为500。 GET /v2/cloudimages?__imagetype=gold&visibility=public&protected=true&marker=af92bb51-ec9d-4b02-912f-da0b3f0f7635&limit=5 如需查询其他的镜像类型 公共镜像列表查询 GET /v2/cloudimages?__imagetype=gold&visibility=public&protected=true 私有镜像列表查询 GET /v2/cloudimages?owner={project_id} 可以使用的共享镜像列表 GET /v2/cloudimages?member_status=accepted&visibility=shared&__imagetype=shared 被拒绝的共享镜像列表 GET /v2/cloudimages?member_status=rejected&visibility=shared&__imagetype=shared 未接受的共享镜像列表 GET /v2/cloudimages?member_status=pending&visibility=shared&__imagetype=shared 裸金属服务器某规格支持的公共镜像列表 GET /v2/cloudimages?__imagetype=gold&__support_xxx=true&virtual_env_type=Ironic 如果未指定镜像类型,那么可以通过响应信息中的__imagetype字段判断镜像类型。
-
操作场景 本节内容介绍了使用
API购买 ECS过程中的一些高频场景。 表1 使用API创建ECS的高频场景 场景 说明 购买包年/包月ECS 为您介绍购买包年/包月资源的参数设置。 删除包年/包月ECS/退订包年/包月ECS 包年/包月资源需要通过退订的方式才可以被删除。 查询可用的公共镜像 购买ECS时候前查询公共镜像信息可以通过在GET请求后通过‘?’和‘&’添加不同的查询条件组合。 包年/包月资源续费 包年/包月资源即将到期时,可进行包年/包月资源的续订。指定资源ID,续费方式,续费时间,订单支付方式。 创建订单后资源未开通 创建完成后查不到资源信息可能是订单尚未支付,查看订单的状态并完成订单支付。 查询规格资源是否可购买/资源是否售罄 查询某一具体的云服务器规格在某可用区是否资源充足,通过响应信息中的cond:operation:status和cond:operation:az字段的取值判断在区域和可用区的取值。 付费方式 创建包年/包月的云服务器时(chargingMode为prePaid),通过extendparam.isAutoPay字段控制订单的支付方式。 查询资源的可用配额 调用查询租户配额接口,通过maxTotalInstances可以查看云服务器的最大申请数量,通过totalInstancesUsed可以查看当前云服务器使用个数。 查询资源价格 使用查询按需产品价格和查询包年/包月产品价格,根据云服务类型、资源类型、云服务区和资源规格四个条件来查询产品价格。
-
购买包年/包月ECS 购买包年/包月ECS可以使用创建弹性云服务接口,相对于创建按需的ECS,只需要在请求body中指定extendparam.chargingMode参数值为“prePaid”,即包年包月,指定订购的周期等。extendparam的详细参数解释请参见创建云服务器的extendparam字段数据结构说明。 如下所示,在cn-north-1区域购买一台包年/包月ECS,时长为一个月,且下单后自动支付,自动续订。 {
"server": {
"name": "newserver",
"availability_zone": "cn-north-1a",
"flavorRef": "s3.small.1",
"imageRef": "8da46d6d-6079-4e31-ad6d-a7167efff892",
"root_volume": {
"volumetype": "SATA"
},
"vpcid": "7e1a7e70-3f3e-4581-955e-26a4848d8f31",
"nics": [
{
"subnet_id": "04548cde-4067-48b0-9323-5c7b67ac13fc"
}
],
"data_volumes": [
{
"volumetype": "SSD",
"size": 50
}
],
"publicip": {
"eip": {
"iptype": "5_bgp",
"bandwidth": {
"size": 10,
"sharetype": "PER"
}
}
},
"extendparam": {
"chargingMode": "prePaid",
"periodType": "month",
"periodNum": 1,
"isAutoRenew": "true",
"isAutoPay": "true",
"regionID": "cn-north-1"
}
}
} 包年/包月ECS创建后会返回一个order_id,即订单ID。 {
"job_id": "ff808082739334d80173943ec9b42130",
"order_id": "CS2007281506xxxxx",
"serverIds": [
"fe0528f0-5b1c-4c8c-9adf-e5d5047b8c17"
]
} 上面请求体中extendparam.isAutoPay取值为true,表示自动支付,如果不填该字段或取值为false,则需要手动去支付,手动支付可以填写优惠券和折扣券等信息。手动支付需要调用支付包年/包月产品订单支付,示例如下。 POST https://bss.myhuaweicloud.com/v2/orders/customer-orders/pay
{
"order_id": "CS20052715001E4CR"
}
-
删除包年/包月ECS/退订包年/包月ECS 包年/包月ECS无法直接调用ECS接口删除,需要调用退订包年/包月资源接口进行退订。 POST https://bss.myhuaweicloud.com/v2/orders/subscriptions/resources/unsubscribe
{
"resource_ids": [
"21e09f37c5c9420c8746ad5c71fb3aab"
],
"unsubscribe_type": 1
} 其中resource_ids表示资源ID,对退订ECS来说,就是购买包年/包月ECS时返回的serverIds。