对接华为云SDK和相关的API经验分享和华为弹性云服务器 ECS的相关理解

前菜:

1.创建华为云服务器的步奏如下:

   友情链接

2.以下是此次对接常用对比的两个地方

   2.1  询价

   2.2  购买云服务

3.统一身份认证(Identity and Access Management,简称IAM)

        IAM是由主账号创建出来的用户,是云服务的使用人员,具有独立的身份凭证(密码和访问密钥),根据帐号授予的权限使用资源,IAM用户不进行独立的计费,由所属帐号统一付费。
(个人理解:IAM就是用来区分项目权限的账号)
AK/SK签名认证方式仅支持消息体大小12M以内,12M以上的请求请使用Token认证(一般是 够用)。

创建IAM的token:

IAM用户Token(用户+密码)

视频帮忙理解​​​​​ 视频帮助_统一身份认证服务 IAM_华为云


主菜:

此次踩坑只是做云服务器的询价!!!

基本思路(计费方式都是包年包月的场景)

开始之前补充一点:必须先用主账号创建地域对应的项目ID(下面的api对接都要用到)

第一步:选地域

        查询地域接口

第二步:选可用区

{
 "availabilityZoneInfo": [
  {
   "hosts": null,
   "zoneState": {
    "available": true
   },
   "zoneName": "cn-east-2a"
  },
  {
   "hosts": null,
   "zoneState": {
    "available": true
   },
   "zoneName": "cn-east-2b"
  },
  {
   "hosts": null,
   "zoneState": {
    "available": true
   },
   "zoneName": "cn-east-2c"
  },
  {
   "hosts": null,
   "zoneState": {
    "available": true
   },
   "zoneName": "cn-east-2d"
  }
 ]
}

很遗憾1,可用区没有返回中文字段:需要的亲,,,只能自己手动转

规律是,a代表可用区一,以此类推。。。。目测只有a ,b,c....到g

第三步:选实例规格

查规格配置

阿里云、腾讯云都是规格里带可用区(选了随机可用区的场景),这个接口比较怪异,需要自己改造一下,根据一下字段来

			"os_extra_specs": {
				"cond:operation:az": "cn-east-2b(normal)"
            }

第四步:选镜像

查询镜像api

镜像已经不归位弹性云服务器的范畴,属于镜像服务

第五步:选磁盘

   查询磁盘信息

磁盘已经不归位弹性云服务器的范畴,属于云硬盘服务

过滤掉售罄的云硬盘 和 不支持云硬盘类型的可用区,可根据一下返回字段处理

os-vendor-extended:sold_out_availability_zones # 当前云硬盘类型已售罄的可用区列表。
RESKEY:availability_zones #	支持当前云硬盘类型的可用区列表

很遗憾2

磁盘大小配额,没有返回

通过创建云服务器API接口得知:

系统盘大小,容量单位为GB, 输入大小范围为[1,1024]。

数据盘大小,容量单位为GB,输入大小范围为[10,32768]。

磁盘类

极速型SSDESSD
超高IOSSD
通用型SSDGPSSD
高IOSAS
普通IO(上一代产品)SATA

第六步:选带宽

很遗憾3

没有api

通过创建云服务器API接口得知:

功能说明:带宽大小

带宽(Mbit/s),取值范围为[1,2000]。

调整带宽时的最小单位会根据带宽范围不同存在差异。

  • 小于等于300Mbit/s:默认最小单位为1Mbit/s。
  • 300Mbit/s~1000Mbit/s:默认最小单位为50Mbit/s。
  • 大于1000Mbit/s:默认最小单位为500Mbit/s。

第七步:询价

华为云包年包月价格接口

需要用到的接口如下:

1. 查询资源类型列表

2.查询云服务类型列表

例子

{
    "product_infos":[
        {
            "id":"1",
            "cloud_service_type":"hws.service.type.ec2",
            "resource_type":"hws.resource.type.vm",
            "resource_spec":"s3.medium.4.linux",
            "region":"cn-east-3",
            "available_zone":"cn-east-3a",
            "resource_size":null,
            "size_measure_id":0,
            "period_type":2,
            "period_num":1,
            "subscription_num":1
        },
        {
            "id":"2",
            "cloud_service_type":"hws.service.type.vpc",
            "resource_type":"hws.resource.type.ip",
            "resource_spec":"5_bgp",
            "region":"cn-east-3",
            "available_zone":null,
            "resource_size":null,
            "size_measure_id":15,
            "period_type":2,
            "period_num":1,
            "subscription_num":1
        },
        {
            "id":"3",
            "cloud_service_type":"hws.service.type.ebs",
            "resource_type":"hws.resource.type.volume",
            "resource_spec":"GPSSD",
            "region":"cn-east-3",
            "available_zone":"cn-east-3a",
            "resource_size":40,
            "size_measure_id":17,
            "period_type":2,
            "period_num":1,
            "subscription_num":1
        },
        {
            "id":"4",
            "cloud_service_type":"hws.service.type.vpc",
            "resource_type":"hws.resource.type.bandwidth",
            "resource_spec":"19_bgp",
            "region":"cn-east-3",
            "available_zone":"cn-east-3a",
            "resource_size":40,
            "size_measure_id":15,
            "period_type":2,
            "period_num":1,
            "subscription_num":1
        }
    ],
    "project_id":"07ae2a84cc000f002f46c014b6eb3e53"
}

目前仅支持 go、java、python

如果你是php,福利来了

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://bss.myhuaweicloud.com/v2/bills/ratings/period-resources/subscribe-rate',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "product_infos":[
        {
            "id":"1",
            "cloud_service_type":"hws.service.type.ec2",
            "resource_type":"hws.resource.type.vm",
            "resource_spec":"s3.medium.4.linux",
            "region":"cn-east-3",
            "available_zone":"cn-east-3a",
            "resource_size":null,
            "size_measure_id":0,
            "period_type":2,
            "period_num":1,
            "subscription_num":1
        },
        {
            "id":"2",
            "cloud_service_type":"hws.service.type.vpc",
            "resource_type":"hws.resource.type.ip",
            "resource_spec":"5_bgp",
            "region":"cn-east-3",
            "available_zone":null,
            "resource_size":null,
            "size_measure_id":15,
            "period_type":2,
            "period_num":1,
            "subscription_num":1
        },
        {
            "id":"3",
            "cloud_service_type":"hws.service.type.ebs",
            "resource_type":"hws.resource.type.volume",
            "resource_spec":"GPSSD",
            "region":"cn-east-3",
            "available_zone":"cn-east-3a",
            "resource_size":40,
            "size_measure_id":17,
            "period_type":2,
            "period_num":1,
            "subscription_num":1
        },
        {
            "id":"4",
            "cloud_service_type":"hws.service.type.vpc",
            "resource_type":"hws.resource.type.bandwidth",
            "resource_spec":"19_bgp",
            "region":"cn-east-3",
            "available_zone":"cn-east-3a",
            "resource_size":40,
            "size_measure_id":15,
            "period_type":2,
            "period_num":1,
            "subscription_num":1
        }
    ],
    "project_id":"07ae2a84cc000f002f46c014b6eb3e53"
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'X-Auth-Token: 你的token'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

第八部:洗洗睡了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值