-
请问创建完设备后给的这个请求体和响应体有什么用,没找到放代码的地方,小白一枚~
cliff-runner
发表于2021-03-29 20:48:15
2021-03-29 20:48:15
最后回复
cliff-runner
2021-04-08 17:49:25
1697 4 -
【功能模块】API Explorer add device操作失败【操作步骤&问题现象】1、https://bbs.huaweicloud.com/forum/thread-115663-1-1.html 失败,尝试api方式。2、结果相同,返回013000。3、更换几个*product_id,结果相同。确认截图中显示的产品id所属设备可以正常连接平台。【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
数据湖治理中心DGC中创建的API,每天都会报几次错误,ERRCODE:DLM.4094,同时JSON内部还有一个错误码DAYU.1088,官网上找不到对应的错误码含义
-
【功能模块】javaapidemo 示例代码创建一个设备【操作步骤&问题现象】1、已成功得到token2、修改各种id 字符串3、多次运行CreateDeviceJAVA得到失败码{"error_code":"IOTDA.013000","error_msg":"The product does not exist."}Process finished with exit code 0【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
浏览器操作: 最大化:maximize_window() 最小化:minimize_windows() set_window_size(width, heigth) 前进/后退:forward( ) back( ) 关闭当前窗口/浏览器:close() quit()获取页面标题和当前页面url: 获取页面标题:title 获取页面url:current_url 页面刷新:refresh()元素操作: clear():清除元素内容。 send_keys():向元素输入内容。 click():单击元素。 size:返回元素尺寸。 text:返回元素文本。 get_attribute(obj):返回元素某个属性的值。 location:元素的坐标。 page_source:获取网页源码。鼠标事件: context_click(),右击。 double_click(),左键双击。 drag_and_drop,拖动。 drag_and_drop_by_offset(),拖动到指定位置。 move_to_element(),悬停。 click_and_hold(),单击并按住不放。下拉框: 通过value值选择:select_by_value('value'); 通过文本选择:select_by_visible_text('text'); 通过索引选择:select_by_index(index),索引从0开始。浏览器多窗口处理: 每一个浏览器窗口都有一个唯一的标识符,句柄,通过句柄来判断当前处于哪一个浏览器窗口,webdriver中提供了相应方法来进行浏览器窗口的切换。 window_handles,获取所有浏览器窗口的句柄。 current_window_handle,获取当前浏览器窗口句柄。 switch_to.window('handle'),切换到指定浏览器窗口。 close(),关闭当前浏览器窗口。页面多表单(多框架处理): switch_to.frame(),切换到指定表单。 switch_to.default_content(),切换到最外层表单。 switch_to.parent_frame(),切换到上一级表单。层级定位:先定位A元素,然后定位A下的元素。警告框处理: 定位警告框:switch_to.altert(); accept,接受,相当于点击【确定】 dismiss,解散,相当于点击【取消】定位一组对象:定位到元素后进行批量操作。 find_elements_by_xxxx(),返回一个列表。文件上传: 使用input标签实现的上传:调用send_keys()方法将需要上传的文件路径发送到指定元素即可。 非input标签实现的上传:借助AutoIt,使用 SendKeys第三方库 ,使用win32 GUI等工具实现上传。 截图: 一般在执行用例时,如果用例失败,则将当前窗口截图保存。 方法:get_screenshot_as_file('imgname') 验证码: 屏蔽验证码功能。 将验证码固定。 Python-tesserct模块识别验证码。 键盘事件: 方法:send_keys(cmd)向指定元素发送键盘指令。 Keys.BACK_SPACE,删除。 Keys.SPACE,空格。 Keys.TAB,横向制表符。 Keys.ENTER,回车。 Keys.CONTRAL,'a',全选。 Keys.CONTRAL,'c',复制。 Keys.CONTRAL,'x',剪切。 Keys.CONTRAL,'v',粘贴。 Keys.END,翻到页面底部。 Keys.HOME,翻到页面顶部。 Keys.PAGE_UP,向上翻页。 Key.PAGE-DOWN,向下翻页。多浏览器处理,以及执行JS脚本的方法,后续更新 以上就是我们在做web自动化时经常使用的一下WebDriber APT。
-
【功能模块】App Engine中,库里面的“SmartCampus__InnovateSecurityManagement”,里面的“AR眼镜安防”模块【操作步骤&问题现象】1、现需要与AR眼镜联调测试,但是没法找到华为平台Roma中的测试API服务2、想咨询一下api服务在哪里?【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
SMC3.0 API与2.0有多少变化,没有找到相关文档
-
【功能模块】【ROMA】LiveData的API无法消费topic里的消息【操作步骤&问题现象】发送消息的API,能够成功发送:importClass(com.huawei.livedata.util.MQSUtils); importClass(com.huawei.livedata.lambdaservice.security.CipherUtils); function excute(data) { var obj = JSON.parse(data); var topic_url = "#{mqsHost}"; var topic_appId = "#{publisherAppId}";//这个是指应用的ID。 var topic_passWord = CipherUtils.getPlainCipherText('AppSecretKey');//从密码箱取出请求密钥。 // topic var topic_name = "T_device_msg"; var msg = {}; var body = {}; var utils = new MQSUtils(); var result = ""; var rtnMsg = {}; try { body = obj.hasOwnProperty('body') ? obj.body:{}; msg.body = body; // 发送普通消息 result = utils.sendMsg(topic_url,topic_appId,topic_passWord,topic_name,JSON.stringify(msg)); rtnMsg = { "resCode":0, "resMsg":result }; } catch(exception) { rtnMsg = { "resCode":1, "resMsg":exception +"" }; } return JSON.stringify(rtnMsg); } 2. 消费消息的API:importClass(com.huawei.livedata.util.MQSUtils); importClass(com.huawei.livedata.util.MQSCallback); importClass(com.huawei.livedata.lambdaservice.util.CacheUtils); importClass(com.huawei.livedata.lambdaservice.security.CipherUtils); function excute(data) { var obj = JSON.parse(data); var util = new MQSUtils(); var callback = new MQSCallback(); var cache = new CacheUtils(); var topic_url = "#{mqsHost}"; var appId = obj.env.$appId; var appSecretKey = CipherUtils.getPlainCipherText("AppSecretKey"); //获取网关地址 var apiGwAddress = cache.get("DICT:api_gw_rest_float_addr"); if(apiGwAddress === "" || apiGwAddress === null){ apiGwAddress = cache.get("DICT:api_gw_rest_addr"); } callback.setHost(apiGwAddress); callback.setService("/test/consumer/consumeCallBack"); var headers = { "X-HW-ID":appId, "X-HW-APPKEY":appSecretKey } callback.setHeaders(JSON.stringify(headers)); callback.setMethod("POST"); var result = util.consumerMsg(topic_url,appId,appSecretKey,"T_device_msg",callback); return result; } 3. topic消息轨迹:另外,有没有MQSCallback的文档?
-
sdk: huaweicloud-sdk-projectman版本:3.0.34-rc 调用ListProjectWorkHours按用户查询工时(多项目)接口 api:sdk中封装的实体:类似的问题还有:listProjectsV4
-
参考了之前“[问题求助] 【GIS地图】【引入第三方地图服务】使用地图组件,选择自定义的地图类型,会出现“没有获取到API Connector”的提示”这个帖子里面的解决办法,配置了“API POST Connector”,还是报错,如上图所示;奇怪的是如果我在“地图设置”里面把地图类型设置为百度地图或高德地图就不报错,如果设置为超图、谷歌地图就报错,不知道为什么;
-
签到37天,给自己立个flag,把API Explorer搞起来
-
K8S技术庞杂,内容繁多,密度量大,如果一头扎进官网文档,估计会犯晕。这里提炼概览,对核心概念和流程进行分析讲解,在脑海里重建Master和Worker节点和他们的组件构成。两大角色 K8S有两大角色,一个是Master节点,一个是Worker节点。 其中Master负责管理和调度集群资源,Worker负责提供集群资源。 在一个高可用的集群当中,他俩一般由多个节点构成,这些节点可以是虚拟机也可以是物理机。 Worker提供的节点叫Pod,简单理解Pod就是K8S云平台提供的虚拟机,Pod里头住的是应用容器,比如Docker容器。 大部分情况Pod里只包含一个容器;有时候也包含多个容器,其中一个是主容器,其他是辅助容器。 为了加深理解,这里做个简单类比。Master好比指挥调度员工干活的主管,Worker好比部门当中实际干活的人。 K8S主要解决集群资源调度的问题,当有应用发布请求过来的时候,K8S会根据集群资源的空闲状态,把集群当中空闲的Pod合理的分配到Worker当中;另外,K8S还负责监控集群,当集群中有节点或者Pod挂了,它需要重新协调和启动Pod,保证应用的高可用,这个技术也叫自愈;另外K8S还需要管理集群的网络,保证Pod和服务之间可以互通互联。Master节点和构成Master节点是集群的大脑,它由四大组件构成:etcdetcd是分布式的KV数据库,负责状态存储,所有集群的状态,比如节点Pod发布,配置等等。高可用的etcd集群部署一般要三个节点。etcd可以独立部署,也可以和Master节点一起部署。api server集群的接口和通信总线。kubectl,kubelet,kube-proxy,dashboard,sdk操作背后都是通过api server和集群进行交互。可以理解为etcd的一个代理,是唯一能够直接访问和操作etcd的组件,其他组件都只能依赖api server间接操作etcd。它还是集群的事件总线(EventBus),其他组件可以订阅它,当有事件发生时候,会通知感兴趣的这些组件。scheduler负责集群调度决策。当新的应用请求到达集群,scheduler负责决策相应的Pod应该分布到哪些空闲节点上。controller manager负责保证集群状态最终一致性。它通过api server监控集群的最终状态,确保集群状态和预期状态是一致的。如果一个运用要求发布10个Pod,controller manager会最终启动10个Pod,如果一个Pod挂了,它会负责协调,重新启动Pod。如果Pod启多了,它会协调关闭多余Pod。也就是说,K8S采用的是最终一致调度策略,它是集群自愈背后的实现机制。Worker节点和构成 worker节点是集群资源的提供者,它由这几个组件构成:kubelet向下,它是worker节点的资源管理者,相当于一个agent,它并不是直接管理节点资源,而是委托container runtime进行管理。比如启动、关闭容器、收集容器状态。向上,它负责监听api server产生的事件,根据master的指示,启动或关闭Pod等资源;它也负责将本节点上的状态汇报给master节点。如果说master节点是K8S集群的大脑,那么kubelet节点则是worker节点的小脑。container runtime是节点容器资源的直接管理者。如果采用docker容器,管理的就是docker引擎。如果本地没有镜像缓存,它会到docker register或者docker hub上拉取相依的镜像,然后缓存在本地。kube-proxy 负责管理K8S集群上的服务组件。我们知道Pod是K8S当中一个不固定的概念,为了屏蔽PodIP的变化(包括预期和非预期变化),K8S引入Server组件,并且在调用的时候进行负载均衡。kube-proxy就是实现k8s server背后机制。另外,当需要把K8S当中的服务暴露给外网的时候,也是通过kube0-proxy进行代理转发。发布流程 接下来通过一个发布流程展示这些组件之间是如何配合工作的。向api server发送create new replicaset请求,api server会把请求存储在etcd当中。controller manager会监听到replicset的创建或修改相关事件。controller manager接收到通知,会比较当前集群状态和预知集群状态,它发现不一致,需要创建新的Pods。你通过kubectl提交的发布模板,在api server当中创建预期的Podscheduler监听到需要创建新的Pod资源,它通过调度算法,选择空闲节点,然后跟进api server更新Pod的定义,这个定义将Pod分配到指定的节点上。注意到这一步,应用还没真正发布,controller manager和scheduler只是通过api server更新了预期的集群状态。一旦Pod被指定分配给某个workder节点,api server就会通知相应节点上的kubelet。kubelet接收到通知,就会指示节点上的container runtime,比如说docker engine运行相应的容器。container runtime开始下载镜像,启动容器。kubelet也开始监控容器的运行,到这一步应用容器就开始正式运行了。综合架构 前面对K8S的组件分别进行了分析,接下来我们综合起来看一下它的总体架构。 集群中的Pod通过overlay network相互寻址和通信。实现覆盖网络的技术很多,比如Flannel,Vxlen,Callco,Weave-Net。 另外如果外网流量要访问集群当中的服务,一般要走负载均衡器(Load Balander),再通过kube-proxy间接地转发到服务的Pod上。 除了前面这些组件,外围还包括存储,监控,日志,分析等配套的支撑服务。 对于K8S这种复杂而庞大的系统,我们先要了解它的架构,包括组件的构成和作用,流程,总体架构。帮助我们在头脑当中建立起K8S的架构概念模型,帮助我们在实践中学习和运用好K8S。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签