华为云用户手册

  • 方案优势 华为云AI云存储解决方案的主要优势如下表所示。 表1 华为云AI云存储解决方案的主要优势 序号 主要优势 详细描述 1 存算分离,资源利用率高 GPU/NPU算力和SFS Turbo存储解耦,各自按需扩容,资源利用率提升。 2 SFS Turbo高性能,加速训练过程 训练数据集高速读取,避免GPU/NPU因存储I/O等待产生空闲,提升GPU/NPU利用率。 大模型TB级Checkpoint文件秒级保存和加载,减少训练任务中断时间。 3 数据导入导出异步化,不占用训练任务时长,无需部署外部迁移工具 训练任务开始前将数据从OBS导入到SFS Turbo,训练过程中写入到SFS Turbo的Checkpoint数据异步导出到OBS,均不占用训练任务时长。 SFS Turbo和OBS存储服务之间数据直接导入导出,无需部署外部数据拷贝机器及工具。 4 冷热数据自动流动,降低存储成本 SFS Turbo支持自定义数据淘汰策略,冷数据自动分级到OBS,释放高性能存储空间用于接收新的热数据。 访问冷数据时SFS Turbo从OBS自动加载数据提升访问性能。 5 多AI开发平台、生态兼容 pytorch、mindspore等主流AI应用框架,kubernetes容器引擎、算法开发场景通过文件语义访问共享数据,无需适配开发。 如果您想了解更多本方案相关信息,或在方案使用过程中存在疑问,可通过方案咨询渠道,寻求专业人员支持。
  • 方案架构 针对AI训练场景中面临的问题,华为云提供了基于对象存储服务OBS+高性能文件服务SFS Turbo的AI云存储解决方案,如图所示,华为云高性能文件服务SFS Turbo HPC型支持和OBS数据联动,您可以通过SFS Turbo HPC型文件系统来加速对OBS对象存储中的数据访问,并将生成的结果数据异步持久化到OBS对象存储中长期低成本保存。 图1 基于OBS+SFS Turbo的华为云AI云存储解决方案
  • 配置SFS Turbo数据自动导出到OBS桶 配置自动导出后,训练过程中周期性写入SFS Turbo文件系统的Checkpoint模型文件会自动以异步方式导出到关联的OBS桶中进行长期保存,无需手工导出,异步导出方式不会占用上层训练任务时间。 SFS Turbo的自动导出功能当前处于受限使用状态,请提交工单联系技术支持人员进行配置。 文件导出速度受OBS服务的写入带宽上限影响,默认是16Gbit/s,如果大模型训练生成的Checkpoint文件过大、导出速度过慢,可提交工单申请调大OBS服务的写入带宽。 父主题: 基本配置
  • 配置SFS Turbo数据淘汰策略 SFS Turbo HPC型文件系统绑定OBS后端之后,建议配置缓存数据淘汰功能。SFS Turbo会自动释放设定时间内没有访问过的文件数据内容,仅保留文件元数据,数据内容释放后不占用SFS Turbo文件系统上的存储空间,再次访问该文件时,将重新从OBS中加载文件数据内容。 登录SFS管理控制台。 在文件系统列表中,单击创建的HPC型文件系统名称,进入文件系统详情页面。 在“基本信息”页签,设置冷数据淘汰时间。 图1 设置冷数据淘汰时间 只有已经导出到OBS且满足淘汰时间的数据才会被淘汰。 父主题: 基本配置
  • SFS Turbo容量监控及告警 如果SFS Turbo HPC型文件系统存储空间被写满,会影响业务运行,您可以在CES云监控服务上监控SFS Turbo文件系统的容量使用情况,并创建告警规则,当容量使用率超过一定阈值,可以发送邮件、短信等告警到运维人员。当收到容量监控告警时,您需要及时清理SFS Turbo存储空间、或缩短冷数据淘汰时间加速冷数据淘汰、或对SFS Turbo进行空间扩容。详情可参见SFS Turbo监控指标说明和创建告警规则。
  • 操作流程 本文档介绍面向AI场景如何使用OBS+SFS Turbo的存储加速,流程如图1所示。 图1 面向AI场景使用OBS+SFS Turbo的存储加速方案步骤 表1 面向AI场景使用OBS+SFS Turbo的存储加速流程说明 序号 步骤 说明 1 规划组网和资源 此步骤请提交工单联系技术支持人员进行支撑配置。 2 创建资源 创建VPC:创建1个虚拟私有云和子网。 创建SFS Turbo HPC型文件系统:创建1个SFS Turbo文件系统,文件系统类型选择“HPC型”,存储类型请根据存储容量和性能需求选择,AI场景建议选择250MB/s/TiB及以上的存储类型。 创建OBS桶:创建1个OBS桶,存储类别为“标准存储”,桶策略为“私有”。 创建ModelArts资源池:创建1个专属资源池。 3 基本配置 配置ModelArts和SFS Turbo间网络直通。 创建委托授权ModelArts云服务使用SFS Turbo。 配置ModelArts网络关联SFS Turbo。 配置SFS Turbo和OBS联动。 配置SFS Turbo数据自动导出到OBS桶。 配置SFS Turbo数据淘汰策略。 4 训练 上传数据至OBS并预热到SFS Turbo中。 创建训练任务。 5 例行运维 使用OBS+SFS Turbo的存储加速方案的过程中,您可以进行采取以下运维措施,保证系统正常高效运行: SFS Turbo容量监控及告警。 SFS Turbo性能监控。 调整SFS Turbo数据淘汰策略。 SFS Turbo容量及性能扩容。 OBS性能监控。 如果您想了解更多本方案相关信息,或在方案使用过程中存在疑问,可通过方案咨询渠道,寻求专业人员支持。 父主题: 面向AI场景使用OBS+SFS Turbo的存储加速实践
  • 资源和成本规划 本节介绍最佳实践中资源规划情况,包含以下内容: 表1 资源和成本规划内容说明 维度 说明 资源规划 OBS:存放训练数据集、预训练模型等数据资源的桶,桶存储类别为“标准存储”,桶策略为“私有”。 SFS Turbo:文件系统类型为“HPC型”,存储类型请根据存储容量和性能需求选择,AI场景建议选择250MB/s/TiB及以上的存储类型。 ModelArts:AI开发平台,采用多机多卡分布式训练。 VPC:虚拟私有云和子网。 算法及数据:准备AI训练需要的算法及数据集,如Swin-Transformer算法,及ImageNet21K数据集。 说明: 为了提供最佳加速性能,建议SFS Turbo HPC文件系统和ModelArts资源池就近选择在同一个Region的同一个可用区(AZ)。 成本规划 OBS费用:详见OBS计费说明。 SFS Turbo费用:详见SFS计费说明。 ModelArts费用:详见ModelArts计费说明。 须知: 本文提供的成本预估费用仅供参考,资源的实际费用以华为云管理控制台或价格计算器显示为准。 如果您想了解更多本方案相关信息,或在方案使用过程中存在疑问,可通过方案咨询渠道,寻求专业人员支持。 父主题: 面向AI场景使用OBS+SFS Turbo的存储加速实践
  • 常见问题 可以只使用SFS Turbo HPC型文件系统支撑AI训练吗? 当数据规模较小,不存在冷热数据分级降本诉求,又希望能方便快捷的构建AI训练系统时,可以选择只使用SFS Turbo高性能文件存储支撑AI训练。 可以基于OBS对象存储支撑AI自动驾驶、大模型训练吗? OBS为容量型存储,在时延、带宽等存储性能上无法满足高性能AI训练,建议使用SFS Turbo HPC型高性能文件系统加速AI训练任务,训练速度加快可以节省AI算力费用。 文件系统使用空间不足,可以扩容吗? SFS Turbo文件系统支持在线扩容,扩容过程中挂载文件系统可能失败,建议业务低峰期扩容。 父主题: 面向AI场景使用OBS+SFS Turbo的存储加速实践
  • 使用模拟器接入 下载模拟器(默认是64位操作系统),并启动模拟器,如下图: 界面展示 模拟器提供了界面显示,填写Server地址、设备ID、设备密钥。请根据实际创建的设备信息填写。 Server地址:即域名,参考平台对接信息获取; 设备ID和设备密钥:在这里获取。 不同的Server地址SSL加密接入时要与对应的证书文件匹配使用,证书获取请参考获取资源,需要替换certificate文件夹下的证书,如下图: 用户可以选择设备侧建链时是否为SSL加密,选择Qos方式是0还是1,当前不支持Qos2,可参考使用限制。 新建连接 设备或网关在接入物联网平台时首先需要和平台建立连接,从而将设备或网关与平台进行关联。开发者通过传入设备信息,将设备或网关连接到物联网平台。点击新建连接按钮,域名、设备ID和秘钥正确的情况下,可以看到日志设备连接成功,可在平台查看设备状态,如下图: 订阅Topic 订阅某topic的设备才能接收broker发布的关于该topic的消息,关于平台预置topic可参考Topic定义。 建链后,如果成功订阅Topic,主界面日志栏显示如下信息: 发布Topic 发布Topic是指设备主动向平台上报自己的属性或消息,详细见设备属性上报接口文档。 在模拟器中实现了上报Topic、属性上报功能。 发布Topic后,Demo界面显示如下: 设备上报属性成功后可在“设备详情”页面查看到上报的属性: 接收下发命令 模拟器支持接收平台下发命令的功能,在MQTT建链完成并成功订阅Topic后,可以在控制台设备详情中对该设备进行同步命令下发。下发成功后,在MQTT的回调函数中接收到平台下发给设备的命令。 例如下发参数名为smokeDetector: SILENCE,参数值为50的命令。 同步命令下发成功后,Demo界面显示如下:
  • 使用AT指令定位模组通信问题 IoT Link在与物联网平台连接使用时,可使用AT指令快速定位模组与云端连通性问题,提高开发效率。本节将以“小熊派开发板”为例,介绍如何使用AT指令检测通信模组常见问题,如设备无法上线,数据上报不成功等。 小熊派开发板和电脑已正常连接(确保驱动已安装),并将开发板右上角的拨测开关切换到AT-PC模式。 单击VSCode底部工具栏的“Serial”。 选择2中查看的端口号,波特率设置为9600,然后单击“打开”。 输入“AT+CGATT?”,然后单击“发送”,若返回“+CGATT:1”,表示网络附着成功(附着成功代表NB-IoT联网正常),返回“+CGATT:0”表示网络附着失败(附着失败代表NB-IoT联网异常),请查看SIM卡是否插入正确,或联系运营商检查网络状态。 使用AT指令检测完模组通信后,请将拨测开关拨到AT-MCU模式,以便完成控制台的开发后,将采集到的传感器数据通过通信模组发送到平台。 PC模式是开发板与电脑串口通信,AT指令读写开发板的状态等数据;MCU模式是开发板通过模组上插的SIM连接网络,实现NB-IoT通信。
  • 更多参考 开发产品模型 在产品详情“模型定义”页面,单击“自定义模型”,配置产品的服务。 产品模型设计思路: 表1 设备服务列表 服务类型(ServiceID) 服务描述 Button 实时按键检测 LED LED灯控制 Sensor 实时检测光照强度 Connectivity 实时检测信号质量 服务能力如下表所示。 表2 Button 能力描述 属性名称 数据类型 数据范围 属性列表 toggle int 0 ~ 65535 表3 LED命令列表 能力描述 命令名称 命令字段 字段名称 类型 数据长度 枚举 命令列表 Set_LED 下发命令 LED string 3 ON、OFF 响应命令 Light_state string 3 ON、OFF 表4 Sensor 能力描述 属性名称 数据类型 数据范围 属性列表 luminance int 0 ~ 65535 表5 Connectivity 能力描述 属性名称 数据类型 数据范围 属性列表 SignalPower int -140 ~ -44 ECL int 0 ~ 2 SNR int -20 ~ 30 CellID int 0 ~ 65535 新增服务类型Button 进入“添加服务”页面,填写“服务ID”、“服务类型”和“服务描述”,单击“确定”。 “服务ID”:Button “服务类型”:建议和服务ID保持一致 “服务描述”:实时按键检测 在“Button”的下拉菜单下单击“添加属性”,填写相关信息,单击“确定”。 “属性名称”:toggle “属性描述”:不填写 “数据类型”:int(整型) “访问权限”:可读、可写 “取值范围”:0~65535 “步长”:0 “单位”:不填写 新增服务类型LED 在“模型定义”下单击“添加服务”,填写“服务ID”、“服务类型”和“服务描述”,单击“确定”。 “服务ID”:LED “服务类型”:建议和服务ID保持一致 “服务描述”:LED灯控制 在“LED”的下拉菜单下单击“添加命令”,输入命令名称“Set_LED”。 图14 新增命令 在“新增命令”弹框,分别单击“新增输入参数”和“新增响应参数”,填写相关信息后,单击“确定”。 图15 新增输入参数LED 图16 新增响应参数Light_state 新增服务类型Sensor 在“模型定义”下单击“添加服务”,填写“服务ID”、“服务类型”和“服务描述”,单击“确定”。 “服务ID”:Sensor “服务类型”:和服务ID保持一致 “服务描述”:实时检测光照强度 在“Sensor”的下拉菜单下单击“添加属性”,填写相关信息,单击“确定”。 “属性名称”:luminance “属性描述”:不填写 “数据类型”:int(整型) “访问权限”:可读、可写 “取值范围”:0~65535 “步长”:不填写 “单位”:lux 新增服务类型Connectivity 在“模型定义”下单击“添加服务”,填写“服务ID”、“服务类型”和“服务描述”,单击“确定”。 “服务ID”:Connectivity “服务类型”:建议和服务ID保持一致 “服务描述”:实时检测信号质量 在“Connectivity”的下拉菜单下依次单击“添加属性”,分别添加SignalPower,ECL,SNR,CellID属性,填写相关信息,单击“确定”。 图17 新增SignalPower属性 图18 新增ECL属性 图19 新增SNR属性 图20 新增CellID属性 开发编解码插件 在产品详情插件开发页面,选择“图形化开发”,单击“图形化开发”。 在“在线开发插件”区域,单击“新增消息”。 请按照本文档提供的操作开发编解码插件,确保添加字段的顺序和本文档提供的顺序保持一致。 新增消息Report_Connectivity,配置示例如下: 消息名:Report_Connectivity 消息类型:数据上报 添加响应字段:是 响应数据:AAAA0000(默认) 图21 配制示例 在“新增消息”页面,单击“添加字段”,勾选“标记为地址域”,添加地址域字段messageId,然后单击“确认”。 图22 添加地址域字段 单击“添加字段”,添加SignalPower字段,填写相关信息后,单击“确认”。 名字:SignalPower 数据类型:int16s(16位有符号整型) 图23 添加SignalPower字段 单击“添加字段”,添加ECL字段,填写相关信息后,单击“确认”。 名字:ECL 数据类型:int16s(16位有符号整型) 图24 添加ECL字段 单击“添加字段”,添加SNR字段,填写相关信息后,单击“确认”。 名字:SNR 数据类型:int16s(16位有符号整型) 图25 添加SNR字段 单击“添加字段”,添加CellID字段,填写相关信息后,单击“确认”。 名字:CellID 数据类型:int32s(32位有符号整型) 图26 添加CellID字段 完成消息Report_Connectivity的配置后,单击“确认”。 新增消息Report_Toggle,配置示例如下: 消息名:Report_Toggle 消息类型:数据上报 添加响应字段:是 响应数据:AAAA0000(默认) 图27 新增消息 在“新增消息”页面,单击“添加字段”,勾选“标记为地址域”,添加地址域字段messageId,然后单击“确认”。 图28 添加字段 单击“添加字段”,添加toggle字段,填写相关信息后,单击“确认”。 名字:toggle 数据类型:int16u(16位无符号整型) 图29 添加toggle字段 完成消息Report_Toggle的配置后,单击“确认”。 新增消息Report_Sensor,配置示例如下: 消息名:Report_Sensor 消息类型:数据上报 图30 新增消息 在“新增消息”页面,单击“添加字段”,勾选“标记为地址域”,添加地址域字段messageId,然后单击“确认”。 图31 添加字段 单击“添加字段”,添加data字段,填写相关信息后,单击“确认”。 名字:data 数据类型:int16u(16位无符号整型) 图32 添加data字段 完成消息Report_Sensor的配置后,单击“确认”。 新增消息Set_LED,配置示例如下: 消息名:Set_LED 消息类型:命令下发 添加响应字段:是 图33 新增消息 在“新增消息”页面,单击“添加字段”,勾选“标记为地址域”,添加地址域字段messageId,然后单击“确认”。 图34 添加字段 单击“添加字段”,勾选“标记为响应标识字段”,添加响应标识字段 mid,然后单击“确认”。 图35 添加字段 单击“添加字段”,添加“LED”字段,然后单击“确认”。 名字:LED 数据类型:string 长度:3 图36 添加字段 在“新增消息”页面,单击“添加响应字段”,勾选“标记为地址域”,添加地址域字段 messageId,然后单击“确认”。 单击“添加响应字段”,勾选“标记为响应标识字段”,然后单击“确认”。 单击“添加响应字段”,勾选“标记为命令执行状态字段”,添加命令执行状态字段 errcode,然后单击“确认”。 图37 添加字段 单击“添加响应字段”,添加Light_state响应字段,填写相关信息,单击“确认”。 字段名称:Light_state 数据类型:string 长度:3 图38 添加字段 完成消息 Set_LED 的配置后,单击“确认”。 拖动右侧“设备模型”区域的属性字段、命令字段和响应字段,与数据上报消息、命令下发消息和命令响应消息的相应字段建立映射关系。 单击“保存”,并在插件保存成功后单击“部署”,将编解码插件部署到物联网平台。
  • 概述 M2M(Machine-to-Machine),物联网平台支持基于MQTT协议实现设备间的消息通信。设备的连接和通信请求都交由平台承担,客户只需要关注自己的业务实现。可以实现设备间1到1、1到N、N到N的使用。IoT环境具有规模巨大的特点,设备之间通信没有限制、通信混乱,将产生巨大的安全隐患;特别是在比较复杂的环境下,没有对设备进行发布与订阅的权限配置,将导致设备处理数据困难、设备间通信管理难等问题;而策略的使用可以解决该问题,因此建议最好与设备策略一同使用。
  • Topic分类 表1 topic分类 Topic类别 描述 系统Topic 平台预先定义了各种设备和平台通信的Topic,具体Topic列表和功能说明可参考Topic定义。 自定义Topic 用户可以自定义Topic,设备和平台间可以基于用户自定义的Topic进行通信。 自定义topic分类: 在产品中定义需要使用的Topic,这类Topic有$oc/devices/{device_id}/user/前缀,消息上报或者消息下发时平台会校验Topic是否在产品中定义,未在产品中定义的Topic会被平台拒绝。使用方式可以参考链接使用自定义Topic进行通信的最佳实践。 使用非$oc开头的自定义Topic,如/aircondition/data/up进行消息通信,这类Topic平台不校验Topic权限,根据MQTT协议定义的规则进行Topic的消息上下行通信。使用方式可以参考链接设备自定义Topic迁移上云。
  • 产品模型开发方法 物联网平台提供了多种开发产品模型的方法,您可以根据自己需求,选择对应的方法开发产品模型。 自定义模型(在线开发):从零自定义构建产品模型。详细参考在线开发产品模型。 上传模型文件(离线开发):将本地写好的产品模型上传到平台。详细请参考离线开发产品模型。 Excel导入:通过导入文件的方式快速开发产品模型。详细请参考Excel导入。 导入库模型(平台预置产品模型):您可以使用平台预置的产品模型,快速完成产品开发。当前平台提供了标准模型和厂商模型。标准模型遵循行业标准的产品模型,适用行业内绝大部分厂商设备,而厂商模型针对设备类型发布的产品模型,适用于用行业内少量厂家设备。您可以根据实际需求选择相应的产品模型。
  • 什么是产品模型 产品模型用于描述设备具备的能力和特性。开发者通过定义产品模型,在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的服务、属性、命令等信息,如颜色、开关等。当定义完一款产品模型后,再进行创建设备时,就可以使用在控制台上定义的产品模型。 产品模型包括产品信息和服务能力: 产品信息 描述一款设备的基本信息,包括设备类型、协议类型。 例如:设备类型为“WaterMeter”,协议类型为“CoAP”。 服务能力 描述设备具备的业务能力。将设备业务能力拆分成若干个服务后,再定义每个服务具备的属性、命令以及命令的参数。 以水表为例,水表具有多种能力,如上报水流、告警、电量、连接等各种数据,并且能够接受服务器下发的各种命令。产品模型文件在描述水表的能力时,可以将水表的能力划分五个服务,每个服务都需要定义各自的上报属性或命令。说明如下: 服务类型 描述 基础(WaterMeterBasic) 用于定义水表上报的水流量、水温、水压等参数,如果需要命令控制或修改这些参数,还需要定义命令的参数。 告警(WaterMeterAlarm) 用于定义水表需要上报的各种告警场景的数据,必要的话需要定义命令。 电池(Battery) 定义水表的电压、电流强度等数据。 传输规则(DeliverySchedule) 定义水表的一些传输规则,必要的话需要定义命令。 连接(Connectivity) 定义水表连接参数。 具体定义几个服务是非常灵活的,如上面的例子可以将告警服务拆分成水压告警服务和流量告警服务,也可以将告警服务合入到水表基础服务中。
  • IoTDA控制台功能依赖的身份策略 表7 IoTDA控制台依赖服务的身份策略 控制台功能 依赖服务 需配置角色/策略权限 规则-数据转发 BCS bcs:huaweiCloudChainInstance:list bcs:huaweiCloudChainEndpoint:list bcs:huaweiCloudChainChain:getChain cs:huaweiCloudChainInstance:get bcs:huaweiCloudChainContract:list 规则-数据转发 FunctionGraph FunctionGraph:function:list 规则-设备联动 SMN smn:topic:list 规则-数据转发 IAM iam:projects:listProjects iam:permissions:listRolesForAgency iam:permissions:listRolesForAgencyOnProject iam:permissions:checkRoleForAgencyOnProject iam:permissions:grantRoleToAgencyOnProject iam:roles:listRoles iam:agencies:createAgency iam:agencies:listAgencies 规则-数据转发 DMS(Kafka) dms:instance:list dms:instance:get 设备-软固件升级 OBS obs:bucket:ListAllMyBuckets obs:bucket:ListBucket 运维监控-统计报表 AOM aom:alarm:list aom:metric:list 运维监控-运行日志 LTS lts:topics:list lts:groups:list lts:groups:create lts:topics:create 企业版实例-泛协议接入 SWR swr:repository:listNamespaces swr:instance:listCenters IoTDA实例-购买实例 VPC vpc:vpcs:list vpc:subnets:get vpc:securityGroups:get IoTDA实例-购买实例 VPCEP vpcep:endpointServices:list vpcep:endpointServices:get 实例详情-标签 TMS tms:predefineTags:list
  • 身份策略权限管理 IoTDA服务支持身份策略授权,如表5所示,包括了IoTDA身份策略中的所有系统身份策略。身份策略授权场景的系统身份策略与角色与策略授权场景的并不互通。 表5 IoTDA系统身份策略 系统身份策略 描述 策略类别 IoTDAFullAccessPolicy 拥有对设备接入服务的所有执行权限 系统身份策略 IoTDAReadOnlyPolicy 拥有对设备接入服务的只读权限 系统身份策略 表6 IoTDA常用操作与系统权身份策略的关系列出了IoTDA常用操作与系统身份策略的授权关系,您可以参照该表选择合适的系统身份策略。 表6 IoTDA常用操作与系统权身份策略的关系 操作名称 IoTDAFullAccessPolicy IoTDAReadOnlyPolicy 创建产品 √ x 查询产品列表 √ √ 查询产品 √ √ 修改产品 √ x 删除产品 √ x 创建设备 √ x 查询设备列表 √ √ 查询设备 √ √ 修改设备 √ x 删除设备 √ x 重置设备密钥 √ x 冻结设备 √ x 解冻设备 √ x 重置设备指纹 √ x 灵活搜索设备列表 √ √ 下发设备消息 √ x 查询设备消息 √ √ 查询指定消息id的消息 √ √ 下发广播消息 √ x 下发设备命令 √ x 下发异步设备命令 √ x 查询指定id的命令 √ √ 修改设备属性 √ √ 下发设备消息 √ x 查询指定消息id的消息 √ √ 查询产品列表 √ √ 创建产品 √ x 查询产品 √ √ 修改产品 √ x 删除产品 √ x 查询设备列表 √ √ 注册设备 √ x 查询设备 √ √ 修改设备 √ x 删除设备 √ x 重置设备密钥 √ x 查询设备影子数据 √ √ 配置设备影子预期数据 √ x 下发设备命令 √ x 查询设备属性 √ √ 修改设备属性 √ x 查询设备属性 √ √ 查询设备影子数据 √ √ 配置设备影子预期数据 √ x 创建AMQP队列 √ x 查询AMQP列表 √ √ 查询单个AMQP队列 √ √ 删除AMQP队列 √ x 生成接入凭证 √ x 创建规则触发条件 √ x 查询规则条件列表 √ √ 查询规则条件 √ √ 修改规则触发条件 √ x 删除规则触发条件 √ x 创建规则动作 √ x 查询规则动作列表 √ √ 查询规则动作 √ √ 修改规则动作 √ x 删除规则动作 √ x 创建规则 √ x 查询规则列表 √ √ 修改规则 √ x 查询规则 √ √ 删除规则 √ x 修改规则状态 √ x 添加设备组 √ x 查询设备组列表 √ √ 查询设备组 √ √ 修改设备组 √ x 删除设备组 √ x 管理设备组中的设备 √ √ 查询设备组设备列表 √ √ 绑定标签 √ x 解绑标签 √ x 按标签查询资源 √ √ 查询资源空间列表 √ √ 创建资源空间 √ x 查询资源空间 √ √ 删除资源空间 √ x 创建批量任务 √ x 查询批量任务列表 √ √ 查询批量任务 √ √ 批量任务重试 √ x 批量任务停止 √ x 删除批量任务 √ x 上传批量任务文件 √ x 查询批量任务文件列表 √ √ 删除批量任务文件 √ x 上传设备CA证书 √ x 获取设备CA证书列表 √ √ 删除设备CA证书 √ x 验证设备CA证书 √ x 创建OTA升级包 √ x 查询OTA升级包列表 √ √ 获取OTA升级包详情 √ √ 删除OTA升级包 √ x 查询隧道列表 √ √ 创建设备隧道 √ x 删除设备隧道 √ x 查询隧道详情 √ √ 修改设备隧道 √ x
  • ServiceComb错误码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 分类 状态码 错误码 错误信息 描述 处理措施 公共错误码 400 400001 Invalid parameter(s) 非法参数 根据错误提示中的规则,修改提示中的参数。 404 404001 ErrRecoudNotExists 该资源不存在 输入正确的查找条件。 409 409001 ErrRecordAlreadyExists 该资源已存在 请勿创建相同的记录。 500 500003 Internal server error 内部错误 内部错误请联系运维支持。 微服务 400 400002 ErrUnhealthy 服务处于不健康状态 请稍后重试或联系技术支持工程师。 400010 Micro-service already exists 服务已存在 修改创建微服务body体中的serviceId或微服务描述信息。 400011 ErrUnavailableBackend 没有可提供的后台实例 请稍后重试或联系技术支持工程师。 400012 Micro-service does not exist 服务不存在 请输入有效的serviceId。 400013 Micro-service has deployed instance(s) 无法删除该微服务,该微服务已部署实例 请先将实例下线,再删除微服务;或强制删除微服务(url中添加query参数“force=true”)。 400014 Undefined schema id schemaId不存在 请输入有效的schemaId。 400015 Not allowed to modify schema schema不允许修改 该schema已注册,不支持修改。 400016 Schema does not exist schema不存在 请先注册schema再查询。 400017 Instance does not exist 实例不存在 请输入有效的instanceId。 400018 ErrTagNotExists 标签不存在 通常出现在查询接口,表明标签不存在,业务根据返回值做恰当后续处理。 400019 ErrRuleAlreadyExists 规则已经存在 重复创建规则,通常可以忽略该错误。 400020 ErrBlackAndWhiteRule 错误的黑白名单 根据错误提示修改参数。 400021 ErrModifyRuleNotAllow 不允许更改规则 必须修改版本号才允许更改微服务信息。 400022 ErrRuleNotExists 规则不存在 通常出现在查询接口,表明规则不存在,业务根据返回值做恰当后续处理。 400023 Cosumer(s) depends on this micro-service 无法删除该微服务,该微服务被其他微服务依赖 可选择强制删除微服务(url中添加query参数“force=true”)。 400024 ErrPermissionDeny 权限不允许 使用合理的账号进行操作。 400025 ErrEndpointAlreadyExists 端口已存在 建议排查端口是否被其它实例占用。 400026 Micro-service version does not exist 微服务版本不存在 请输入正确的版本号或版本号范围。 400100 Not enough quota 配额不足 对应的资源(如微服务、实例、schema)配额不足,请删除部分资源再创建。 401 401204 No authorization header 认证不通过 若微服务引擎开启了安全认证,此参数必填。否则,无此参数。 开启了安全认证的微服务引擎Token,格式为: Authorization:Bearer {Token} Token获取方法,请参考获取ServiceComb引擎专享版用户Token。 401201 Request unauthorized 认证不通过 输入的Authorization不合法. 403 403001 ErrForbidden 操作受限 使用合理的账号进行操作。 500 500011 Registry service is unavailable 后端错误 内部错误请联系运维支持。 500101 ErrUnavailableQuota 没有提供配额 请稍后重试或联系技术支持工程师。 500605 NA 配置中心Etcd连接失败 请稍后重试或联系技术支持工程师。 认证 401 401202 User name or password is wrong 账号名称或密码错误 输入正确的账号名称和密码。 父主题: 错误码
  • 场景示例:核对资源用量是否与实际相符 假设用户在2023/04/08 10:09:06购买了一个按需计费GeminiDB Redis实例,并在2023/04/08 12:09:06时刻将其删除。 GeminiDB Redis实例流水账单 按需计费GeminiDB Redis实例按秒计费,每一个小时整点结算一次费用,您可以在流水账单中核对每一个计费周期的信息是否和实际相符,流水账单中计费资源是分开计费的,以“GeminiDB Redis存储”为例,具体如表1所示。 表1 GeminiDB Redis流水账单 产品类型 GeminiDB Redis 产品 GeminiDB Redis存储 计费模式 按需 消费时间 2023/04/08 10:09:06 ~ 2023/04/08 12:09:06时段计费系统将生成6笔流水账单,对应每一个计费周期,分别如下: 2023/04/08 10:09:06 ~ 2023/04/08 11:00:00 2023/04/08 11:00:00 ~ 2023/04/08 12:00:00 2023/04/08 12:00:00 ~ 2023/04/08 12:09:06 官网价 官网价=使用量*单价*容量 本例中,在第一个计费周期内GeminiDB Redis的使用量为3054秒,单价可在云数据库 GeminiDB价格详情中查询,以0.00378元/GB/小时为例,容量为40GB,那么官网价=(3054 ÷ 3600) * 0.00378 * 40 = 0.128268 元。同理,您可以计算剩余计费周期内资源的官网价。 优惠金额 用户使用云服务享受折扣优惠如商务折扣、伙伴授予折扣以及促销优惠等减免的金额。基于官网价的优惠金额。 抹零金额 华为云产品定价精度为小数点后8位(单位:元),因此在计费过程中会产生小数点后8位的资源使用费用。而在实际扣费时,仅扣除到小数点后2位,小数点后第3位到第8位部分金额会被舍弃,这种舍弃部分的金额称作抹零金额。 以第一个计费周期为例,抹零金额为:0.008268 元 应付金额 应付金额=官网价-优惠金额-抹零金额 以第一个计费周期为例,假设优惠金额为0,那么应付金额=0.128268 - 0 - 0.008268 = 0.12 元。 GeminiDB Redis实例明细账单 明细账单可以通过多维度展示客户账单的详细信息。一般通过设置统计维度为“按使用量”,统计周期为“按账期”来统计资源在某个月份的总开销,以“GeminiDB Redis存储”为例,建议您核对表2所示的信息是否和实际相符。 表2 GeminiDB Redis明细账单 产品类型 GeminiDB Redis 产品 GeminiDB Redis存储 计费模式 按需 资源名称/ID GeminiDB Redis的名称和ID 例如:nosql-b388,21e8811a64bf4de88bc2e2556da17983in12 规格 GeminiDB Redis存储 使用量类型 按需计费GeminiDB Redis的使用量类型为“时长” 单价 按需计费模式为简单定价(使用量*单价)时提供单价信息,其他的定价(如EIP公网带宽的阶梯定价)等不提供单价。 按需计费GeminiDB Redis属于简单定价,您可以在云数据库 GeminiDB价格详情中查中查询单价。 单价单位 在云数据库 GeminiDB价格详情中查中查询到的单价单位:元/GB/小时 使用量 按产品单价单位显示使用量,GeminiDB Redis的单价单位为元/GB/小时,因此使用量以小时为单位。本例中,2023/04/08 10:09:06 ~ 2023/04/08 12:09:06时段总计使用量为2小时。 使用量单位 小时 官网价 官网价=使用量*单价*容量 本例中,使用量为2小时,单价可在云数据库 GeminiDB价格详情中查中查询,以0.00378元/GB/小时为例,容量为40GB,那么官网价=2 * 0.00378 * 40 = 0.3024 元。 优惠金额 用户使用云服务享受折扣优惠如商务折扣、伙伴授予折扣以及促销优惠等减免的金额。基于官网价的优惠金额。 应付金额 用户使用云服务享受折扣优惠后需要支付的费用金额。
  • 分析GeminiDB Mongo数据库的慢请求 GeminiDB Mongo数据库服务默认开启了慢请求Profiling ,系统自动将请求时间超过500ms的执行情况记录到对应数据库下的“system.profile”集合中。 通过Mongo Shell连接GeminiDB Mongo实例。 执行以下命令,进入指定数据库,以“test”为例。 use test 查看是否生成慢sql集合“system.profile”。 show collections; 回显中有“system.profile”,说明产生了慢SQL,继续执行下一步。 回显中没有“system.profile”,说明未产生慢SQL,该数据库不涉及慢请求分析。 查看数据下的慢请求日志。 db.system.profile.find().pretty() 分析慢请求日志,查找CPU使用率升高的原因。 下面是某个慢请求日志示例,可查看到该请求进行了全表扫描,扫描了1561632个文档,没有通过索引进行查询。 { "op" : "query", "ns" : "taiyiDatabase.taiyiTables$10002e", "query" : { "find" : "taiyiTables", "filter" : { "filed19" : NumberLong("852605039766") }, "shardVersion" : [ Timestamp(1, 1048673), ObjectId("5da43185267ad9c374a72fd5") ], "chunkId" : "10002e" }, "keysExamined" : 0, "docsExamined" : 1561632, "cursorExhausted" : true, "numYield" : 12335, "locks" : { "Global" : { "acquireCount" : { "r" : NumberLong(24672) } }, "Database" : { "acquireCount" : { "r" : NumberLong(12336) } }, "Collection" : { "acquireCount" : { "r" : NumberLong(12336) } } }, "nreturned" : 0, "responseLength" : 157, "protocol" : "op_command", "millis" : 44480, "planSummary" : "COLLSCAN", "execStats" : { "stage" : "SHARDING_FILTER", [3/1955] "nReturned" : 0, "executionTimeMillisEstimate" : 43701, "works" : 1561634, "advanced" : 0, "needTime" : 1561633, "needYield" : 0, "saveState" : 12335, "restoreState" : 12335, "isEOF" : 1, "invalidates" : 0, "chunkSkips" : 0, "inputStage" : { "stage" : "COLLSCAN", "filter" : { "filed19" : { "$eq" : NumberLong("852605039766") } }, "nReturned" : 0, "executionTimeMillisEstimate" : 43590, "works" : 1561634, "advanced" : 0, "needTime" : 1561633, "needYield" : 0, "saveState" : 12335, "restoreState" : 12335, "isEOF" : 1, "invalidates" : 0, "direction" : "forward", "docsExamined" : 1561632 } }, "ts" : ISODate("2019-10-14T10:49:52.780Z"), "client" : "xxx.xxx.xxx.xxx", "appName" : "MongoDB Shell", "allUsers" : [ { "user" : "__system", "db" : "local" } ], "user" : "__system@local" } 在慢请求日志中,您需要重点关注以下关键字。 全集合(全表)扫描:COLLSCAN 当一个操作请求(如QUERY、UPDATE、DELETE)需要全表扫描时,将大量占用CPU资源。在查看慢请求日志时,发现COLLSCAN关键字,很可能是这些查询占用了CPU资源。 如果该类操作请求较为频繁,建议您对查询的字段建立索引进行优化。 全集合(全表)扫描:docsExamined 通过查看参数“docsExamined”的值,可以查看一个查询扫描了多少文档。该值越大,请求的CPU使用率越高。 不合理的索引:IXSCAN、keysExamined 索引不是越多越好,过多索引会影响写入和更新的性能。 如果您的应用偏向于写操作,建立索引可能会降低写操作的性能。 通过查看参数“keysExamined”的值,可以查看一个使用了索引的查询,扫描了多少条索引。该值越大,请求的CPU使用率越高。 如果索引建立不太合理,或者匹配的结果很多。该场景下,即便使用了索引,请求的CPU使用率也不会降低很多,执行的速度也会很慢。 示例:对于某个集合的数据,a字段的取值很少(只有1和2),而b字段的取值很多。 如下所示,要实现 {a: 1, b: 2} 这样的查询。 db.createIndex( {a: 1} ) 效果不好,因为a相同取值太多 db.createIndex( {a: 1, b: 1} ) 效果不好,因为a相同取值太多 db.createIndex( {b: 1 } ) 效果好,因为b相同取值很少 db.createIndex( {b: 1, a: 1 }) 效果好,因为b相同取值少 关于{a: 1}与{b: 1, a: 1}的区别,可参考官方文档。 大量数据排序:SORT、hasSortStage 当查询请求中包含排序时,“system.profile”集合中的参数“hasSortStage”的值为“true”。如果排序无法通过索引实现,将在查询结果中进行排序。由于排序将占用大量CPU资源,该场景下,需要通过对经常排序的字段建立索引进行优化。 当您在“system.profile”集合中发现SORT关键字时,可以考虑通过索引来优化排序。 其他操作如建立索引、Aggregation(遍历、查询、更新、排序等动作的组合)也可能占用大量CPU资源,但本质上也适用以上几种场景。更多Profiling的设置,请参见官方文档。
  • 分析服务能力 经过前面数据库正在执行的请求和慢请求的分析和优化,所有的请求都使用了合理的索引,CPU的使用率相对趋于稳定。如果经过前面的分析排查,CPU使用率仍然居高不下,则可能是因为当前实例已达到性能瓶颈,不能满足业务需要,此时您可以通过如下方法解决。 通过查看监控信息分析实例资源的使用情况,详情请参见查看监控指标。 对GeminiDB Mongo进行规格变更或者添加分片数量。具体操作请根据当前的实例类型参考如下文档。 添加节点数据量。 变更实例的CPU和内存。
  • 分析GeminiDB Mongo数据库正在执行的请求 通过Mongo Shell连接GeminiDB Mongo实例。 执行以下命令,查看数据库当前正在执行的操作。 db.currentOp() 回显如下: { "raw" : { "shard0001" : { "inprog" : [ { "desc" : "StatisticsCollector", "threadId" : "140323686905600", "active" : true, "opid" : 9037713, "op" : "none", "ns" : "", "query" : { }, "numYields" : 0, "locks" : { }, "waitingForLock" : false, "lockStats" : { } }, { "desc" : "conn2607", "threadId" : "140323415066368", "connectionId" : 2607, "client" : "xxx.xxx.xxx.xxx:xxx", "appName" : "MongoDB Shell", "active" : true, "opid" : 9039588, "secs_running" : 0, "microsecs_running" : NumberLong(63), "op" : "command", "ns" : "admin.", "query" : { "currentOp" : 1 }, "numYields" : 0, "locks" : { }, "waitingForLock" : false, "lockStats" : { } } ], "ok" : 1 }, ... } client:发起请求的客户端。 opid:操作的唯一标识符。 secs_running:该操作已经执行的时间,单位:秒。如果该字段返回的值特别大,需要查看请求是否合理。 microsecs_running:该操作已经执行的时间,单位:微秒。如果该字段返回的值特别大,需要查看请求是否合理。 op:操作类型。通常是query、insert、update、delete、command中的一种。 ns:操作目标集合。 其他参数详见db.currentOp()命令官方文档。 根据命令执行结果,分析是否有异常耗时的请求正在执行。 如果业务日常运行的CPU使用率不高,由于执行某一操作使得CPU使用率过高,导致业务运行缓慢,该场景下,您需要关注执行耗时久的请求。 如果发现异常请求,您可以找到该请求对应的opid,执行db.killOp(opid)命令终止该请求。
  • 任务状态说明 实时灾备提供了多种任务状态,以便区分不同阶段的灾备任务。 实时灾备任务的状态和说明,请参见表1。 表1 实时灾备任务状态和说明 状态 说明 创建中 正在创建数据复制服务需要用到的灾备实例。 配置 灾备实例创建成功,但还没有启动任务,可以继续配置任务。 冻结 账户余额小于或等于0元,系统对该用户下的实例进行冻结。 等待启动 已经下发了定时启动任务到灾备实例上,等待灾备实例启动任务。 启动中 正在启动灾备任务。 启动失败 实时灾备任务启动失败。 初始化 正在进行业务数据库到灾备数据库的全量数据初始化。 初始化完成 已完成灾备任务的初始化。 灾备中 持续进行从业务数据库到灾备数据库的增量数据灾备。 倒换中 正在进行灾备任务的主备倒换。 已暂停 实时灾备步任务已暂停。 灾备异常 灾备阶段中,任务出现异常。 结束任务 释放该灾备实例和资源。 结束任务中 正在释放灾备任务所使用的灾备实例和资源。 结束任务失败 释放灾备任务所使用的实例和资源失败。 已结束 灾备任务所使用的灾备实例释放成功。 对于创建失败的任务,DRS默认保留3天,超过3天将会自动结束任务。 对于未启动、状态为配置中的任务,DRS默认保留3天,超过3天DRS会自动删除后台资源,当前任务状态不变。当用户再次配置时,DRS会重新申请资源。 已删除的灾备任务在状态列表中不显示。 父主题: 任务生命周期
  • 资源规划 表1 资源规划 类别 子类 规划 备注 VPC VPC名称 vpc-src-172 自定义,易理解可识别。 所属Region 测试Region 现网实际选择时建议选择和自己业务区最近的Region,减少网络时延。 可用区 可用区3 - 子网网段 172.16.0.0/16 子网选择时建议预留足够的网络资源。 子网名称 subnet-src-172 自定义,易理解可识别。 本地Oracle数据库 名称 orcl 自定义,易理解可识别。 规格 16vCPUs | 32GB - 数据库版本 11.2.0.1 - 数据库用户 test_info 可以自定义用户,但是迁移时最小权限为:CREATE SESSION,SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY, EXECUTE_CATALOG_ROLE GaussDB 实例名 gauss-b193-cent 自定义,易理解可识别。 数据库版本 GaussDB 2.7企业版 - 实例类型 主备版 本示例中为主备版实例。 部署形态 独立部署 - 事务一致性 强一致性 - 存储类型 超高IO - 可用区 可用区2 本示例中选择了单可用区,实际建议选择多可用区,以提高实例的高可用性。 性能规格 通用增强Ⅱ型 8 vCPUs | 64GB 本示例中为测试实例,选择较小的测试规格,实际选择规格以业务诉求为准。 存储空间 480G 本示例中为测试实例,选择较小的存储空间,实际选择存储空间大小以业务诉求为准。 加密磁盘 不加密 本示例中选择磁盘不加密,选择加密后会提高数据安全性,但对数据库读写性能有少量影响,实际请按照业务使用策略进行选择。 DAS登录数据库 数据库引擎 GaussDB - 数据库来源 GaussDB 勾选本示例中创建的GaussDB实例 数据库名称 postgres - 登录用户名 root - 密码 - 本示例中创建的GaussDB实例root用户密码 UGO迁移任务 数据库评估任务名 Oracle-Centralized 自定义。 对象迁移任务名 Oracle-GaussDB-Centralized 自定义。 源数据库引擎 Oracle 11g - 目标数据库引擎 GaussDB 2.8主备版 - 网络类型 公网网络 本示例中采用公网网络。 DRS迁移任务 迁移任务名 DRS-test-info 自定义。 目标库名称 test_database_info 自定义,易理解可识别,但是需要确保兼容模式为Oracle模式。 源数据库引擎 Oracle - 目标数据库引擎 GaussDB主备版 - 网络类型 公网网络 本示例中采用公网网络。 父主题: 本地Oracle同步到GaussDB主备版
  • 安全认证概述 开启了安全认证的ServiceComb引擎专享版,通过微服务控制台提供了基于RBAC(Role-Based Access Control,基于角色的访问控制)的系统管理功能。权限与角色相关联,您可以使用关联了admin角色权限的账号创建新账号,根据实际业务需求把合适的角色同账号关联。使用该账号的用户则具有对该ServiceComb引擎的相应的访问和操作权限。 ServiceComb引擎专享版开启了安全认证之后,所有调用的API都需要先获取token才能调用,认证流程请参考服务中心RBAC说明。 开启了安全认证的ServiceComb引擎专享版,在使用安全认证前需要完成以下工作: 创建安全认证账号名和密码 配置微服务安全认证的账号名和密码 框架支持安全认证功能的版本要求:Spring Cloud需要集成Spring Cloud Huawei 1.6.1及以上版本,Java Chassis需要2.3.5及以上版本。 老版本未开启安全认证的ServiceComb引擎专享版,升级到新版本并开启安全认证的场景,请参考管理ServiceComb引擎专享版安全认证。 父主题: 使用安全认证
  • 开发流程说明 开发微服务应用 如果您已经完成了微服务应用的开发,可以跳过本流程,进入准备环境。 进行微服务应用开发,首先需要进行技术选型。技术选型是一个复杂的问题,技术决策者需要考虑使用的技术是否容易被团队成员掌握,技术能否满足项目对于功能、性能、可靠性方面的要求,还需要考虑商业服务等多方面的因素。本文档不探讨技术选型,假设技术团队已经选择了适合自己的开发框架。大部分技术团队都会选择开源框架来构建业务。 开发微服务应用的具体内容,请参考开发微服务应用。 使用Spring Cloud,通常会使用下面的技术进行本地微服务开发: 使用Java Chassis,通常会使用下面的技术进行本地微服务开发: 准备环境 创建云上环境,以支持ServiceComb引擎接入调试、云上应用部署和使用ServiceComb引擎功能。一般情况下,会创建一个测试环境和一个生产环境。通过ServiceStage,能够非常方便的管理云上环境,详细内容请参考准备环境。 对接微服务应用 用于微服务应用对接ServiceComb引擎,涉及到对已经开发好的应用的配置文件、构建脚本的修改。修改完成后,需要对应用重新编译、打包,通过ServiceStage将应用包部署到ServiceComb引擎,详细内容请参考对接微服务应用。 部署微服务应用 开发完成的微服务应用,通过ServiceStage部署到ServiceComb引擎,详细内容请参考部署微服务应用。 使用ServiceComb引擎功能 对于持续发展的应用系统,都会持续完善和迭代,每个迭代可能需要对微服务应用进行更新升级,需要使用更多的ServiceComb引擎功能。持续迭代的功能演进,会重复上面的应用开发、编译、打包和部署环节。详细内容请参考使用ServiceComb引擎功能。
  • 开发能力要求 本文档的主要目的就是说明这些开源微服务开发框架如何接入和使用ServiceComb引擎的功能,假设您已经熟悉和掌握如下开发能力: 使用Java语言进行微服务开发。假设您已经基于一种ServiceStage支持的微服务开发框架开发了应用系统,并期望将应用系统托管在ServiceComb引擎上运行。本文档提供微服务应用接入ServiceComb引擎的相关技术支持。开源微服务开发框架如何使用不是本文档的范围,您可以通过开源社区获取相关微服务开发框架的入门材料和开发指南。 理解注册中心、配置中心在微服务应用中的作用,并在项目中搭建和使用注册中心。不同的微服务开发框架默认支持的开源注册中心会有差异,理解注册中心的作用,可以更加容易的更换注册中心。 熟悉应用部署,请参考创建并部署组件。
  • Spring Cloud微服务组件配置安全认证账号名和密码 配置文件配置方式 为微服务的“bootstrap.yml”文件增加以下配置,若已配置请忽略。 spring: cloud: servicecomb: credentials: account: name: test #结合用户实际值配置 password: mima #结合用户实际值配置 cipher: default 用户密码password默认为明文存储,无法保证安全。建议您对密码进行加密存储,请参考自定义实现password的加密存储算法。 环境变量注入方式 为微服务添加如表1所示环境变量。 添加环境变量,请参考管理应用环境变量。 表1 环境变量 环境变量 说明 spring_cloud_servicecomb_credentials_account_name 结合用户实际值配置。 spring_cloud_servicecomb_credentials_account_password 结合用户实际值配置。 说明: 用户密码password默认为明文存储,无法保证安全。建议您对密码进行加密存储,请参考自定义实现password的加密存储算法。
  • Java Chassis微服务组件配置安全认证账号名和密码 配置文件配置方式 为微服务的“microservice.yml”文件增加以下配置,若已配置请忽略。 servicecomb: credentials: rbac.enabled: true #结合用户实际值配置 cipher: default account: name: test #结合用户实际配置 password: mima #结合用户实际配置 cipher: default 用户密码password默认为明文存储,无法保证安全。建议您对密码进行加密存储,请参考配置安全认证参数。 环境变量注入方式 为微服务添加如表2所示环境变量。 添加环境变量,请参考管理应用环境变量。 表2 环境变量 环境变量 说明 servicecomb_credentials_rbac_enabled true:开启安全认证。 false:不开启安全认证。 servicecomb_credentials_account_name 结合用户实际值配置。 servicecomb_credentials_account_password 结合用户实际值配置。 说明: 用户密码password默认为明文存储,无法保证安全。建议您对密码进行加密存储,请参考配置安全认证参数。
  • 操作步骤 进入购买微服务引擎专享版页面。 参考下表设置参数,参数前面带*号的是必须设置的参数。 参数 说明 *计费模式 选择计费方式,目前支持: 包年/包月 按需计费 *企业项目 选择微服务引擎所在的项目,可在下拉框中搜索和选择需要的企业项目。 *选择实例数 选择引擎规格。 *引擎类型 选择微服务引擎的类型。 引擎类型为集群,其为集群模式部署,主机级容灾。 *ServiceComb引擎名称 输入ServiceComb引擎的名称,例如:cse-lhy-nodelete。 *可用区 选择可用区。 *网络 选择已创建的虚拟私有云及子网,可在下拉框中搜索和选择合适的虚拟私有云和子网。 描述 单击,输入引擎描述信息,例如:体验快速创建微服务引擎。 标签 用于标识云资源,当您拥有相同类型的许多云资源时,可以使用标签按各种维度(例如用途、所有者或环境)对云资源进行分类。 您可以单击“ 添加标签”,在“添加标签”弹框输入标签键和标签值,添加标签,标签的命名规则请参见管理标签。在“添加标签”弹框,可单击“ 新增标签”同时添加多个标签,也可单击标签后的,删除该标签。 *安全认证 开启了“安全认证”的ServiceComb引擎专享版,通过微服务引擎控制台提供了基于RBAC(Role-Based Access Control,基于角色的访问控制)的系统管理功能。 选择“开启安全认证”: 根据业务需要确认是否需要开启“编程接口安全认证”。 开启编程接口安全认证后,需要在微服务的配置文件中添加对应用户的账号密码,否则服务无法注册到引擎。 关闭编程接口安全认证,微服务的配置文件中无需配置账号密码即可将服务注册到引擎,效率性能更高,建议用于VPC内访问时使用。 输入root账号的“密码”,并在“再次输入密码”输入框输入密码进行确认。 密码请妥善保管,以免遗失。 选择“关闭安全认证”: 关闭安全认证功能,可以在实例创建完成后再设置开启。 *购买时长 计费模式选择“包年/包月”时需要设置。可设置是否开通自动续费。 单击“立即购买”,进入引擎信息确认界面。 单击“提交”,等待引擎创建完毕。 微服务引擎创建完成,大约需要31分钟。 微服务引擎创建成功后,“状态”为“可用”。查看微服务引擎状态,请参考查看ServiceComb引擎信息。 如果微服务引擎创建失败,可在操作日志页面上查看失败原因并处理后可进行以下操作: 可在“微服务引擎信息”区域,单击“重试”重新创建。 如果重试失败,可删除创建失败的微服务引擎,删除微服务引擎,请参考删除ServiceComb引擎专享版。
共100000条