【API进阶之路】因为不会创建云服务器,我被实习生摆了一道

【api】把api部署到云服务器上 部署我写api过程 阅读详情

事情是这样的,公司成立了一个新项目,要给项目建官网,并搭建一个web服务器。按照我的习惯,搭建一个本地虚拟机就好了,部署简单方便还好配置,云服务器嘛,写了10年代码,还是不习惯那玩意儿。

我这刚开始动手,就看见实习生屁颠屁颠地跑过来,我心想这小子肯定是想来学虚拟机搭建部署的,这么简单的事都不会,真是白瞎了他那985的学校了。

可是...万万没想到啊,小实习生跑到我老大那里邀功去了!!!远远地听见他说:“公司新项目跑在云服务器上了,以后可以根据访问量随时进行弹性扩展,安全稳定还快。”

啥?云服务器?这小子居然会配置云服务器?听完汇报,老大看向了我,带着小实习生往我这边走过来……

“哼,叫你邀功,撞枪口上了吧,我就说云服务器配置没那么容易,还不是得来找我~”这么想着有点得意,老大走过来拍拍我的肩膀,说:“你跟他学一下怎么配置云服务器,别再用虚拟机了,以后都是麻烦事。”

我...他...让我跟一个实习生学???

实习生冲我微微一笑,就走了,没过一会扔给我一份文档,上面写着:“创建弹性云服务器流程详解”。打开粗略扫了一眼,代码都直接贴上来了?瞧不起谁?感觉有被冒犯到。

技术人嘛,看到代码还是没忍住跑一遍,等我发现bug或跑不通,再给他上上课!

结果……真香。

 

内容是这样的:

通过API创建云服务器的9个步骤(以指定镜像方式创建云服务器为例)(内容来源:https://support.huaweicloud.com/api-ecs/ecs_04_0001.html)

步骤一:确定待创建云服务器所在的可用区。

1、查询可用区。

(1)接口相关信息

URI格式:

1

GET/v2.1/{project_id}/os-availability-zone

(2)请求示例

1

GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-availability-zone

(3)响应示例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

{

   "availabilityZoneInfo":[

     {

       "hosts":null,

       "zoneState":{

         "available":true

       },

       "zoneName":"zone_01"

     },

    {

      "hosts":null,

      "zoneState":{

        "available":true

      },

      "zoneName":"zone_01"

    }

  ]

}

 2、根据实际需要选择可用区,并记录可用区的zoneName。

 

步骤二:确定待创建云服务器的规格。

1、查询云服务器规格信息。

(1)接口相关信息

URI格式:

1

GET/v2.1/{project_id}/flavors/detail{?minDisk,minRam,is_public,sort_key,sort_dir}

其中,“?”后的字段为查询规格时可选的查询检索参数。

(2)请求示例

1

GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/flavors/detail

(3)响应示例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

 {

   "flavors":[

     {

       "name":"c1.2xlarge",

       "links":[

         {

           "href":"https://xxx/v2.1/74610f3a5ad941998e91f076297ecf27/flavors/c1.2xlarge",

           "rel":"self"

         },

        {

          "href":"https://xxx/74610f3a5ad941998e91f076297ecf27/flavors/c1.2xlarge",

          "rel":"bookmark"

        }

      ],

      "ram":8192,

      "OS-FLV-DISABLED:disabled":false,

      "vcpus":8,

      "swap":"",

      "os-flavor-access:is_public":true,

      "rxtx_factor":1,

      "OS-FLV-EXT-DATA:ephemeral":0,

      "disk":0,

      "id":"c1.2xlarge"

    }

]

}

 

 2、 根据实际需要选择规格,并记录规格的ID。

 

步骤三:确定待创建云服务器使用的镜像。

1、查询镜像。

(1)接口相关信息

URI格式:

1

GET /v2.1/{project_id}/images/detail

(2)请求示例

1

GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/images/detail

(3)响应示例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

 {

   "images":[

     {

       "OS-EXT-IMG-SIZE:size":0,

       "metadata":{

         "__os_type":"Linux",

         "hw_vif_multiqueue_enabled":"true",

         "__imagetype":"gold",

         "__quick_start":"true",

        "virtual_env_type":"FusionCompute",

        "__support_xen":"true",

        "__support_kvm":"true",

        "__image_source_type":"uds",

        "__platform":"EulerOS",

        "__os_version":"EulerOS 2.2 64bit",

        "__os_bit":"64",

        "__isregistered":"false"

      },

      "created":"2018-05-14T06:13:50Z",

      "minRam":0,

      "name":"DBS-MySQL-Image_2.1.3.3",

      "progress":100,

      "links":[

        {

          "rel":"self",

          "href":"https://None/v2.1/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4"

        },

        {

          "rel":"bookmark",

          "href":"https://None/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4"

        },

        {

          "rel":"alternate",

          "href":"https://None/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4",

          "type":"application/vnd.openstack.image"

        }

      ],

      "id":"11e8f727-d439-4ed1-b3b8-33f46c0379c4",

      "updated":"2018-05-14T06:13:52Z",

      "minDisk":40,

      "status":"ACTIVE"

    }

  ]

}

2、根据需要选择镜像,并记录镜像ID。

 

步骤四:确定云服务器的网络信息。

1、查询网络。

(1)接口相关信息

URI格式:

1

GET /v2.1/{project_id}/os-networks

(2)请求示例

1

GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-networks

(3)     响应示例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

 {

   "networks":[

     {

       "id":"07a9557d-4256-48ae-847c-415a9c8f7ff6",

       "label":"b_tt3_td1b",

       "broadcast":null,

       "cidr":null,

       "dns1":null,

       "dns2":null,

      "gateway":null,

      "netmask":null,

      "cidr_v6":null,

      "gateway_v6":null,

      "netmask_v6":null

    }

  ]

}

2、根据需要选择网络,并记录网络ID。

 

步骤五:设置密钥对登录方式。

如需设置为密码登录方式,请直接跳转至步骤七。

1、创建密钥对。

(1)接口相关信息

URI格式:

1

POST /v2.1/{project_id}/os-keypairs

(2)请求示例

1

2

3

4

5

6

7

8

9

POST:  

Body:

{

     "keypair":{

         "type":"ssh",

         "name":"demo1",

         "user_id":"fake"

     }

 }

(3)响应示例

1

2

3

4

5

6

7

8

9

 {

   "keypair":{

     "public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrR5Gcwlh5ih7JOvzIUuQxS5qzWWPMYHeDXkDKSQ9W5pumOV05SiO3WCswnaQ5xMdOl31mNiHtwlwq9dJi7X6jJBB2shTD+00G5WuwkBbFU4CLvt1B44u0NUiaTJ35NAvW2/4XvpXm9OwiQ3B5ge6ZY7Esi38Unh+pkbhPkYxNBCK8yoOlojQhWs75abdxZBi811/8RwLcNiFiocA2RGxtRjBdpEScj+1TU+OcfZdQnr0AFbO11z7yxfIygwwzVTgUuJNbMbKHStQqRbklfMlHY4RBPQgb7RN/YaXKTQSXT84k+D9xlDNo7Wj4fwOJTOz/s/PvbIOqjRHt9D6Y4IKd Generated-by-Nova\n",

     "private_key":"-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEAq0eRnMJYeYoeyTr8yFLkMUuas1ljzGB3g15AykkPVuabpjld\nOUojt1grMJ2kOcTHTpd9ZjYh7cJcKvXSYu1+oyQQdrIUw/tNBuVrsJAWxVOAi77d\nQeOLtDVImkyd+TQL1tv+F76V5vTsIkNweYHumWOxLIt/FJ4fqZG4T5GMTQQivMqD\npaI0IVrO+Wm3cWQYvNdf/EcC3DYhYqHANkRsbUYwXaREnI/tU1PjnH2XUJ69ABWz\ntdc+8sXyMoMMM1U4FLiTWzGyh0rUKkW5JXzJR2OEQT0IG+0Tf2Glyk0El0/OJPg/\ncZQzaO1o+H8DiUzs/7Pz72yDqo0R7fQ+mOCCnQIDAQABAoIBAA6/c9dGmK2mae4z\nyQ5KrOFdvC1TNhej+sZx+CwyzEJUSvSuHcvQCXFBAz8FY92hhvPKcX66jINXZ+4/\nCmWAQ5YyhcRiow0Y91HvsS0bywoknX3q6kxBFodmyyCWFkgd5iMTADb1Lx0a27Y7\njlS4Dl5gyiGmxUN2Ng24wWEAjE8ZNuI0lrtr5IZKp+s5IAi/rb5AG/mL7EzicE8c\nmGP+QAa+nzwhAwNhFwVID230xen/ZcoL1d77hxeARNqJUxoR25gwJd6Ebg2y9pDW\nVu6cbbzgdGUCfQYlMEoAamAkCswOsDpVDBXwQnt2A537n6Wq2bgYIKusHr9thtxP\n/5ubQLUCgYEA4zYuBG2vtLHnvce26P8o2j1xcJS9K0ozkah9JFl3hqFN0sAqLlz7\n/Fm1jA4kzHJS3d0UqP3AMDxY3HkIqCn4Be7lqeAAe2AfqkOZpt9MDNv4VwKe9sPb\nViW1qjL3FxziLC/YWTRNSlpwRjqJJGhA+UQt8rOia1k/zXmrEs7bXLcCgYEAwPsu\nK3j5QoAiziYVMYf5iCzWwAM9Ljpf9gw23lefTdIzhhfFtJplVRSyxRGU0UZ84GMI\nTd5zmcIF/1KUfhqmeiQzz6NIPEYEReahjpQ/sOH/Gk5Rwr3QwYPrwAu5x+kk/SRi\nKPkqw7APTR0sMQBcUq+ZYwGYLGPMdd1zUdLfb0sCgYBkuz11iydtxb3G/obSD2WO\nM9VaIycmzRPFzNwGRH/gOR0mhTluKp0wyJjbSd34oeqpH/2r2ivddrOysxoqa8jg\n4IQDZyLvj7MaKjQxrieqP89+y9Or9TMFo1xB46x2G8EN8/xHuA9YGnZSPFtWv72m\nhRqV0hv82amWsA0vHnRUSwKBgDsKHXvrTMbNkNhkykMXCH5iyWiBFSyZa1ZJMlgf\nknsqfdzeVPwF6E55QKAN2uuTlwzG/3ljPxahR1hvmUJjQN9JSBiUKbtW6GPCRVbr\nf/jLi1Iu99COZdluVKeybqn8Z/aSNP24DR9FM8kxzZ1IMPaTBmhFypp6BclhcLBt\nxTG1AoGAfcrkVbV1SOy7fECUtMpUECcw0yU4GWj3sR2RbII63C500RVYQlUpUaRR\naANbASHTVR4myOKtGSxEUhAQHlxFDwsDL7W3gzAqTFbEDp1xAAUyT/nkOAhQjEm4\nORFdDETeXLQG1KMUj+8AdnhfYp3JTdft6rmPpZEBUFiCAUMAvb0=\n-----END RSA PRIVATE KEY-----\n",

     "user_id":"f79791beca3c48159ac2553fff22e166",

     "name":"demo1",

     "fingerprint":"57:a7:a2:ed:5f:aa:e7:54:62:2e:bb:e7:92:22:cb:40"

   }

 }

2、导入密钥。

(1)接口相关信息

URI格式:

1

POST /v2.1/{project_id}/os-keypairs

(2)请求示例

1

2

3

4

5

6

7

8

9

10

POST: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-keypairs

Body: 

{

     "keypair":{

         "public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY8wMTdBYiJgi62o6eShoOlSKx3CZ3cE6PHisDblfK3Y0Bg7EHV7iV9c74pqsrIhK0xuGUuO1NxDQWbkwLTPN4F9Iy5CIYohLuMIpbln6LDtfRPpdhEh3lxL8MM61gyfpKzeKkwkEpSFj27Rgh6zCyJgBpkA2A0HTP737UlitahL4faCWDIS+Vj6mbcfkWiMhuMCzTZgSKAZ4PfoG4B5HJhR52C6A4XLiQFT9heh9gnIsIG+uTogTKUbcJKuN7M6AraJpul6eHhV9YI4433sDmuiBF/njvreVPWwAHlAkgT9I8q1T/cfEFiwzXpdGbkK5O8NC7K+qNbbdKihlahONt Generated-by-Nova\n",

         "type":"ssh",

         "name":"demo2",

         "user_id":"fake"

     }

 }

(3)响应示例

1

2

3

4

5

6

7

8

 {

   "keypair":{

     "public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY8wMTdBYiJgi62o6eShoOlSKx3CZ3cE6PHisDblfK3Y0Bg7EHV7iV9c74pqsrIhK0xuGUuO1NxDQWbkwLTPN4F9Iy5CIYohLuMIpbln6LDtfRPpdhEh3lxL8MM61gyfpKzeKkwkEpSFj27Rgh6zCyJgBpkA2A0HTP737UlitahL4faCWDIS+Vj6mbcfkWiMhuMCzTZgSKAZ4PfoG4B5HJhR52C6A4XLiQFT9heh9gnIsIG+uTogTKUbcJKuN7M6AraJpul6eHhV9YI4433sDmuiBF/njvreVPWwAHlAkgT9I8q1T/cfEFiwzXpdGbkK5O8NC7K+qNbbdKihlahONt Generated-by-Nova\n",

     "user_id":"f79791beca3c48159ac2553fff22e166",

     "name":"demo2",

     "fingerprint":"dd:44:45:49:d9:f6:4f:c0:24:2d:81:aa:c4:4b:83:c2"

   }

 }

2、记录响应消息体中的name信息。如本例中为“demo2”。

 

步骤六:创建密钥对登录鉴权的云服务器。

(1)接口相关信息

URI格式:

1

POST /v2.1/{project_id}/servers

说明: 

本示例是指定image创建云服务器,因此:

•block_device_mapping_v2.1中,“source_type”需设置为“image”,“uuid”设置为选择的镜像ID,“destination_type”设置为“volume”,“boot_index”设置为“0”。

•“volume_size”应大于等于镜像元数据中指定的最小值。

(2)请求示例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

POST: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers

Body:

 {

     "server":{

         "flavorRef":"c1.large",

         "name":"zttestvm1",

         "block_device_mapping_v2.1":[{

             "source_type":"image",

             "destination_type":"volume",

             "volume_type":"SATA",

             "volume_size":"40",

            "delete_on_termination":"true",

            "uuid":"11e8f727-d439-4ed1-b3b8-33f46c0379c4",

            "boot_index":"0"

        }],

        "networks":[{

            "uuid":"fb68519f-a7c0-476e-98d4-2e4cf6de6def"

        }],

        "key_name":"demo2",

        "availability_zone":"az_test_01"

    }

}

(3)响应示例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

 {

   "server":{

     "security_groups":[

       {

         "name":"default"

       }

     ],

     "OS-DCF:diskConfig":"MANUAL",

     "links":[

      {

        "rel":"self",

        "href":"https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/6d311127-bce1-48db-bf0f-cac9f8f7f077"

      },

      {

        "rel":"bookmark",

        "href":"https://None/74610f3a5ad941998e91f076297ecf27/servers/6d311127-bce1-48db-bf0f-cac9f8f7f077"

      }

    ],

    "id":"6d311127-bce1-48db-bf0f-cac9f8f7f077",

    "adminPass":"WcC4QoVZPXpV"

  }

}

 

步骤七:设置密码登录方式。

(1)使用非cloud-init镜像创建云服务器时,Windows和Linux系统都使用“adminPass”参数实现密码注入。

(2)使用cloud-init镜像创建云服务器时:

  • 对于Linux系统,只能使用“user_data”进行密码注入,“user_data”字符串长度小于65535,且必须是base64加密的;

  • 对于Windows系统,只能通过元数据“admin_pass”进行密码注入。

 

步骤八:创建密码方式登录鉴权的弹性云服务器。

说明: 

本示例是指定image创建弹性云服务器,因此:

  • block_device_mapping_v2.1中,“source_type”需设置为“image”,“uuid”设置为选择的镜像ID,“destination_type”设置为“volume”,“boot_index”设置为“0”。

  • volume_size”应大于等于镜像元数据中指定的最小值。

1、创建非cloud-init镜像、密码方式登录鉴权的弹性云服务器。

(1)接口相关信息

URI格式:

1

POST /v2.1/{project_id}/servers

(2)请求示例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

POST: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers

Body:

 {

     "server":{

         "flavorRef":"c1.large",

         "name":"zttestvm1",

         "adminPass":"NOVAGLANCEI@123",

         "block_device_mapping_v2.1":[{

             "source_type":"image",

             "destination_type":"volume",

             "volume_type":"SATA",

            "volume_size":"40",

            "delete_on_termination":"true",

            "uuid":"11e8f727-d439-4ed1-b3b8-33f46c0379c4",

            "boot_index":"0"

        }],

        "networks":[{

            "uuid":"fb68519f-a7c0-476e-98d4-2e4cf6de6def"

        }],

        "availability_zone":"az_test_01"

    }

}

(3)响应示例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

 {

   "server":{

     "security_groups":[

       {

         "name":"default"

       }

     ],

     "OS-DCF:diskConfig":"MANUAL",

     "links":[

      {

        "rel":"self",

        "href":"https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/73991cff-37c6-491a-9a8a-377397729fce"

      },

      {

        "rel":"bookmark",

        "href":"https://None/74610f3a5ad941998e91f076297ecf27/servers/73991cff-37c6-491a-9a8a-377397729fce"

      }

    ],

    "id":"73991cff-37c6-491a-9a8a-377397729fce",

    "adminPass":"NOVAGLANCEI@123"

  }

}

2、创建cloud-init镜像(以Linux为例)、密码方式登录鉴权的弹性云服务器。

(1)接口相关信息

URI格式:

1

POST /v2.1/{project_id}/servers

(2)请求示例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

POST:  

Body: 

{

     "server":{

         "flavorRef":"c1.large",

         "name":"zttestvm2",

 "user_data":"IyEvYmluL2Jhc2gKZWNobyAncm9vdDokNiRuaERlcUIkajBkelVMbkFrbWo4bWlFREFzT0VONkVPdGg1RmdqWnQybUVWZVRocC5OVDJXelZVdzFuNzhnL3dNdDE0dVpSQ1V3LzhHS3VGdEViQ0lPQS5vN1BZQzEnIHwgY2hwYXNzd2QgLWU7",

         "block_device_mapping_v2.1":[{

             "source_type":"image",

             "destination_type":"volume",

             "volume_type":"SATA",

            "volume_size":"40",

            "delete_on_termination":"true",

            "uuid":"11e8f727-d439-4ed1-b3b8-33f46c0379c4",

            "boot_index":"0"

        }],

        "networks":[{

            "uuid":"fb68519f-a7c0-476e-98d4-2e4cf6de6def"

        }],

        "availability_zone":"az_test_01"

    }

}

(3)响应示例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

 {

   "server":{

     "security_groups":[

       {

         "name":"default"

       }

     ],

     "OS-DCF:diskConfig":"MANUAL",

     "links":[

      {

        "rel":"self",

        "href":"https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/7c11f362-cc96-4306-85b6-b432a639ca5e"

      },

      {

        "rel":"bookmark",

        "href":"https://None/74610f3a5ad941998e91f076297ecf27/servers/7c11f362-cc96-4306-85b6-b432a639ca5e"

      }

    ],

    "id":"7c11f362-cc96-4306-85b6-b432a639ca5e",

    "admin_pass":"J3xMSivHCuq5"

  }

}

 

步骤九:确认云服务器创建成功。

(1)接口相关信息

URI格式:

1

GET /v2.1/{project_id}/servers/{server_id}

(2)请求示例

1

GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6

其中:0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6为创建的云服务器UUID。

(3)响应示例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

 {

   "server":{

     "tenant_id":"74610f3a5ad941998e91f076297ecf27",

     "addresses":{

       "2a6f4aa6-d93e-45f5-a8cb-b030dbf8cd68":[

         {

           "OS-EXT-IPS-MAC:mac_addr":"fa:16:3e:88:01:1b",

           "OS-EXT-IPS:type":"fixed",

           "addr":"192.168.2.192",

          "version":4

        }

      ]

    },

    "metadata":{},

    "OS-EXT-STS:task_state":null,

    "OS-DCF:diskConfig":"MANUAL",

    "OS-EXT-AZ:availability_zone": "az_test_01",

    "links":[

      {

        "rel":"self",

        "href":"https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6"

      },

      {

        "rel":"bookmark",

        "href":"https://None/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6"

      }

    ],

    "OS-EXT-STS:power_state":1,

    "id":"0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6",

    "os-extended-volumes:volumes_attached":[

      {

        "id":"b551445a-e749-4d53-932a-638a455cb6c3"

      }

    ],

    "OS-EXT-SRV-ATTR:host":"pod1_test_01",

    "image":{

      "links":[

        {

          "rel":"bookmark",

          "href":"https://None/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4"

        }

      ],

      "id":"11e8f727-d439-4ed1-b3b8-33f46c0379c4"

    },

    "OS-SRV-USG:terminated_at":null,

    "accessIPv4":"",

    "accessIPv6":"",

    "created":"2018-05-25T01:47:11Z",

    "hostId":"b2792bef989888d2df1f51bff81de5ac58a4117f4e9ec3059c1a0410",

    "OS-EXT-SRV-ATTR:hypervisor_hostname":"nova001@36",

    "key_name":null,

    "flavor":{

      "links":[

        {

          "rel":"bookmark",

          "href":"https://None/74610f3a5ad941998e91f076297ecf27/flavors/c1.large"

        }

      ],

      "id":"c1.large"

    },

    "security_groups":[

      {

        "name":"default"

      }

    ],

    "config_drive":"",

    "OS-EXT-STS:vm_state":"active",

    "OS-EXT-SRV-ATTR:instance_name":"instance-001883cd",

    "user_id":"f79791beca3c48159ac2553fff22e166",

    "name":"zttestvm1",

    "progress":0,

    "OS-SRV-USG:launched_at":"2018-05-25T01:47:55.755922",

    "updated":"2018-05-25T01:47:55Z",

    "status":"ACTIVE"

  }

}

按照步骤指示,我很快完成了云服务器的搭建,不禁有些惊讶,这小子怎么懂这么多?等等...华为云API Explorer?打开华为云API Explorer的官网,我好像打开了新世界的大门,有很多已配置好的环境和接口,直接调用调试就可以了,以后怕是没有什么能够难住我了!

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

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

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

OpenStack Client客户端的两种身份验证方式 OpenStackClient 是 OpenStack 提供的一个命令行CLI工具 阅读详情

相关推荐

云服务器上创建MySQL/MariaDB数据库的完整实操指南

数据库创建是数据系统建设的第一步,其本质是初始化存储空间、设定字符编码与访问权限的过程。在云服务器环境中,该操作需严格遵循隔离性、可追溯性与可迁移性原则,核心涉及CREATE DATABASE命令执行、utf8mb4字符集配置及MariaDB与MySQL的兼容性适配。技术价值在于规避乱码、权限失控与备份误覆盖等高频生产事故,广泛应用于RAGFlow后端搭建、学生成绩系统开发及等保合规部署等真实场景。本文聚焦云环境下的数据库‘出生’全过程,覆盖从服务安装、安全加固到业务库交付的终端级实操。

weixin_33736832的博客 488

6个html5页面适配iphone6的技巧

iphone6及iphone6plus已经出来一段时间了。很多移动端网站,以前写死body为320px的,现在估计也忙着做适配了。 大屏幕手机其实一直有,只是以前大家没怎么重视,移动端的H5页面大部分都以320px为基准宽度进行布局,那些大屏屌丝android用户也懒得去理,而现在iphone也搞起多屏幕,老板们重视程度就不一样了。 回归正题,兼容iphone各版本机型最佳的方式就是自适应。 ...

weixin_30664615的博客 286

【云原生】Docker 进阶 -- 阿里云服务器安装Docker Compose与初体验

Docker 进阶 之 Compose 容器编排详解

wanghuichen的博客 5169

创建 OpenStack云主机 [六]

创建 OpenStack云主机 [六]标签(空格分隔): openstack 时间:2016年11月28日 博客地址:www.abcdocker.com 公众号:abcdocker创建虚拟网络  创建m1.nano规格的主机(相等于定义虚拟机的硬件配置)生成一个密钥对(openstack的原理是不使用密码连接,而是使用密钥对进行连接)  增加安全组规则(用iptables做的安全组)

i4t abcdocker的博客 4501

实战指南 | Adjust 与 Facebook、Google Ads 自归因配置全流程解析

本文详细解析了Adjust与Facebook、Google Ads自归因配置的全流程,帮助移动应用出海推广者解决广告归因难题。通过自归因功能(SAN),开发者可以获取更准确的数据、简化配置流程并扩大安装来源覆盖,显著提升广告效果监测和ROI计算效率。

weixin_42528780的博客 536

IPD的分析工具与模型(十六)CBB公用基础模块管理实现资源共享,缩短开发周期

CBB流程的开发环节,基于CBB规划中所识别和设计的CBB,进行CBB的详细设计(包括参数设计和接口设计),并最终实现CBB的落地开发。作为特殊类型的技术构件,CBB的开发流程,可沿用技术开发中的构件开发流程,具体包括概念、计划、开发和迁移等步骤,具体可参见前文的相关介绍。有了蓝图与架构设计,落地实施是关键攻坚。具体工作内容包括:具体工作内容包括:a. 以相似性、聚类、相对独行性、可组合、可扩展性、可维护性等原则为指导,按照产品的功能特征和业务类型,聚焦零散的功能点,形成功能模块,实现产品功能模块的划分;

corgi2020的博客 2000

H5app自动更新思路和实现

1.在服务器需要一个json或html文件,json最好。[javascript] view plain copy{      "state": "yes",//是否自动更新      "mark": "1.0.6",//版本号      "url": "http:\/\/XXXXXXXX\/APPobject\/mmm.apk"//更新的应用下载地址  }  2.自动更新函数t是你当前正

perry1230的博客 2841

Python入门基础教程(非常详细)

Python是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大,坚持「极简主义」。Python类库(模块)极其丰富,这使得Python几乎无所不能,不管是传统的Web开发、PC软件开发、Linux运维,还是当下火热的机器学习、大数据分析、网络爬虫,Python都能胜任。这套Python基础教程不是教科书,不会玩弄概念,而是力求口语化和通俗化,让读者尽快入门。如果有小朋友出于兴趣学习Python,请引导他阅读本教程的前半部分,这是基础,可以降低学习成本;...

Yuki1127918的博客 34万+

【API进阶之路】API带来的微创新,打动投资人鼓励我创业

摘要:怎么帮助创作者提高视频的推荐量呢?我发现了:视频的封面图非常重要。 上回说到,老板一拍脑门,交代了一个新项目:小成本开发一款短视频剪辑工具(【《【API进阶之路】人少钱少需求多的新项目该怎么带?》)。 我带着研发团队连日加班,终于在月底前开发出1.0版本,提供的功能与市面上现有的剪辑软件差不多,细节体验上可能还要更好一些,但产品推广了一周后发现用户量并没有增加多少。也难怪,同类产品那么多,如果没有特别亮眼的新功能,很难让用户放弃熟悉的工具转而使用新的软件。因此运营部提出来要有创新性的功能,不然不好

华为云官方博客 2705

UE5实战技巧:TextRender高效集成中文字体与材质优化

本文针对UE5中TextRender组件显示中文的常见问题,提供了一套完整的实战解决方案。详细讲解了如何通过手动创建字体资产、精准控制字符集来优化性能,并重点介绍了通过调整材质中的Lerp节点参数(如设为-85, 92)来解决中文字体显示残缺和边缘模糊等核心难题,帮助开发者实现高效且美观的中文文本渲染。

weixin_28040125的博客 379

从频谱分析到硬件加速:用ZYNQ-7020+FFT IP核实现实时信号处理的完整方案

本文详细介绍了如何利用ZYNQ-7020和FFT IP核实现实时信号处理的完整方案,涵盖系统架构设计、硬件加速实现及性能优化。通过异构计算架构,该方案将1024点FFT处理延迟压缩至28μs,显著提升工业自动化和无线通信等领域的实时频谱分析效率。

weixin_33704234的博客 467

RabbitMQ 进阶 -- 阿里云服务器部署RabbitMQ集群

如何搭建RabbitMQ集群?动手搭建RabbitMQ镜像队列集群!

wanghuichen的博客 5028

STM32G474的HRTIM实战:用CubeMX配置互补PWM驱动全桥电路(附移相算法代码)

本文详细介绍了如何使用STM32G474的HRTIM高分辨率定时器,通过CubeMX配置互补PWM驱动全桥电路,并附移相算法代码。内容涵盖HRTIM硬件架构解析、CubeMX配置全流程、移相控制算法实现及调试技巧,为数字电源和电机控制领域提供实用解决方案。

weixin_27017211的博客 481

什么是云服务器ECS?云服务器ECS详解

什么是云服务器ECS?云服务器ECS详解一、前言二、云服务器ECS详解为什么选择云服务器ECS?产品架构产品定价管理工具部署建议相关服务三、写在后面的话 叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧! 一、前言 云服务器ecs有什么作用? 现在越来越多的企业都开始将服务器迁移至云端,云技术的应用十分广泛,其中之一就体现在云服务器的使用上,凭借更加简单的操作与便利等优势,云服务器可谓深受众多企业青睐 二、云服务器ECS详解 云服务器(Elastic Comp

小啊呜的博客 1万+

葵花 Himawari 8/9号数据学习记录-01-数据初识

葵花卫星学习记录,第一章:卫星的来源与卫星数据的波段介绍

weixin_44111909的博客 533

全志平台camera驱动开发(4)NVP6134芯片4路模拟视频BT656输入

前言 1. 调试平台: 全志V5/T7等有BT656或BT1120的并行接口,理论有DVP接口的一般都支持 2. NVP6134可使用多路视频同时输入 硬件连接 模拟camera1 模拟camera2 NVP6134 ------>NVCSI0 ...

jzwjzw19900922的博客 3531

【API进阶之路6】一个技术盲点,差点让整个项目翻车

上次教了实习生一个方案之后,这小子跟运营妹子的关系是越走越近,时不时地撒把狗粮,在我司真正实现了研发运营一家亲~(上回你没看?戳上文剧情回顾:万万没想到,一个技术方案帮实习生追到了运营妹子) 这回想跟大家聊的,是最近一个可以说有些惊心动魄的项目。自从我开始在华为云网站自学API的技术解决方案之后,我就变成了公司的云服务器技术专家,老板或运维部门想要查询个数据什么的都来找我。 近期有一个运营项目的系统正在开发中,运营方规划了一个数据BI模板,列出了需要监测和分析的数据维度,老板干脆让我每周出一份数据报表.

华为云官方博客 2397

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播

看我如何通过API Explorer 的SDK接口搞定千万级流量直播。

华为云官方博客 2664

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【API进阶之路】做OCR文字识别,谁说必须要有AI工程师?

摘要:有些功能还真不能光凭自己的直觉和认识,来自一线的声音才是最真实的用户需求。比方说名片录入的需求。 在公司技术委员会副主席这个位置上干了有几个月了,期间,我一方面给研发团队整理各种文档资料,做技术沉淀;一方面给市场/运营帮了几次忙,用技术解决业务问题。上周又解决了一个业务难题,估计是考虑到升职加薪也不能太频繁,老板就奖励了我7天带薪假期,让我自己安排。 (上集故事请查看:《破圈,用一个API代替10人内容团队》) 程序员的工作时间不是996就是007,这突然有了假,干点啥去呢?疫情期间也不能出去浪

华为云官方博客 2734

云主机新手入门:从零开始搭建你的第一台云服务器

在当今数字化时代,云服务器已成为个人开发者、中小企业乃至大型企业的首选基础设施。相比传统物理服务器,云主机具有弹性扩展、按需付费、易于管理等诸多优势。本文将带领零基础的读者一步步完成第一台云服务器的搭建,并介绍启盛裸金属等高性能选项。云服务器(Cloud Server)是基于云计算技术的虚拟化服务器,它将物理服务器的计算资源(CPU、内存、存储等)通过虚拟化技术分割成多个虚拟服务器,用户可以按需购买和使用。通过本文,你已经掌握了从零开始创建和管理云服务器的基本技能。

2501_91663411的博客 1712

微软云服务器api,微软爱开发者|掌握 API 进阶指南,助您应云而“胜”!

原标题:微软爱开发者|掌握 API 进阶指南,助您应云而“胜”!(本文阅读时间:3分钟)远古时代,工具的诞生带领人类解放了双手工业时代,汽车的发明为人类实现了双腿自由而云时代海量 API 的出现,为开发者带来知音从此不必再深陷重复的“体力劳动”,为开发提速!但尽管不用再闭门造车,良莠不齐的 API 却成为开发者们“新”头痛代码与文档不匹配、文档繁杂、整理耗时费力、安全风险高……所以云时代如何真正解...

weixin_30131105的博客 647

大模型及agent开发5 OpenAI Assistant API 进阶应用

从结果上看,对于每个文件存储至向量数据库时所应用的切分策略,直接在vector_store对象中是看不到的,这是因为切分策略是和具体的文件做绑定的,而一个向量数据库中可以存储多个文件。将文件添加向量数据库时会自动解析、分块、嵌入文件并将其存储,所以默认的chunking_strategy字段中的type参数是auto,max_chunk_size_tokens是800, chunk_overlap_tokens是400。该工具可以处理具有不同数据和格式的文件,并生成具有数据和图形图像的文件。

m0_60792028的博客 2179

Rembg部署指南:云服务器配置建议

本文系统介绍了Rembg 在云服务器上的完整部署方案,涵盖从技术原理、环境选型、Docker与源码部署、API集成到性能优化的全流程。通过合理配置硬件资源与服务架构,即使是无GPU的普通云主机也能稳定运行高质量的AI抠图服务。核心价值总结- ✅真正离线可用:摆脱ModelScope等平台的Token限制,实现100%自主可控- ✅通用性强:不仅限于人像,广泛适用于商品、动物、文字标志等多种场景- ✅双模交互:既可通过WebUI直观操作,也可通过API无缝集成至业务系统- ✅低成本落地。

weixin_42593701的博客 655

阿里ECS云服务器买来之后必做的几个操作

阿里ECS云服务器买来之后必做的几个操作

孤寒者的博客 4万+

Awesome-Dify-Workflow:云服务器免费部署方案

你还在为Dify工作流部署付费吗?云服务器费用太高?配置过程太复杂?本文将带你用零成本在云服务器上部署Awesome-Dify-Workflow项目,让你轻松拥有强大的AI工作流系统。读完本文,你将获得:免费云服务器资源申请指南、Dify一键部署步骤、常见问题解决方法以及精选工作流推荐。 ## 为什么选择免费云服务器部署 Dify作为一款开源的AI应用开发平台,提供了强大的工作流(Workfl...

gitblog_00767的博客 912
上一篇: 华为云一站式API解决方案平台API Explorer揭秘
devopscsdn
博客等级 码龄10年 124粉丝 205原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值