相关参考Reference

    Python-SDK

    概述

    本文档主要介绍证书服务 Python SDK的安装和使用。

    在阅读本文档前,您需要先开通证书服务,并了解证书服务的基本知识。若您还不了解证书服务,可以参考IAM产品描述的证书管理部分

    安装SDK工具包

    环境准备

    1. 运行环境
      Python SDK工具包支持在Python 2.7 和Python 3 的环境运行。
    2. 安装pycrypto依赖

      安装SDK之前,需要先执行命令pip install pycrypto安装pycrypto依赖。

      如果安装失败,请执行pip install pycryptodome

    下载和安装

    方式一:通过pip安装

    您可以通过pip安装的方式将百度智能云Python SDK安装到您的环境中。 联网状态下,在命令行中执行如下命令:

    pip install bce-python-sdk

    即可将Python SDK安装到本地。

    方式二:将源码包下载到本地后进行安装

    1. 开发者资源中心下载Python SDK压缩工具包。
    2. 命令行移动到压缩包所在路径,执行如下命令(version替换为包名称中的版本号):

      pip install bce-python-sdk-version.zip  

      即可将Python SDK安装到本地。

    方式三:使用setup.py install文件进行安装

    您也可以解压压缩包后执行如下命令(version替换为包名称中的版本号)

    cd bce-python-sdk-version
    python setup.py install 

    SDK目录结构

    baidubce
        ├── auth                        //公共权限目录
        ├── services                    //服务公共目录
        │   └── cert                    //证书服务目录
        │        ├── cert_client.py     //证书管理服务客户端入口类  
        │        └── cert_model.py      //证书管理服务model,如Request或Response
        └── http                        //Http请求模块

    卸载SDK

    卸载 SDK 时,执行命令pip uninstall bce-python-sdk即可完成卸载。

    初始化

    确认Endpoint

    用户若要自定义域名,可以通过传入ENDPOINT参数来指定。区域的概念请参考区域选择说明

    在开始SDK使用之前,需要您先确定好要在哪个区域进行操作,从而在配置CertClient时将区域对应的Endpoint做为参数填入。

    证书服务目前不区分区域,ENDPOINT统一为:https://certificate.baidubce.com

    获取密钥

    要使用百度智能云产品,您需要拥有一个百度智能云账号和一个有效的 AK(Access Key ID)、SK(Secret Access Key)用来进行签名认证。

    可以通过如下步骤获得并了解您的AK/SK信息:

    1.注册百度智能云账号

    2.创建AK/SK

    获取到密钥后,需要在配置Client时做为参数填入。SDK集成了鉴权认证机制,您不需要关心鉴权背后的运算方法,只需要将AK/SK按要求填入对应的位置,SDK将自动为您完成鉴权相关的工作。

    新建CertClient

    CertClient是证书服务的客户端,为开发者与证书服务进行交互提供了一系列的方法。

    通过AK/SK方式访问证书服务

    1.在新建CertClient之前,需要先创建配置文件对CertClient进行配置,以下将此配置文件命名为cert_sample_conf.py,具体配置信息如下所示:

    # !/usr/bin/env python
    # coding=utf-8
    
    # 导入Python标准日志模块
    import logging
    
    # 从Python SDK导入证书服务配置管理模块以及安全认证模块
    from baidubce.bce_client_configuration import BceClientConfiguration
    from baidubce.auth.bce_credentials import BceCredentials
    
    # 设置CertClient的Host,Access Key ID和Secret Access Key
    cert_host = "certificate.baidubce.com"
    access_key_id = "AK"
    secret_access_key = "SK"
    
    # 设置日志文件的句柄和日志级别
    logger = logging.getLogger('baidubce.services.cert.certclient')
    fh = logging.FileHandler("sample.log")
    fh.setLevel(logging.DEBUG)
    
    # 设置日志文件输出的顺序、结构和内容
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    fh.setFormatter(formatter)
    logger.setLevel(logging.DEBUG)
    logger.addHandler(fh)
    
    # 创建BceClientConfiguration
    config = BceClientConfiguration(credentials=BceCredentials(access_key_id, secret_access_key), endpoint = cert_host)

    注意: 针对日志文件,Logging有如下级别:DEBUG,INFO,WARNING,ERROR,CRITICAL。

    在上面代码中,access_key_id对应控制台中的“Access Key ID”,secret_access_key对应控制台中的“Access Key Secret”,获取方式请参考管理ACCESSKEY

    2.在完成上述配置之后,参考如下代码新建一个CertClient。

    # 导入CertClient配置文件
    import cert_sample_conf
    
    # 导入证书服务相关模块
    from baidubce.services.cert.cert_client import CertClient
    
    # 新建CertClient
    cert_client = CertClient(cert_sample_conf.config)

    配置HTTPS协议访问证书服务

    您可以通过如下两种方式在CERT Python SDK中使用HTTPS访问证书服务:

    • 在endpoint中指定HTTPS:
    config = bce_client_configuration.BceClientConfiguration(
        credentials = bce_credentials.BceCredentials(
            access_key_id = 'your-ak',
            secret_access_key = 'your-sk'
        ),
        endpoint = 'https://certificate.baidubce.com'
    )
    • 通过在protocol中指定https来设置HTTPS协议:
    config = bce_client_configuration.BceClientConfiguration(
        credentials = bce_credentials.BceCredentials(
            access_key_id = 'your-ak',
            secret_access_key = 'your-sk'
        ),
        endpoint = 'certificate.baidubce.com',
        protocol = baidubce.protocol.HTTPS
    )
    client = cert_client.CertClient(config)

    注意: 如果您在指定了endpoint的scheme的同时指定了protocol参数,则以endpoint为准。

    config = bce_client_configuration.BceClientConfiguration(
        credentials = bce_credentials.BceCredentials(
            access_key_id = 'your-ak',
            secret_access_key = 'your-sk'
        ),
        endpoint = 'https://certificate.baidubce.com',
        protocol = baidubce.protocol.HTTPS
        )
    client = cert_client.CertClient(config) 

    配置CertClient

    您可以为CertClient设置一些网络参数:

    # 设置请求超时时间
    cert_sample_conf.config.connection_timeout_in_mills = TIMEOUT
    
    # 设置接收缓冲区大小
    cert_sample_conf.config.recv_buf_size(BUF_SIZE)
    
    # 设置发送缓冲区大小
    cert_sample_conf.config.send_buf_size(BUF_SIZE)
    
    # 设置连接重试策略
    # 三次指数退避重试
    cert_sample_conf.config.retry_policy = BackOffRetryPolicy()
    # 不重试
    cert_sample_conf.config.retry_policy = NoRetryPolicy()

    参数说明

    通过cert_client_configuration能指定的所有参数如下表所示:

    参数 说明
    port 证书服务端口号
    send_buf_size 发送缓冲区大小
    recv_buf_size 接收缓冲区大小
    connection_timeout_in_mills 请求超时时间(单位:毫秒)
    retry_policy 连接重试策略,初始化Client时默认为三次指数退避

    证书管理

    证书管理功能主要用于管理用户的SSL证书,当前支持上传证书。 请求中的参数解释见证书名词解释

    上传证书

    如下代码将上传一个SSL证书:

    # Import CertCreateRequest
    from baidubce.services.cert.cert_model import CertCreateRequest
    
    # Prepare your certificate data
    cert_name = 'certificate name'
    cert_type = 1
    cert_server_data = 'Fill certificate here'
    cert_private_data = 'Fill private key here'
    cert_link_data = "Fill certificate chain here"
    cert_create_request = CertCreateRequest(cert_name, cert_server_data, cert_private_data, cert_link_data, cert_type)
    
    # Create a certificate
    response = cert_client.create_cert(cert_create_request)
    上一篇
    JAVA-SDK
    下一篇
    常见问题