【API进阶之路前浪的绝地反击与自我证明

网友投稿 542 2022-05-29

上周,被我司实习生摆了一道,在公司新项目上,实习生推荐的弹性云服务器取代了我的虚拟机方案(了解前情请戳:因为不会创建云服务器,我被实习生摆了一道),最终公司的新项目还是部署在了华为云弹性云服务器上。

难道作为前浪的我们就要这么被社会所抛弃了么?伸手缕了缕所剩不多的头发,心里暗暗地想:“伙计们,我要和你们一样坚强,不能被生活打败!”

事实证明,实习生虽然接受新鲜事物快,但在专业技术上还是略显稚嫩。

确定采用华为云弹性云服务器之后,项目也进入了开发环节,慢慢地我发现,小实习生对于如何查询服务器的各种状态并不是很熟练,经常听到他自己在那嘀嘀咕咕:

●云服务器上一次更新时间是怎么查来着?

●云服务器的磁盘要怎么配置来着?

●云服务器状态怎么查来着?

......

后浪们,姜还是老的辣呀,刚好这些问题在最近的学习中都了解过,于是我迅速写了一份文档:《3步搞定弹性云服务器查询》,写完之后发到了公司研发群里,领导给了我一个大大的赞,还专门@实习生“要多向前辈学习”。

【API进阶之路】前浪的绝地反击与自我证明

《3步搞定弹性云服务器查询》内容如下:

(内容来源)

步骤1:指定limit查询云服务器详情列表

1、接口相关信息

URI格式: GET /v2.1/{project_id}/servers/detail

2、 请求示例

GET: https://{endpoint}/v2.1/743b4c0428d945316666666666666666/servers/detail?limit=100

limit值可根据云服务器数据调整。

3、 响应示例

{     "servers": [         ......         {             "tenant_id": "743b4c0428d945316666666666666666",             "metadata": {             },             "addresses": {                 "140fd038-c4ae-4c32-ac07-34b525eb6b95": [                     {                         "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:e9:91:50",                         "addr": "192.168.0.178",                         "OS-EXT-IPS:type": "fixed",                         "version": 4                     }                 ]             },             "OS-EXT-STS:task_state": null,             "OS-DCF:diskConfig": "MANUAL",             "OS-EXT-AZ:availability_zone": "xxx",             "links": [                 {                     "rel": "self",                     "href": "https://ecs.xxx/v2.1/743b4c0428d945316666666666666666/servers/f215afe8-b0c2-41cc-9191-585638166812"                 },                 {                     "rel": "bookmark",                     "href": "https://ecs.xxx/743b4c0428d945316666666666666666/servers/f215afe8-b0c2-41cc-9191-585638166812"                 }             ],             "OS-EXT-STS:power_state": 4,             "id": "f215afe8-b0c2-41cc-9191-585638166812",             "os-extended-volumes:volumes_attached": [                 {                     "id": "546cf622-b9e5-4784-b659-6881e711f283"                 }             ],             "OS-EXT-SRV-ATTR:host": "pod01.xxx",             "accessIPv4": "",             "image": {                 "links": [                     {                         "rel": "bookmark",                         "href": "https://ecs.xxx/743b4c0428d945316666666666666666/images/5c13381a-4a54-4ea5-a3b5-e7f7069f19a4"                     }                 ],                 "id": "5c13381a-4a54-4ea5-a3b5-e7f7069f19a4"             },             "OS-SRV-USG:terminated_at": null,             "accessIPv6": "",             "created": "2019-08-09T02:35:04Z",             "hostId": "31397656d6b318d01431f60c481d8425dc58eb421d237a385ceb80ee",             "OS-EXT-SRV-ATTR:hypervisor_hostname": "nova022@36",             "flavor": {                 "links": [                     {                         "rel": "bookmark",                         "href": "https://ecs.xxx/743b4c0428d945316666666666666666/flavors/s3.large.4"                     }                 ],                 "id": "s3.large.4"             },             "key_name": null,             "security_groups": [                 {                     "name": "sg-1e22"                 }             ],             "config_drive": "",             "OS-EXT-STS:vm_state": "stopped",             "user_id": "a8c20feabb5245e0bae4ef27618f932b",             "OS-EXT-SRV-ATTR:instance_name": "instance-004bf55f",             "name": "ecs-f090",             "OS-SRV-USG:launched_at": "2019-08-09T02:35:23.000000",             "updated": "2019-08-13T03:12:39Z",             "status": "SHUTOFF"         }      ],     "servers_links": [         {             "rel": "next",             "href": "https://ecs.xxx/v2.1/743b4c0428d945316666666666666666/servers/detail?limit=100&marker=f215afe8-b0c2-41cc-9191-585638166812"         }     ] }

步骤2:指定limit与marker查询云服务器详情列表

1、接口相关信息

URI格式: GET /v2.1/{project_id}/servers/detail

接口与 步骤1 保持一致。

2、请求示例

GET: https://{endpoint}/v2.1/743b4c0428d945316666666666666666/servers/detail?limit=100&marker=f215afe8-b0c2-41cc-9191-585638166812

接口返回了下一页的接口URI,参考返回body体中的 servers_links 中的href字段,如果不存在该字段,表示已经不存在下一页。

3、响应示例

{     "servers": [         .....         {             "tenant_id": "743b4c0428d945316666666666666666",             "metadata": {             },             "addresses": {                 "140fd038-c4ae-4c32-ac07-34b525eb6b95": [                     {                         "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:a5:2b:f8",                         "addr": "192.168.0.169",                         "OS-EXT-IPS:type": "fixed",                         "version": 4                     }                 ]             },             "OS-EXT-STS:task_state": null,             "OS-DCF:diskConfig": "MANUAL",             "OS-EXT-AZ:availability_zone": "xxxc",             "links": [                 {                     "rel": "self",                     "href": "https://xxx/v2.1/743b4c0428d945316666666666666666/servers/62348919-0188-43ec-aae6-82c1e96c49eb"                 },                 {                     "rel": "bookmark",                     "href": "https://ecs.xxx/743b4c0428d945316666666666666666/servers/62348919-0188-43ec-aae6-82c1e96c49eb"                 }             ],             "OS-EXT-STS:power_state": 4,             "id": "62348919-0188-43ec-aae6-82c1e96c49eb",             "os-extended-volumes:volumes_attached": [                 {                     "id": "f0bb068a-61c1-4dc8-8455-09857773c3ff"                 }             ],             "OS-EXT-SRV-ATTR:host": "pod01.xxx",             "accessIPv4": "",             "image": {                 "links": [                     {                         "rel": "bookmark",                         "href": "https://ecs.xxx/743b4c0428d945316666666666666666/images/3a64bd37-955e-40cd-ab9e-129db56bc05d"                     }                 ],                 "id": "3a64bd37-955e-40cd-ab9e-129db56bc05d"             },             "OS-SRV-USG:terminated_at": null,             "accessIPv6": "",             "created": "2019-07-27T03:06:48Z",             "hostId": "31397656d6b318d01431f60c481d8425dc58eb421d237a385ceb80ee",             "OS-EXT-SRV-ATTR:hypervisor_hostname": "nova022@36",             "flavor": {                 "links": [                     {                         "rel": "bookmark",                         "href": "https://ecs.xxx/743b4c0428d945316666666666666666/flavors/s3.medium.4"                     }                 ],                 "id": "s3.medium.4"             },             "key_name": null,             "security_groups": [                 {                     "name": "sg-1e22"                 }             ],             "config_drive": "",             "OS-EXT-STS:vm_state": "stopped",             "user_id": "f7e10ccf7abc4757b483895c3e06964a",             "OS-EXT-SRV-ATTR:instance_name": "instance-004a0eea",             "name": "test-dx",             "OS-SRV-USG:launched_at": "2019-07-27T03:07:05.000000",             "updated": "2019-08-13T03:12:38Z",             "status": "SHUTOFF"         }     ],     "servers_links": [         {             "rel": "next",             "href": "https://ecs.xxx/v2.1/743b4c0428d945316666666666666666/servers/detail?limit=100&marker=62348919-0188-43ec-aae6-82c1e96c49eb"         }     ] }

步骤3:汇总查询结果

参考1持续调用,如果查询的云服务器列表为空,或者返回的body体中不存在servers_links 字段,表明所有云服务器查询完成。

汇总所有查询到的云服务器即当前查询条件下的所有云服务器。

其实呀,我也是刚刚开始学习云服务器的相关知识,刚好在华为云的官网看到了一篇关于查询弹性云服务器的文档。技术原理都是相通的,做研发10年,积累的经验和技能是我们的优势,但想要不被后浪所取代,仍然要保持学习的步伐,而华为云官网上的很多文档,就是我们了解和学习最新技术应用方式的一个很好的渠道。

目前API Explorer平台已开放EI企业智能、计算、应用服务、网络、软件开发平台、视频等70+云服务,共上线2000+个API、6000+个错误码。在前期试运行期间,华为云API Explorer平台上的API接口也已被多家企业成功接入。

点击查看详情:《华为云一站式API解决方案平台API Explorer上线》

据悉,华为云API Explorer平台在未来几个月会实现更多功能,比如支持SDK示例代码、CLI等特性,同时也会开放更多的云服务API接口,连接更多开发者实现创新、拓宽创新边界。

弹性云服务器 API

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:[JavaSE] 运行原理
下一篇:jquery入门与实践案例教程
相关文章