所有文档

          Elasticsearch BES

          集群

          创建集群

          如下代码可以新建一个集群,集群包含1个es_node节点和1个kibana节点。

          def create_cluster_example(self):
              """
              创建集群
              """
              # 创建集群的名称
              # 支持字母(a-z及A-Z)、数字(0-9),长度小于20个字符
              name = 'your cluster name'
              
              # 创建集群的密码
              # 支持小写字母(a-z)、大写字母(A-Z)、数字(0-9)、下划线(_) ,并且至少包含其中三种, 长度6~12个字符
              password = 'your cluster password'
              
              # 设置节点类型信息
              # type表示节点的类型;es_node表示es节点、kibana表示kibana节点
              # instance_num表示节点的数量
              modules = [Module(type='es_node', instance_num=1), Module(type='kibana', instance_num=1)]
              
              # 创建集群的版本,sdk支持的版本是'7.4.2'、'6.5.3'、'5.5.0',其中创建'6.5.3'、'5.5.0'版本需要提工单进行开通
              version = '7.4.2'
          
              # 设置资源配置类型(见代码下方说明)
              slot_type = 'calculate_v1'
          
              # 设置创建集群时用的可用区(见代码下方说明)     
              available_zone = 'available_zone'
          
              # 设置安全组ID(见代码下方说明)
              security_group_id = 'security_group_id'
          
              # 设置子网ID(见代码下方说明)
              subnet_uuid = 'subnet_uuid'
          
              # 设置创建集群时用的VPC(见代码下方说明)
              vpc_id = 'vpc_id'
            
              # 创建集群计费信息
              # payment_type表示付费方式,'postpay'表示后付费、'prepay'表示预付费
              # time表示购买时长,单位是月;payment_type为'postpay'时,设置为0
              billing = Billing(payment_type='postpay', time=0)
          
              response = client.create_cluster(name=name,
                                               password=password,
                                               modules=modules,
                                               version=version,
                                               slot_type=slot_type,
                                               available_zone=available_zone,
                                               security_group_id=security_group_id,
                                               subnet_uuid=subnet_uuid,
                                               vpc_id=vpc_id,
                                               billing=billing)
              self.assertEqual(type(response), baidubce.bce_response.BceResponse)
              
              # 输出响应
              print(response)
              if response.success:
                  # 执行成功
                  print(response.status)  # http响应码
                  print(response.result)  # 返回结果
              else:
                  # 执行失败
                  print(
                      response.status,  # http响应码
                      response.code,    # 错误码
                      response.error.message  # 报错信息
                  )

          请求参数说明

          名称 类型 是否必须 参数描述
          name str
          password str 操作ES所需的密码
          modules Module数组 节点信息
          version str 集群版本
          slot_type str 资源配置类型
          available_zone str 可用区
          security_group_id str 安全组ID
          subnet_uuid str 子网ID
          vpc_id str 虚拟网络ID
          billing ClusterBilling 集群计费信息

          Module

          名称 类型 参数描述
          type String 节点的类型;es_node表示es节点、kibana表示kibana节点
          instanceNum Int 节点数量

          ClusterBilling

          名称 类型 参数描述
          payment_type str 计费方式;postpay表示后付费、prepay表示预付费
          time int 购买时长(后付费为0),单位是月

          资源配置类型设置请参考节点配置类型按需创建集群

          获取vpc id方式(可用区域、安全组ID、子网ID参考vpc id方式)

          1.获取VPC ID(vpc_id):详见文档链接

          2.获取可用区域(available_zone)、子网uuid(subnet_uuid):详见文档链接

          3.获取安全组ID(security_group_id):详见文档链接

          返回结果说明

          response

          名称 类型 参数描述
          success bool 操作是否成功
          status int 状态码
          result OrderUuidResult 订单创建成功响应订单Id

          OrderUuidResult

          名称 类型 参数描述
          order_id str 订单ID
          1. 创建BES请求是一个异步请求,成功后返回200和订单ID表明订单生成,后续可以通过查询集群列表查看集群创建进度。 response.result结果为:{order_id:u'your order id'}

          扩容集群

          支持对BES集群扩容操作(Kibana节点不支持扩容),具体可参考以下代码。

          def resize_cluster_example(self):
          
              # 指定集群的名称
              name = 'your cluster name'
              
              # 指定付费方式,'postpay'表示后付费、'prepay'表示预付费
              payment_type = 'postpay'
              
              # 指定集群id
              cluster_id = 'your cluster id'
              
              # 集群版本
              version = '7.4.2'
          
              # 扩容信息
              # 设置实例类型type='es_node' 节点配置类型 slot_type = 'calculate_v1',扩容节点数量 desire_instance_num=2 
              modules_resize = [
                  Module(type='es_node', slot_type='calculate_v1', version=version, desire_instance_num=2)]
          
              # 区域    
              region = 'bj'
              response = client.resize_cluster(name=name,
                                               payment_type=payment_type,
                                               cluster_id=cluster_id,
                                               region=region,
                                               modules=modules_resize)
              self.assertEqual(type(response), baidubce.bce_response.BceResponse)
              if response.success:
                  print(response.status)  # http响应码
                  print(response.result)  # 返回结果
              else:
                  print(
                      response.status,  # http响应码
                      response.code,  # 错误码
                      response.error.message  # 报错信息
                  )

          请求参数说明

          名称 类型 是否必须 参数描述
          name str 集群名称
          payment_type str 计费方式;postpay表示后付费、prepay表示预付费
          cluster_id str 集群ID
          region str 地域
          modules Module数组 节点扩容信息

          Module

          名称 类型 是否必须 参数描述
          desire_instance_num int 节点数量
          slot_type str 资源配置类型
          type str 节点的类型;es_node表示es节点、kibana表示kibana节点
          version str 集群版本

          返回结果说明

          response

          名称 类型 参数描述
          success bool 操作是否成功
          status int 状态码
          result OrderUuidResult 订单创建成功响应订单Id

          OrderUuidResult

          同上

          1. 扩容BES请求是一个异步请求,成功后返回200和订单ID表明扩容订单生成,后续可以通过查询集群列表查看集群创建进度。 response.result结果为:{order_id:u'your order id'}

          查询集群列表

          如下代码可以罗列出属于请求调用者的所有集群。

          def get_cluster_list_example(self):
              response = client.get_cluster_list(page_no=1, page_size=100)
              self.assertEqual(type(response), baidubce.bce_response.BceResponse)
              page = response.page
              if page is None:
                  return
              for cluster in (page.result or []):
                  print(cluster.cluster_id)

          请求参数说明

          名称 类型 是否必须 参数描述
          page_no int 页数
          page_size int 页大小

          返回结果说明

          response

          名称 类型 参数描述
          success bool 操作是否成功
          status int 状态码
          page ListPageResponse 集群信息列表

          ListPageResponse

          名称 类型 参数描述
          page_no int 页数
          page_size int 页大小
          total_count int 集群个数
          result ClusterSummaryInfo数组 集群信息

          ClusterSummaryInfo

          名称 类型 参数描述
          cluster_id str 集群Id
          cluster_name str 集群名称
          create_time str 创建时间
          actual_status str 实际状态
          running_time str 运行时长
          billing BesClusterBillingResponse 集群计费信息

          actual_status取值说明:

          取值 说明
          Initializing 正在创建
          Deleting 删除中
          Stopping 正在停止
          Running 运行中
          Starting 正在启动
          Stopped 已停止
          Deleted 删除中
          Unknown 异常状态

          BesClusterBillingResponse

          名称 类型 参数描述
          payment_type str 支付方式

          查询集群详情

          使用以下代码可以查询指定BES集群的详细信息。

          def get_cluster_detail_example(self):
              cluster_id = 'your cluster id'
              response = client.get_cluster_detail(cluster_id=cluster_id)
              self.assertEqual(type(response), baidubce.bce_response.BceResponse)
              print(response)

          请求参数说明

          名称 类型 是否必须 参数描述
          cluster_id str 集群Id

          返回结果说明

          response

          名称 类型 参数描述
          success bool 操作是否成功
          status int 状态码
          result ClusterDetail 集群详细信息

          ClusterDetail

          名称 类型 参数描述
          cluster_id str 集群Id
          cluster_name str 集群名称
          admin_username str 管理员名称
          desire_status str 设备状态
          status str 实际状态
          es_url str ES服务器访问路径
          kibana_url str Kibana服务器访问路径
          es_eip str ES公网访问IP
          kibana_eip str Kibana公网访问IP
          modules ModuleInfoResponse 数组 节点信息列表
          instances InstanceInfoResponse 数组 节点实例列表
          expire_time str 终止时间
          region str 所属地区
          vpc str 虚拟网卡
          subnet str 子网
          available_zone str 可用区
          security_group str 安全组
          billing BesClusterBillingResponse 集群计费信息

          ClusterDetail.status 取值同 ClusterSummaryInfo.actual_status;

          ModuleInfoResponse

          名称 类型 参数描述
          type str type表示节点的类型;es_node表示es节点、kibana表示kibana节点
          version str 集群版本
          slot_type str 资源配置类型
          slot_description str 资源配置类型描述
          actual_instance_num int 实例数量

          InstanceInfoResponse

          名称 类型 参数描述
          instance_id str 节点实例Id
          status str 节点实例状态
          module_type str 表示节点的类型;es_node表示es节点、kibana表示kibana节点
          module_version str 节点实例所属集群版本
          host_ip str 主机Ip

          InstanceInfoResponse.status 取值同 ClusterSummaryInfo.actual_status;

          停止集群

          使用以下代码可以停止集群。

          def stop_cluster_example(self):
              cluster_id = 'your cluster id'
              response = client.stop_cluster(cluster_id=cluster_id)
              if response.success:
                  # 执行成功
                  print(response.status)  # http响应码
              else:
                  # 执行失败
                  print(
                      response.status,  # http响应码
                      response.code,    # 错误码
                      response.error.message  # 报错信息
                  )

          请求参数说明

          名称 类型 是否必须 参数描述
          cluster_id str 集群Id

          返回结果说明

          response

          名称 类型 参数描述
          success bool 操作是否成功
          status int 状态码
          result str 常量字符串

          启动集群

          使用以下代码可以启动集群。

          def start_cluster_example(self):
              cluster_id = 'your cluster id'
              response = client.start_cluster(cluster_id=cluster_id)
              if response.success:
                  # 执行成功
                  print(response.status)  # http响应码
              else:
                  # 执行失败
                  print(
                      response.status,  # http响应码
                      response.code,    # 错误码
                      response.error.message  # 报错信息
                  ) 

          请求参数说明

          名称 类型 是否必须 参数描述
          cluster_id str 集群Id

          返回结果说明

          response

          名称 类型 参数描述
          success bool 操作是否成功
          status int 状态码
          result str 常量字符串

          删除集群

          使用以下代码可以删除一个ES集群。

          def delete_cluster_example(self):
              cluster_id = 'your cluster id'
              response = client.delete_cluster(cluster_id=cluster_id) 
              if response.success:
                  # 执行成功
                  print(response.status)  # http响应码
              else:
                  # 执行失败
                  print(
                      response.status,  # http响应码
                      response.code,    # 错误码
                      response.error.message  # 报错信息
                  )

          请求参数说明

          名称 类型 是否必须 参数描述
          cluster_id str 集群Id

          返回结果说明

          response

          名称 类型 参数描述
          success bool 操作是否成功
          status int 状态码
          result str 常量字符串

          续费列表

          使用以下代码查询续费列表。

          def get_renew_list_example(self):
              # 页数 
              page_no=1
              # 页大小
              page_size=2
              # 排序规则:desc降序、asc升序
              order='desc'
              # 排序字段
              order_by='expireTime'
              # 多少天内过期(与当前时间比较)
              days_to_expiration=70
          
              response = self.client.get_renew_list(page_no=1,
                                                    page_size=2,
                                                    order='desc',
                                                    order_by='expireTime',
                                                    days_to_expiration=70)
              self.assertEqual(type(response), baidubce.bce_response.BceResponse)
              print(response)
              page = response.page
              if page is None:
                  return
              for cluster in (page.result or []):
                  print('cluster.cluster_id:' + cluster.cluster_id)

          请求参数说明

          名称 类型 是否必须 参数描述
          order str 排序规则
          order_by str 排序字段
          page_no int 页数
          page_size int 页大小
          days_to_expiration int 与当前时间比较,还有多少天过期,-1为不限制

          返回结果说明

          response

          名称 类型 参数描述
          success bool 操作是否成功
          status int 状态码
          page BesRenewListResponse 集群列表

          BesRenewListResponse

          名称 类型 参数描述
          cluster_id str 集群ID
          cluster_name str 集群名称
          region str 区域
          expired_time str 到期时间
          cluster_status str 集群状态

          BesRenewListResponse.cluster_status 取值同 ClusterSummaryInfo.actual_status;

          续费操作

          使用以下代码进行续费操作。

          def renew_cluster_example(self):
              cluster_id = 'your cluster id'
              # 续费时长,单位:月
              time = 1
              response = self.client.renew_cluster(cluster_id=cluster_id, time=time)
              print(response)

          请求参数说明

          名称 类型 是否必须 参数描述
          cluster_id str 集群ID
          time int 续费时长,单位:月

          返回结果说明

          response

          名称 类型 参数描述
          success bool 操作是否成功
          status int 状态码
          result OrderUuidResult 订单创建成功响应订单Id

          OrderUuidResult

          名称 类型 参数描述
          order_id str 订单ID

          创建自动续费规则

          使用以下代码创建自动续费规则。

          def create_auto_renew_rule_example(self):
              cluster_id = 'cluster_id'
              cluster_ids = [cluster_id]
              user_id = 'user_id'
              renew_time_unit = 'month'
              renew_time = 2
              region = 'bj'
              response = client.create_auto_renew_rule(cluster_ids=cluster_ids, user_id=user_id, region=region,
                                                            renew_time_unit=renew_time_unit, renew_time=renew_time)
              assertEqual(type(response), baidubce.bce_response.BceResponse)
              print(response)

          请求参数说明

          名称 类型 是否必须 参数描述
          cluster_ids str数组 集群ID数组
          user_id str 用户ID
          region str 区域;详见BesClient说明页
          renew_time_unit str 续费时间单位 支持month,year
          renew_time int 续费时长

          返回结果说明

          response

          名称 类型 参数描述
          success bool 操作是否成功
          status int 状态码
          result str 常量字符串

          更新自动续费规则

          使用以下代码更新自动续费规则。

          def update_auto_renew_rule_example(self):
              cluster_id = 'cluster_id'
              renew_time_unit = 'month'
              renew_time = 3
              response = client.update_auto_renew_rule(cluster_id=cluster_id,
                                                       renew_time_unit=renew_time_unit,
                                                       renew_time=renew_time)
              assertEqual(type(response), baidubce.bce_response.BceResponse)
              print(response)

          请求参数说明

          名称 类型 是否必须 参数描述
          cluster_id str 集群ID
          renew_time_unit str 续费时间单位 支持month,year
          renew_time int 续费时长

          返回结果说明

          response

          名称 类型 参数描述
          success bool 操作是否成功
          status int 状态码
          result str 常量字符串

          删除自动续费规则

          使用以下代码删除自动续费规则。

          def delete_auto_renew_rule_example(self):
              cluster_id = 'cluster_id'
              response = client.delete_auto_renew_rule(cluster_id=cluster_id)
              assertEqual(type(response), baidubce.bce_response.BceResponse)
              print(response)

          请求参数说明

          名称 类型 是否必须 参数描述
          cluster_id str 集群ID
          renew_time_unit str 续费时间单位 支持month,year
          renew_time int 续费时长

          返回结果说明

          response

          名称 类型 参数描述
          success bool 操作是否成功
          status int 状态码
          result str 常量字符串

          查看自动续费规则列表

          使用以下代码查询自动续费规则列表。

          def get_auto_renew_rule_list_example(self):
              response = self.client.get_auto_renew_rule_list()
              self.assertEqual(type(response), baidubce.bce_response.BceResponse)
              print(response)

          请求参数说明

          使用创建client的Ak、SK对应的账户进行查询,不需要显示传递参数

          返回结果说明

          response

          名称 类型 参数描述
          success boolean 操作是否成功
          status int 状态码
          result BesAotuRenewListResponse数组 续费信息列表

          BesAotuRenewListResponse

          名称 类型 参数描述
          uuid str 续费规则的ID
          user_id str 用户ID
          cluster_id str 集群信息
          region str 区域
          renew_time_unit str 续费时间单位 支持month,year
          renew_time int 续费时长
          create_time str 创建时间
          update_time str 修改时间
          上一篇
          BesClient
          下一篇
          实例