华为云SDK调用

华为云SDK下载:https://support.huaweicloud.com/devg-sdk/zh-cn_topic_0070637158.html

方式一:下载GitHub源码安装方式,如下:

将代码下载到您项目合适的位置,以pythonsdk作为您选择的位置举例,执行下面的命令完成源码下载和安装:

git clone https://github.com/huaweicloud/huaweicloud-sdk-python pythonsdk

cd pythonsdk

pip install -r requirements.txt

python setup.py install

方式二:使用pip安装,请执行以下命令:

pip install huaweicloud-sdk-python

"""
    华为云服务器创建sdk接 入
"""

from openstack import connection
import re
import time

zone_name=input("输入地区:")
region_list={
    "广州": "cn-south-1", "上海": "cn-east-2"
}
region_name = region_list.get(zone_name)

projectId = "xxxxxxx"            #项目id
cloud = "myhuaweicloud.com"
region= region_name
AK = "xxxxxxx"
SK = "xxxxxxxx"
conn = connection.Connection(
              project_id=projectId,
              cloud=cloud,
              region=region,
              ak=AK,
              sk=SK)

name = input("输入vpc名称:")
#查询/创建vpc,返回vpcid
def test_create_vpc(_conn):
    global vpc_id
    query = {
        "limit": 2
    }
    objs = _conn.vpcv1.vpcs(**query)
    for obj in objs:
        s = str(obj)
        vpc_name1 = re.findall(r‘.*name=(.*?),.*‘, s)
        if name == vpc_name1[0]:
            id = re.findall(r‘id=(.*?),.*?‘, s)
            vpc_id = id[0]
            #print("VPCID:"+vpc_id)
            break
    else:
        data = {
            "name": name,
        }
        vpc_inf = str(_conn.vpcv1.create_vpc(**data))
        id = re.findall(r‘.*id=(.*?),.*‘, vpc_inf)
        vpc_id = id[0]
        #print("VPCID:"+vpc_id)

#查询/创建子网,返回子网网络id
def test_subnets(_conn):
    global subnet_id
    query = {
        "limit": 2
    }
    objs = _conn.vpcv1.subnets(**query)
    for obj in objs:
        sub = str(obj)
        subnet_name1 = re.findall(r‘.*name=(.*?),.*‘, sub)
        if name == subnet_name1[0]:
            id = re.findall(r‘id=(.*?),.*‘, sub)
            subnet_id=id[0]
           #print("子网ID:" + subnet_id)
            break
    else:
        data = {
                "name": name,
                "cidr": "192.168.0.0/24",
                "gateway_ip": "192.168.0.1",
                "vpc_id": vpc_id,
        }
        x = str(_conn.vpcv1.create_subnet(**data))
        id = re.findall(r‘.*id=(.*?),.*‘, x)
        subnet_id = id[0]
        #print("子网ID:" + subnet_id)

#查询/创建安全组,返回安全组id
def security_groups(_conn):
    global sg_id
    query = {
        "limit": 2
    }
    objs = _conn.vpcv1.security_groups(**query)
    for obj in objs:
        s = str(obj)
        sg_name1 = re.findall(r‘.*name=(.*?),.*‘, s)
        if name == sg_name1[0] :
            id = re.findall(r‘id=(.*?),.*‘, s)
            sg_id = id[0]
            #print("安全组ID:"+sg_id)
            break
    else:
        data = {
            "name": name
        }
        sg_inf = str(_conn.vpcv1.create_security_group(**data))
        id = re.findall(r‘id=(.*?),.*‘, sg_inf)
        sg_id = id[0]
        #print("安全组ID:" + sg_id)

server_name = input("输入服务器名称:")
root_wd = input("输入服务器密码:")
root_vo = input("系统盘:")
data_vo = input("数据盘:")
zone_list = {
    ‘广州‘: ‘cn-south-1c‘, "上海": ‘cn-east-2c‘
}
zone=zone_list.get(zone_name)

#获取服务器镜像id
image_id = input("输入系统型号:")
#上海系统id列表
image_list = {
    "6.5": "a90fd48b-7fc7-4805-8437-61219e3f7a8d", "6.8": "8b65a542-c3be-4878-86b4-f077d6f98872",
    "6.9": "bf9829da-4788-461a-89bd-4d4f251ac034", "7.2": "95c06f9a-19d5-48b1-a52b-bd09d837536f",
    "7.3": "643d831d-a69c-433f-803f-065e0e2e2911", "7.4": "af92bb51-ec9d-4b02-912f-da0b3f0f7635",
    "7.5": "9c36fd0e-b73e-4f3b-90a1-6c581023a698", "7.6": "9526f9b7-423c-4fdc-92ad-f1630a524652",
    "16": "7a2a8501-0194-49f3-be9d-da97e21d159b", "18": "f6e06c03-8122-4884-a8c2-88dbca90a1c8",
    "2008": "2af80187-4479-40e7-bd5d-88bbc39f3fa7", "2008企业": "c90f1ca1-9b38-4e18-b013-ab43198a40a9",
    "2012数据中心": "0b368aca-dd75-4c8e-9711-bd0deb8b5c18",
}
#广州系统id列表
image_list1 = {
    "6.5": "008ee6d6-e104-4f19-8746-49f3d9ad735c", "6.8": "89708938-d2e8-4abf-8505-6ba412a72ee6",
    "6.9": "6b9a1696-61e1-4210-b607-e58b94409e73", "7.2": "5bce3b2d-5f64-4646-b94a-d73dcc3bfeb4",
    "7.3": "ae95e505-421b-4e67-923d-a5fa320ad336", "7.4": "7be2e72e-0679-4a1b-8faf-0c1865708b20",
    "7.5": "c5d92e4c-88b2-4a61-8177-85a607af68b6", "7.6": "7077ec61-7553-4890-8b33-364005a590b9",
    "16": "28accb67-755a-4f0a-b735-e2ad5e437be9", "18": "c5a4dd31-38df-447f-8363-1085c03cb3f1",
    "2008": "9ad1a871-80d5-45f2-bc23-e3ad93472189", "2008企业": "42aea2c9-b597-4943-aae7-defa9e19bb4f",
    "2008数据中心": "6ac89f1f-6fe0-49dd-afcb-ce0305f499d6", "2012标准": "8d6ad2f5-7d82-4b03-90a3-5977227e741e",
    "2012数据中心": "906a8bd4-234a-429d-b540-6d2d6b86a83b",
}
if zone_name == "上海":
    image = image_list.get(image_id)
else:
    image = image_list1.get(image_id)

#获取服务器规格
flavorRef_id = input("规格型号:")
flavorRef_list = {
    "2c4g": "s3.large.2", "2c8g": "s3.large.4",
    "4c8g": "s3.xlarge.2", "4c16g": "s3.xlarge.4",
    "8c16g": "s3.2xlarge.2", "8c32g": "s3.2xlarge.4",
    "2c16g": "m6.large.8", "4c32g": "m3.xlarge.8",
}
flavorRef = flavorRef_list.get(flavorRef_id)

#创建包年包月型服务器
def create_server():
    data = {
        "availability_zone": zone,
        "name": server_name,
        "imageRef": image,
        "root_volume": {
            "volumetype": "SATA",
            "size": root_vo
        },
        "data_volumes": [
            {
                "volumetype": "SATA",
                "size": data_vo
            }
        ],
        "isAutoRename": "true",
        "flavorRef": flavorRef,
        "adminPass": root_wd,
        "vpcid": vpc_id,
        "security_groups": [
            {
                "id": sg_id
            }
        ],
        "nics": [
            {
                "subnet_id": subnet_id
            }
        ],
                #弹性ip 全动态按流量计费方式
        "publicip": {
            "eip": {
                "iptype": "5_bgp",
                "bandwidth": {
                    "size": 100,
                    "sharetype": "PER",
                    "chargemode": "traffic"
                },
                "extendparam": {
                    "chargingMode": "postPaid"
                }
            }
        },
        "count": 1,
        "extendparam": {
            "chargingMode": "prePaid",            #包年包月型
            "periodType": "month",
            "periodNum": 1,
            "isAutoRenew": "true",
            "isAutoPay": "true",
        }
    }
    server = conn.ecs.create_server_ext(**data)
    print("服务器创建成功")
    time.sleep(80)
    return server

#查询服务器ip并提取ip
def list_servers():
    servers = conn.compute.servers(limit=1)
    for server_list in servers:
        server_list = str(server_list)
        servers_names = re.findall(r‘.*name=(.*?),.*‘,server_list)
        servers_names = servers_names[0]
        if server_name == servers_names:
            ip = re.findall(r‘\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b‘, server_list)
            print(server_name)
            print(root_wd)
            print("公网:"+ip[1]+‘ ‘+"私有:"+ip[0])
            break

if __name__ == ‘__main__‘:
    test_create_vpc(conn)
    test_subnets(conn)
    security_groups(conn)
    create_server()
    list_servers()

原文地址:https://blog.51cto.com/13856876/2464930

时间: 2024-10-29 21:46:46

华为云SDK调用的相关文章

01.阿里云SDK调用,获取ESC主机详细信息

一:通过python SDK获取云主机的详细信息 1.创建Accessky码(不做展示) 2.通过pip安装SDK模块,这个阿里云帮助里面有,也不做详细展示. 3.详细使用方法看代码 我下面展示的返回的json格式,默认为xml格式. DescribeInstancesRequest 为获取esc详细信息的函数,其他函数可以参考阿里云官方支持,我后续也会更新. #! -*- coding:utf-8 -*- import json from aliyunsdkcore import client

华为云 ocr SDK Status code:400

环境:Python 3.7.1 win10 今天在使用 华为云 ocr SDK 时 出现如下错误: 提示输入参数无效 解决: 下载下来的SDK,有个小坑(下图): request_ocr_service_base64() 的参数option 要为None,可以把 1注释,或者删除 2. 第一篇博客,哈哈 原文地址:https://www.cnblogs.com/duoban/p/11206502.html

王晶:华为云OCR文字识别服务技术实践、底层框架及应用场景 | AI ProCon 2019【华为云技术分享】

演讲嘉宾 | 王晶(华为云人工智能高级算法工程师王晶) 出品 | AI科技大本营(ID:rgznai100) 近期,由 CSDN 主办的 2019 中国AI 开发者大会(AI ProCon 2019)在北京举办.在计算机视觉技术专题,华为云OCR人工智能高级算法工程师王晶分享了“文字识别服务的技术实践.底层框架及应用场景”的主题演讲. 演讲的第一部分,他分享了文字检测和识别的基础知识以及难点和最新进展.第二部分是华为云文字识别服务关键能力.关键技术,以及落地过程中遇到的“坑”,这对其他人工智能产

【我的物联网成长记3】如何开发物联网应用?【华为云技术分享】

[摘要] 物联网应用是设备管理.故障监测.数据分析的重要工具.本文介绍如何基于物联网平台开发应用,包括API.SDK和图形化开发三种方式. -------------------整体方案------------------- 物联网应用是企业和开发者进行设备管理.告警&故障监测.业务监控.数据分析的重要工具.物联网平台屏蔽了设备接入的复杂性和协议的差异性,解耦应用与设备,为上层应用提供统一格式的数据,简化终端厂商开发的同时,也让应用提供商聚焦于自身的业务开发.基于华为物联网平台的应用开发方案如下

阿里云SDK手册之java SDK

进行阿里云sdk开发的前提是已经购买阿里云的相关服务才能调用阿里的相关接口进行开发.最近公司在做云管控的项目,于是进行下摘录总结. 一. 环境准备 阿里云针对不同的开发语言提供不同的sdk,由于项目用的是java语言进行开发,所以下载的是java sdk,介绍的也是java sdk的开发方式. 1.首先下载服务的SDK,阿里云Java SDK支持J2SE Development Kit (JDK) 1.5或以上版本. 2.安装步骤 在解压的文件中可以找到 aliyun-sdk-java-onli

华为云照片的爬虫程序更新(python3.6)

一.背景: 每年终都有一个习惯,就是整理资料进行归档,结果发现手机照片全备份在华为云里,在官网上找了一圈,没找到官方的pc工具用来同步照片. 于是找出上次写的程序,看看能不能爬到数据,然而……果然不好用.因为华为在登录上又增加了一些验证机制,譬如:账号保护 抓了一下报文,发现逻辑变复杂了很多,部分逻辑还封装在js里. 算了,懒得琢磨了,直接用selenium吧. 二.实现思路: 1.用Python + selenium +浏览器 ,人工登录,保存cookie及签名信息. 2.再调用request

Python难吗?华为云学院带你一探究竟!

Python是一直广受大家欢迎的编程语言,简单易学并且功能非常强大.python拥有高效的高级数据结构,并且能够简单并且快速的进行面向对象的编程.python的语法简洁优雅,并且它是动态语言,加上它的语言的可解释性,使其在大多数平台上可以进行一个脚本的编写,还有相应程序的一个开发. 我们将带大家了解python的安装过程和编译,python的基础语法,包括了常用的数据结构,数据类型条件语句循环语句函数模块文件的处理等等,包括如何将学到的python基础知识应用到实际场景中.Python是纯粹的开

容器技术:华为云如何帮助企业落地Kubernetes

作为Kubernetes 最早的采用者之一,华为自2013年起在内部多个产品落地Kubernetes,在这个过程中,围绕着本文上述的三个基本性问题,以及规模化生产环境落地场景,华为发现并解决了一些功能缺失.系统级高可用.可扩展性挑战等问题,并积极回馈给了Kubernetes社区.基于这些场景的落地经验,以及广泛的社区核心特性贡献,华为也顺利成为Kubernetes社区技术监管委员会成员,以及CNCF基金会TOC成员. 一方面基于内部实践的思考,另一方面基于外部各类客户场景的落地经验总结,华为云围

华为云对Kubernetes在Serverless Container产品落地中的实践经验

华为云容器实例服务,它基于 Kubernetes 打造,对最终用户直接提供 K8S 的 API.正如前面所说,它最大的优点是用户可以围绕 K8S 直接定义运行应用. 这里值得一提是,我们采用了全物理机的方案,对于端到端资源利用率有一个很大的提升.而在 K8S 之上我们通过一层封装实现了超规模资源池.大家知道 K8S 现开源的版本最大只能支持到5000节点,并且这是在 Google 云上的验证结果,而在很多其他的云平台往往达不到.主要是受限于底层网络和存储系统. 所以在华为云,我们的做法是通过一层