【API進階之路】前浪的絕地反擊與自我證明
上周,被我司實習生擺了一道,在公司新項目上,實習生推薦的彈性云服務器取代了我的虛擬機方案(了解前情請戳:因為不會創建云服務器,我被實習生擺了一道),最終公司的新項目還是部署在了華為云彈性云服務器上。
難道作為前浪的我們就要這么被社會所拋棄了么?伸手縷了縷所剩不多的頭發,心里暗暗地想:“伙計們,我要和你們一樣堅強,不能被生活打敗!”
事實證明,實習生雖然接受新鮮事物快,但在專業技術上還是略顯稚嫩。
確定采用華為云彈性云服務器之后,項目也進入了開發環節,慢慢地我發現,小實習生對于如何查詢服務器的各種狀態并不是很熟練,經常聽到他自己在那嘀嘀咕咕:
●云服務器上一次更新時間是怎么查來著?
●云服務器的磁盤要怎么配置來著?
●云服務器狀態怎么查來著?
......
后浪們,姜還是老的辣呀,剛好這些問題在最近的學習中都了解過,于是我迅速寫了一份文檔:《3步搞定彈性云服務器查詢》,寫完之后發到了公司研發群里,領導給了我一個大大的贊,還專門@實習生“要多向前輩學習”。
《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小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。