使用华为云API创建相应的云服务
一、华为云IAM认证鉴权及服务API调用
在《定时开关华为公有云虚拟机方法总结》篇幅中有提过,通过apiexplorer可以很方便的进行应用创建调用。不过有些云服务还没有上线apiexplorer,这时候就需要通过原始的API进行调用了。
比如在香港站点Functiongraph开通LTS日志,就可以通过API进行调用开通,具体shell指令如下:
1token=`curl -X POST -H 'Content-Type:application/json' -d '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"IAM用户名","password":"帐户密码","domain":{"name":"主帐号名称"}}}},"scope":{"project":{"name":"ap-southeast-1"}}}}' -i https://iam.ap-southeast-1.myhuaweicloud.com/v3/auth/tokens -k -s |grep X-Subject-Token | awk -F ': ' '{print $2}'`
2curl -X POST -H "X-Auth-Token:$token" -H "Content-Type:application/json;charset=utf-8" -i https://functiongraph.ap-southeast-1.myhuaweicloud.com/v2/0de61da60f00f3952f87c003fd9cd8f0/fgs/functions/enable-lts-logs
第一条命令是通过IAM服务获取token信息,第二条命令是使用token信息在functiongraph的endpoint节点上调用LTS日志开通功能。
由于在云帐号中存在IAM帐号和主帐号的概念,如果在公司里是分开创建的,这里的用户名会不一样,如果只有一个帐号,没有创建IAM帐号,这里的两个用户名称是一致的。
认证鉴权可以参考页面:https://support.huaweicloud.com/intl/zh-cn/api-functiongraph/functiongraph_06_0230.html
Endpoint信息可以参考:https://developer.huaweicloud.com/endpoint
二、通过API创建虚拟机
创建ECS云服务器的参考页面为:https://support.huaweicloud.com/intl/zh-cn/api-ecs/ecs_02_0101.html
ECS服务器数据结构页面为:https://support.huaweicloud.com/intl/zh-cn/eu-west-0-api-ecs/zh-cn_topic_0167957246.html
由于token值的获取方法在第一部分已做了介绍,这里直接上ECS的请求体:
1{
2 "server": {
3 "availability_zone":"az1", //可用区名称,该项有问题
4 "adminPass": "P@ssw0rd123",
5 "name": "newserver",
6 "imageRef": "6f1ca74e-95b6-419d-95db-f649cca82379",
7 "root_volume": {
8 "volumetype": "SSD"
9 },
10 "data_volumes": [
11 {
12 "volumetype": "SSD",
13 "size": 100
14 },
15 {
16 "volumetype": "SSD",
17 "size": 100,
18 "multiattach": true,
19 "hw:passthrough": true
20 }
21 ],
22 "flavorRef": "s6.medium.2",
23 "vpcid": "25728479-c5ad-470b-8d38-a1954ac24daa",
24 "security_groups": [
25 {
26 "id": "5af58fa9-fe9b-4453-8013-c6e4b3b1413f"
27 }
28 ],
29 "nics": [
30 {
31 "subnet_id": "e674b889-8731-48e4-9586-a030e624ac18"
32 }
33 ],
34 "key_name": "",
35 "count": 1,
36 "metadata": {},
37 "extendparam": {
38 "chargingMode": "postPaid",
39 "enterprise_project_id": "0"
40 }
41 }
42}
上面的请求体创建ECS时有个问题:上面的请求体执行时需要去掉availability_zone部分,该部分加上会提示对应的AZ不存在,这个需要后续确认原因。
当把multiattach结构体部分去掉后,对应创建的虚拟机信息如下:
PS:AZ参数问题核查
通过另外一个接口查询发现,在web界面上看到的AZ1、AZ2,在后台数据提交时,不是这个名称,后来又看了查询AZ的接口,通过调用发现,在测试用的智利圣地亚哥region,AZ1对应的名称是la-south-2a,AZ2对应的名称是la-south-2b,显然ECS创建页面的文档给的有误导性,也不太完善,应该附上获取AZ的链接页面。AZ链接查询的结果信息如下:
用上面获取的AZ值替换json体中的AZ值即可。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/huaweicloud-api-create-ecs/6716.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.