所有文档

          相关参考 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
          下一篇
          常见问题