• [产品体验官] 华为云性能测试服务CPTS体验报告
                        华为云性能测试服务CPTS体验报告                    体验官-wyxtnbp 很高兴能够再次参加华为云产品的体验评测,这次体验的是华为云性能测试服务CPTS。什么是CPTS呢?CPTS——云性能测试服务(Cloud Performance Test Service)是一项为基于HTTP/HTTPS/TCP等协议构建的云应用提供性能测试的服务。服务支持快速模拟大规模并发用户的业务高峰场景,可以很好的支持报文内容和时序自定义、多事务组合的复杂场景测试,测试完成后会为您提供专业的测试报告呈现您的服务质量。 下面开始体验,进入云性能测试服务控制台:https://console.huaweicloud.com/cpts,根据提示同意授权。在CPTS控制台的总览页面点击“领取免费套餐包”,请您耐心等待几秒钟,红色置灰表示领取成功。 第一步: 领取成功后,我们开始创建测试工程及测试事务1. 在 CPTS 控制台的左侧导航栏中选择“测试工程”,单击“创建测试工程”。 2. 填写工程名称,点击“确定”,测试工程创建完成。3. 点击测试工程名称或编辑事务模型按钮,进行测试工程编辑。4. 在事务模型页签下,单击“添加事务”,输入事务名称,默认常规事务,点击确定。5. 在该事务下单击“添加请求信息”,配置报文数据。选择协议类型:HTTP; 请求方式:GET; 输入响应超时:5000;请求链接: http://114.115.206.64:30336/product/searchAll ; 单击确定。 第二步: 创建测试任务 1. 选择测试任务页签,点击 “添加任务”,输入任务名称,默认时长模式,单击确定。 2. 在该测试任务下,单击 添加事务,选择创建测试工程定义的事务,单击 对勾。 3. 对该事务进行阶段定义。点击“添加阶段”,默认按时长模式,输入并发用户数(< 100)及持续时间,单击确定。  第三步: 启动压测,查看报告。 1. 选择测试任务,单击“启动”。 2. 选择共享资源组(支持 100 并发的免费额度),单击“启动”。 3. 任务启动完成后,单击“查看报告” 这个地方一直没有正常返回过,手打了几次地址,删除重建也不行,不清楚自己哪一步出问题了!后续在研究下。  第四步: 体验特性  1.1 全局变量使用场景:例如需要用户名密码的业务,需要使用不同的用户名以及对应密码模拟多用户设置全局变量1 登录CPTS控制台,在左侧导航栏中选择“测试工程”。单击待编辑测试工程后的“编辑事务模型”。2 在“事务模型”页签中,单击“全局变量”。更加详细的参数设置可以参考https://support.huaweicloud.com/usermanual-cpts/cpts_01_0033.html   1.2 域名绑定 使用场景:通过配置DNS地址池,实现域名与地址的映射,在URL定义域名,通过DNS地 址池自动化获取IP。 前提条件当报文请求连接中使用域名时,才可以进行域名绑定操作。1 登录CPTS控制台,在左侧导航栏中选择“测试工程”。单击待编辑测试工程后的“编辑事务模型”。2 在“事务模型”页签中,单击“更多 > 域名绑定”。 前面提到一个前提条件,当报文请求连接中使用域名时,才可以进行域名绑定操作,所以这里暂无需要绑定的域名。更加详细的参数设置可以参考https://support.huaweicloud.com/usermanual-cpts/cpts_01_0052.html   1.3 响应提取  使用场景:如果同一事务中存在多个报文,通过正则表达式把前一个报文的输出提取出 来,作后一个报文的输入。  添加请求信息(响应提取)例如,在电商抢购场景中,您搜索对应的商品之后购买该产品,可使用响应提取功能,提取“搜索”报文得到的商品id作为下一个“购买”报文的输入参数。说明:响应提取不支持跨事务提取,即从事务A的报文的响应中提取值作为事务B报文的输入。响应提取的变量为局部变量。1 登录CPTS控制台,在左侧导航栏中选择“测试工程”。单击待编辑事务模型工程后的“编辑事务模型” 2 在“事务模型”页签中,单击待添加请求信息事务下的 3 设置请求类型为“响应提取”。其中带“*”标志的参数为必填参数 响应提取示例例如,前一个报文响应的报文内容如下图所示:如果想要获取token值的,可通过正则表达式"token"\s*:\s*"(.*?)"提取,响应提取的设置如下所示。 更加详细的参数设置可以参考https://support.huaweicloud.com/usermanual-cpts/cpts_01_0035.html   1.4 检测点 使用场景:检查点是指通过自定义校验信息来验证服务端的返回内容是否正确。添加请求信息(检查点)说明:请根据被测应用的实际返回值填写。若不设置,默认检查点为响应码2XX。1 登录CPTS控制台,在左侧导航栏中选择“测试工程”。单击待编辑事务模型工程后的“编 辑事务模型”。2 在“事务模型”页签中,单击待添加请求信息事务下的“添加请求信息”3 请求类型设置为“检查点”。参照下图设置基本信息,其中带“*”标志的参数为必填参 数 更加详细的参数设置可以参考https://support.huaweicloud.com/usermanual-cpts/cpts_01_0014.html   1.5 抓包 使用场景:在压测过程中抓取的报文内容,初步对压测结果进行判断 使用指南:在启动压测之后,找到对应的抓包分析,选择对应的场景,点击开始分析,查 看对应的结果。  1.6 脚本录制  使用场景:CPTS支持使用基于Chrome浏览器(支持26及以上版本)插件的录制工具,在被压测系统中进行手工操作,捕获请求内容,生成json文件。录制下来的脚本模拟了用户 真实的操作行为,减少手工编写报文的工作量,方便用户使用CPTS系统。导入录制脚本使用限制云性能测试录制工具需要使用版本为26及以上的Chrome浏览器。说明:单击浏览器右上角,选择“帮助>关于chrome”即可查看当前浏览器版本。下载并安装谷歌录制插件1 下载Chrome录制工具插件:注意:使用版本为73及以上的 Chrome浏览器安装第三方扩展程序时可能会出现程序包无效:“CRX_HEADER_INVALID”错误,如下图所示,图1 “CRX_HEADER_INVALID”错误此时请进行以下操作:1 右击下载链接将插件安装包另存,将插件安装包的后缀名由.crx改为.rar或.zip。2 使用解压工具对安装包进行解压。3 打开浏览器的扩展程序,开启开发者模式,单击“加载已解压的扩展程序”,加载上图中 解压得到的文件夹,即可完成安装。 URL框内输入chrome://extensions/,进入扩展程序安装页面。 录制脚本使用CPTS录制工具录制脚本。 筛选录制内容单击“导出”,复选框选择需要导出的请求,单击“确认导出”,弹出“导出内容”对话框。单击“生成json文件”,保存文件到本地。 关闭录制工具所在的页签,即可关闭录制工具。 导入录制的脚本登录CPTS控制台,在左侧导航栏中选择“测试工程”,单击待编辑事务模型工程后的“编辑事务模型”在 “事务模型”页签中,单击“ 导入脚本”。脚本类型选择“手动录制脚本”。选择事务和脚本录制文件。更加详细的指南可以参考https://support.huaweicloud.com/usermanual-cpts/cpts_01_0045.html  1.7 调试  使用场景:新增或修改事务后,可通过调试快速发现语法或配置错误。调试事务前提条件确保资源组状态为“运行中”。确保资源组的管理节点上的32001和32002端口在安全组被开启。确保资源组的管理节点和被压测的应用之间网络互通。 1 登录CPTS控制台,在左侧导航栏中选择“测试工程”。单击待调试事务所在工程后的“编辑事务模型”。2 单击待调试事务后的“调试”。3 单击“启动调试”,选择资源组进行调试,如下图所示  更详细的指南请参考https://support.huaweicloud.com/usermanual-cpts/cpts_01_0027.html 1.8 启动压测  使用场景:事务可以被多个测试任务复用,针对每个事务可以定义多个测试阶段,并对每 个阶段分别定义持续时间和并发用户数,模拟流量波峰波谷的复杂场景。 前提条件已添加事务。确保资源组状态为“运行中”。确保资源组的管理节点上的32001和32003端口在安全组被开启。确保资源组的执行节点和被压测的应用之间网络互通。1 登录CPTS控制台,在左侧导航栏中选择“测试工程”,单击待操作工程后的“编辑事务模型”2 创建测试任务,具体操作请参见创建测试任务。3 创建完成后,单击任务后的。4 在“启动测试任务”对话框中,选择“资源组类型”,如下图所示 更详细参数设置请参考https://support.huaweicloud.com/usermanual-cpts/cpts_01_0016.html  第五步:选择体验特性2.1 websocket 协议 使用场景:支持websocket协议的压力测试使用限制WEBSOCKET协议不能与其他协议请求添加在同一事务下1 登录CPTS控制台,在左侧导航栏中选择“测试工程”,单击待编辑事务模型工程后的“编辑事务模型”。2 在“事务模型”页签中,单击待添加请求信息事务下的“添加请求信息”3 在“添加请求信息”页面下“协议类型”选择“WEBSOCKET”。更详细的指南请参考https://support.huaweicloud.com/usermanual-cpts/cpts_01_0058.html  至此,体验流程过了一遍,总体来说,CPTS使用非常方便,对于常规的应用服务协议能够很方便的运行测试,免去了自己线下构建测试系统的工作,节约了很多时间成本,也减轻了工作人员的工作负担。阿里云的PTS我也看了下,我个人更倾向于华为云的CPTS,主要还是源于我对华为的青睐,其实也有一些可以提升改进的地方,比如压测中的一些可执行操作,调速等等;压测报告,测试分析及调优,希望可以有一些分析工具及调优的策略。总的来说,鉴于平台的稳定可靠,功能强大,流量真实和配套完善我还是会向公司和朋友推荐华为云CPTS,最后再次感谢华为云给予的体验机会,谢谢!
  • [问题求助] CSE控制台consolewebsite问题
    问题一:consolewebsite,选择删除微服务实例的时候报403:问题二:consolewebsite,微服务实例在页面中,显示的有重复的微服务实例,比如:10.1.1.1,会显示两遍。
  • [产品体验官] 华为云MapReduce体验_from_smirk
    MRS 体验这次主要是体验一下华为云的MRS,也就是Map Reduce Service,或Map Reduce服务,好多名字,都一个意思。应该是对标阿里云那边的EMR,鹅厂的弹性MR,都差不多,大家起名也没出花来,起出花来估计就卖不出去了。之前体验过大数据的训练营,大概知道MRS能做什么,那时候就有个疑问,除了展示的实际案例,到底还能做些什么,除去华为提供的接口操作,我们又能进行哪些操作?具体到自己的项目如何落地?嗯,看完这次的体验报告就.......可能依然不知道。这次体验就做一些非案例的Hadoop生态的操作实验,时间太紧张,仅限于分析集群功能吧,后续有空补充流式集群内容。操作体验记录下过程供有需要的同学参考吧,只要钱足够,可以随便玩。购买与部署EMR购买的时候没太留心操作太快,记得弹出的提示窗口是返回弹性大数据控制台(帐号没有集群的情况,已有集群的情况是返回集群列表),这个会有点懵吧估计,不过从这个能看出来和友商的EMR应该是对标的产品。实际创建的过程比较长,首先安装MRS Manager,十分钟左右进入开始部署集群。体验集群低配,配置如下:Master: 1 * | c3.xlarge.4 | 4 核 | 16 GB分析Core:1 * | c3.xlarge.2 | 4 核 | 8 GB流式Core:1 * | c3.xlarge.2 | 4 核 | 8 GB选了Hadoop,Spark,HBase,Hive,Hue,Kafka,Storm,Loader,Flume,Tez组件。集群版本 MRS 2.0.0集群类型 混合集群这里吐个嘈, 在组件信息描述中kafka和storm首字母小写的,让强迫症患者怎么活。这样的配置,大概三十分钟左右创建完成,这个部署的时长和选用组件的多少也有关系。处于启动中(部署集群中)的状态时,可以登陆MRS Manager查看服务的状态如上图可以了解更多的集群状态信息。EIP使用弹性IP提供外网访问接口。EIP购买之后,弹出返回私有云控制台。实际界面上显示的是网络控制台。以上两个购买过程中购买成功的页面提示可能看着会有点懵,不过,都还好。只能点确认,没什么需要选择,所以也不影响使用。操作买好了之后,实操一下,没有什么业务场景,纯体验。所以,从帮助文档开始。如果需要体验实际的业务场景应用,可以关注21天晋级大数据实战营,有很多实际的案例可以参考。解决场景理解与MRS结合的问题。本文评测就不搬案例了,大家看一下课表,对典型的应用场景有个概念就好。简单提一句,华为这两年在教育方面的投入很给力,提供了很多课程和资源给用户。大家多关注华为云学院,多学习。控制台界面帮助文档买好了之后首先考虑的是能做什么,看下帮助文档,了解HWC对用户有什么要说的。帮助页面很简洁,图形化显示了整个MRS使用的Pipeline。包含了常用链接与常见问题。此处有掌声,不得不说这里列举的常见问题,确实是常见问题。新用户拿到MRS首先要考虑的可能就是这俩问题,这个帮助页面点赞。访问组件UI界面但是,点开第一个常见问题链接访问组件UI界面。链接点这里第一段的场景介绍上来就看懵了,感觉要很复杂的过程才能访问。但是,实际上,在MRS控制台的首页>现有集群,集群管理页面边上有个链接,点击查看。点击之后HWC会引导用户针对来访IP添加访问组规则,很方便的可以访问到MRS Manager。跳转页面登陆后页面整体操作其实是挺方便的,但是文档写的稍微复杂了一点,应该是针对专业用户有所考虑。对于我这个新用户来讲,有一种做好事不留名的感觉。客户端管理帮助文档的另外一个项目,是客户端管理,页面提到了在什么场景下能用到这个功能。MRS集群提供了客户端,可以在连接服务端、查看任务结果或管理数据的场景中使用。用户需要使用MRS的客户端时,或者在MRS Manager修改了服务配置参数并重启了服务,需要先下载并更新客户端配置文件。用户创建集群时,默认在集群所有节点的“/opt/client”目录安装保存了原始客户端。集群创建完成后,仅Master节点的客户端可以直接使用,Core节点客户端在使用前需要更新客户端配置文件。这里注意一点,在MRS Manager修改了服务配置参数并重启了服务之后,需要先下载并更新客户端配置文件。如果改了配置不好用,点到帮助页面,看到这个帮助链接应该能很快定位问题。下载客户端这个操作也比较费时,因为整个包比较大,3G左右。操作提示有说是高IO操作,感受下根据安装的组件多少,这个Client大小估计会变化的吧,3G,提示了及时删除在没有版本更新,只下载配置文件的情况下速度很快。下载之后的提示信息在管理页面可以看到磁盘读写的记录,体会下高IO。在帮助文档中有说明,成功下载了配置文件之后,该怎么做。体验了下帮助文档中的方法一,很快,很方便。看到方法二,提到可以自动更新。但是实际上是没有autoRefreshConfig.sh这个脚本的,应该后续会更新的吧但是,并不影响使用,方法一依然可以解决问题。文档后面还包含了全量更新主备节点的Client方法。帮助文档这部分满分。操作日志在MRS控制台还提供了操作日志,注意这里面的操作记录的应该是通过MRS控制台的操作,通过终端登陆集群的操作是不记录的。集群列表这个页面提供了集群的常用操作,MRS使用中除了创建集群的前后两个环节都提供了页面接口,作业管理与文件管理。文件管理和HDFS中的文件是同步的。文件管理部分,支持与OBS之间数据导入导出。这里重新体会下MRS帮助页面的流程,上传数据,创建集群,查询执行结果。大量的数据上传应该是传到OBS里面,然后从OBS导入到集群中,OBS提供了DIS工具,可以将数据批量上传。控制台页面在MRS的整个链路上是清楚的,工具链是完整的。管理页面可以提供数据导入操作。Hadoop帮助文档中有个快速入门,里面推荐了从Apache官方下载Hadoop-2.7.4.tar.gz,这个其实没必要,可以通过客户端下载拿到,也可以通过华为开源镜像站下载,速度很可以。而且,不同的集群版本不一定是2.7.4,比如现在的2.0的集群,hadoop版本是3.1.1.Spark
  • [热门活动] 华为云资源模板服务于2019年01月18日00:00(北京时间)结束公测并下线产品页及控制台通知
    尊敬的华为云客户:华为云计划于2019/01/18 00:00:00结束资源模板服务的公测,下线产品页及控制台,保留后台API。资源模板服务下线产品页及控制台后,将无法通过控制台使用该服务,可继续使用后台API,使用方法详见API指导文档。如您有任何问题,欢迎您拨打华为云服务热线:4000-955-988与我们联系。感谢您对华为云的支持!
  • [热门活动] 华为云弹性负载均衡服务(ELB)控制台入口变更通知
    尊敬的华为云客户:华为云计划于2018/11/08将弹性负载均衡服务(ELB)控制台,从云服务器控制台迁移至网络控制台,届时请您前往网络控制台购买并查看弹性负载均衡的相关资源。路径:登录华为云控制台—所有服务—网络—弹性负载均衡ELB如您有任何问题,欢迎您拨打华为云服务热线:4000-955-988与我们联系。感谢您对华为云的支持!
  • [大咖交流] sidecar-inject代码分析
    Istio通过对serviceMesh中的每个pod注入sidecar,来实现无侵入式的服务治理能力。其中,sidecar的注入是其能力实现的重要一环(本文主要介绍在kubernetes集群中的注入方式)。sidecar注入有两种方式,一是通过创建webhook资源,利用k8s的webhook能力实现pod的自动注入,二是通过istioctl工具,对yaml文件进行手动注入。在这里对这两种方式进行简单介绍。 一、webhook自动注入:a)         准备条件:                         i.              自动注入功能需要kubernetes 1.9或更高版本;                       ii.              需要在kube-apiserver的启动参数中加入--admission-control=MutatingAdmissionWebhook,ValidatingAdmissionWebhook                      iii.              k8s中webhook需要签名密钥对,用于自动注入时的认证鉴权。(此处可通过install/kubernetes/webhook-create-signed-cert.sh脚本生成,这个脚本会调用kubernetes的CSR API生成一个具有K8S签名的密钥对,用于Webhook。然后建立一个secret存放证书信息。)                      iv.              可通过在sidecar-injector的configmap中设置policy=disabled字段来设置是否启用自动注入,同时也可以在deployment中通过设置annotation,sidecar.istio.io/inject=true来控制pod级别的自动注入。                       v.              为需要自动注入的namespace打上标签istio-injection: enabled。                      vi.              确保master到node容器网络通信正常。b)         定义webhook文件,格式如下(在helm包的sidecarInject中)。这里的语义就是,监听具有istio-injection: enabled的label的namespace下的pod资源,当发生rules(CREATE POD)的动作时,则调用services(istio-sidecar-injector.namespace的/inject接口)。apiVersion: admissionregistration.k8s.io/v1beta1kind: MutatingWebhookConfigurationmetadata:  name: istio-sidecar-injector  namespace: {{ .Release.Namespace }}  labels:    app: istio-sidecar-injectorwebhooks:  - name: sidecar-injector.istio.io    clientConfig:      service:        name: istio-sidecar-injector        namespace: {{ .Release.Namespace }}        path: "/inject"      caBundle: ""    rules:      - operations: [ "CREATE" ]        apiGroups: [""]        apiVersions: ["v1"]        resources: ["pods"]    failurePolicy: Fail    namespaceSelector:      matchLabels:        istio-injection: enabled c)         webhook工作流程图                                               d)         inject代码分析(代码位置pilot/pkg/kube/inject/webhook.go):                         i.              sidecar-inject接收kube-master发出的自动注入请求,并校验、解析请求结构体(请求体中包含触发条件中,creating的pod的结构体。)                       ii.              判断是否需要注入,筛选满足条件的pod,筛选条件包括:是否开启了hostNewWork、是否为需要注入的ns、annotation中是否指定为需要注入等条件;                      iii.              若满足条件则进行注入,注入的sidecar的镜像信息、启动参数、挂载信息等内容,存储在sidecar-inject的configmap中,注入时会从configmap中提取对应的值,填到模板中,再将填好值的模板注入到pod中;                      iv.              将注入好的pod信息返还给kube-master,完成自动注入。 二、istioctl手动注入(代码位置istioctl/cmd/istioctl/inject; pilot/pkg/kube/inject/inject.go):a)         手动注入操作步骤:                         i.              下载istioctl工具并拷贝至环境,链接https://github.com/istio/istio/releases/ ;                       ii.              将istioctl二进制拷贝至/usr/local/bin目录下mv -f istioctl /usr/local/bin                      iii.              安装Istio控制面,确认注入相关configmap已创建成功$ kubectl get cm -n istio-system | grep istio-sidecar-injectoristio-sidecar-injector                  1         15h                      iv.              准备需要注入的文件test.yaml                       v.              执行istioctl会在原始内容的基础上加入sidecar的配置内容,并输出到控制台。$ istioctl kube-inject -f test.yaml                      vi.              将istioctl处理之后的内容部署到kubernetes上$ kubectl apply -f <(istioctl kube-inject -f test.yaml)                    vii.              可以通过k8s命令查看pod详细内容$ kubectl describe pod test-c9f4b55c7-np4cf b)         代码分析:                         i.              首先打开原始deploy.yaml文件或读取控制台输入,读取为文件流;                       ii.              从config文件或k8s的configmap中读取sidecar模板所需的值(同上述c中第三步)。                      iii.              将上步得到的值填入sidecar模板中,生成模板实例;                      iv.              将模板实例注入到源deployment中,生成注入好的文件。 三、总结:这里更推荐自动注入的方式来实现sidecar的注入,可以通过在deployment的annotation中加入对应的key来实现自动注入的控制。而源码部分,注入的逻辑并不复杂,主要是对k8s中webhook的使用,以及通过模板,向deployment中注入相应的container资源等。
  • [教程] RDS服务FlavorID获取指南
    19273 笔者是一枚AOS萌新用户,在使用编排RDS的功能中,遇到了一个很大的问题——RDS的FlavorID怎么获取?RDS服务中,同一个规格的FlavorID对于每个用户的每个project_id都不一样,没有一个通用的标准,而其API却只接收FlavorID进行实例的创建,非常不方便。 按照官方文档的指引,找到了这个API https://support.huaweicloud.com/api-rds/zh-cn_topic_0032347783.html。按照文档使用这个接口获取FlavorID总计需要请求3次不同的地址。如果要使用API创建数据库,还得在请求体里面填写某些字段与FlavorID对应,对应不上的还不允许创建。请求体互相之间有影响,字段又难拿,不管你们什么感觉,笔者看着都觉得很难受。 后来想了个办法,不用手动调API了。方法就是在RDS界面上创建一个新的RDS实例,等等等等等它创建成功之后,从实例信息的请求体里面可以抓出来FlavorID。该方法操作起来简便,不过少说等个几分钟还是要的,万一创建没成功还拿不到。 虽说用上面那个办法等个几分钟就拿得到想要的结果,不过笔者这暴脾气忍不了这个。成天琢磨RDS服务界面上请求后台时的返回值里面哪里有FlavorID的身影。笔者也算是运气好,在某个界面遇到了某个神奇的API,最终在返回值里面找到了心心念念的FlavorID大集合。有了API就好办,写了个chrome控制台下的请求指令,造福大家。 使用方法,进入RDS服务页面https://console.huaweicloud.com/newrds/,按F12进入Chrome的控制台选项卡(Console),复制粘贴执行文末的命令即可。代码使用的js版本较高,低版本的Chrome(低于Chrome 51)可能会无法执行。19272 妈妈再也不用担心我编排RDS服务找不到FlavorID啦~19271 [code]fetch(new Request("https://console.huaweicloud.com/newrds/rest/me", { headers: new Headers({ "cftk": document.cookie.match(/cftk=([^;]*)/)[1], }), credentials:'include', redirect: 'follow', })).then((resp) => resp.json()).then((obj) => { window.user = obj let pick = (o, ...props) => ( Object.assign({}, ...props.map(prop => ({[prop]: o[prop]}))) ) console.table(pick(obj, "projectId", "domainId", "region")) return fetch(new Request("https://console.huaweicloud.com/newrds/rest/rds/v2/"+obj.projectId+"/createInfo?regionCode="+obj.region, { headers: new Headers({ "cftk": document.cookie.match(/cftk=([^;]*)/)[1], }), credentials:'include', redirect: 'follow', })) }).then((resp) => resp.json()).then((obj) => { let isKVM = (flavor) => flavor.serverType == "KVM" let pick = (o, ...props) => ( Object.assign({}, ...props.map(prop => ({[prop]: o[prop]}))) ) let codeType = (flavor) => flavor.code.split('.')[1] window.createInfo = obj let flavors = obj.constant.flavors console.log("all flavors", flavors) let KVMonly = false for (let flavor of flavors) { if (isKVM(flavor)) { KVMonly = true break } } let filtedFlavors = [] for (let flavor of flavors) { if (KVMonly && !isKVM(flavor)) { continue } filtedFlavors.push(pick(flavor, "id", "cpu", "mem", "code", "regionStatus", "serverType")) } filtedFlavors = filtedFlavors.sort((a, b) => { let typeA = codeType(a) let typeB = codeType(b) if (typeA !== typeB) return (typeA typeB ? -1 : 1) let cpuA = Number(a.cpu) let cpuB = Number(b.cpu) if (cpuA !== cpuB) return (cpuA cpuB ? -1 : 1) let memA = Number(a.mem) let memB = Number(b.mem) return (memA memB ? -1 : 1) }) console.table(filtedFlavors) }) [/code]
  • [技术干货] 创建弹性云服务器时,无法通过控制台注入文件?
    [*]用户在控制台上选择密码登录方式购买弹性云服务器时,无法通过“用户数据注入”功能注入文件。 [*]用户在控制台上选择密钥对登录方式购买弹性云服务器时,可以通过“用户数据注入”功能注入文件。 处理方法当用户使用密码方式购买弹性云服务器时,如需使用文件注入功能,建议使用调用API接口的方法创建弹性云服务器。具体操作,请参见创建云服务器。
  • 发不了短信,请管理员帮看下是怎么回事咯
    我用的是 https://github.com/SimpleMessageNotification/smn-sdk-php 这个SDK $client = new DefaultSmnClient('YourAccountUserName','YourAccountDomainName','YourAccountPassword','YourRegionName'); 这行我按以下数据填写: 'YourAccountUserName':管理控制台→我的凭证→ 用户名 'YourAccountDomainName':管理控制台→我的凭证→ 用户名 'YourAccountPassword':管理控制台→我的凭证→管理访问密钥→访问密钥ID对应的Secret Access Key 'YourRegionName':理控制台→我的凭证→ 项目列表→中国华南区1→项目ID 结果是如下错误: 麻烦帮看下是什么原因咯,是哪里有错啊?? [code]Fatal error: Uncaught exception 'SMN\Exception\SMNException' with message 'Unable to connect to "https://iam.fd011b9f5c0a498fbc8aff8568c6f590.myhuaweicloud.com/v3/auth/tokens": 7 Failed to connect to iam.fd011b9f5c0a498fbc8aff8568c6f590.myhuaweicloud.com port 443: Timed out' in E:\www\app\sms\Core\RestClient.php:64 Stack trace: #0 E:\www\app\sms\Auth\IamAuth.php(95): SMN\Core\RestClient::getResponse(Object(SMN\Request\Auth\AuthRequest), NULL) #1 E:\www\app\sms\Auth\IamAuth.php(73): SMN\Auth\IamAuth->postForToken() #2 E:\www\app\sms\Client\DefaultSmnClient.php(49): SMN\Auth\IamAuth->getTokenAndProject() #3 E:\www\app\sms.php(16): SMN\Client\DefaultSmnClient->sendRequest(Object(SMN\Request\Sms\SmsPublishRequest)) #4 {main} thrown in E:\www\app\sms\Core\RestClient.php on line 64[/code]
  • 华为云数据库新控制台(Console)即将上线,6大功能板块亮点抢先看 ...
    本帖最后由 华为云数据库 于 2018-2-22 16:14 编辑 华为云数据库新控制台(Console)即将上线,6大功能板块亮点抢先看 华为云数据库新控制台(Console)即将上线啦!【Console主页】、【购买页】、【实例管理页】、【单个实例管理页】、【备份管理页】、【参数组管理页】,六大功能板块全新上线,界面更简洁,操作更方便,管理更高效! 一、 【Console主页】*主要功能:实例管理项支持对具体实例进行基本管理、显示实例类型(单机、只读、主备)、数据库类型、运行状态、付费方式、可能的操作、按引擎过滤显示、按实例名或者实例ID检索实例。 全面优化主页面,1项新增、2处修改、3个删除,界面更简洁,操作更方便,主要信息一目了然。ü 新增备份管理页面——可视化备份名称、实例名称/ID、数据库引擎、备份类型、备份开始时间、状态、大小、描述、可操作项等参数,功能丰富,让备份管理更便捷。11126 ² “RDS实例管理”改名为“实例管理”。² “参数组”改名为“参数组管理”。11033Ø 删除总览整体页面。Ø 删除快照管理整体页面。Ø 删除数据迁移整体页面。 新Console主页面亮点:没有总览页、快照管理页,不再有集群概念,主备实例不再显示备实例,更简洁!数据迁移独立成新数据库迁移服务;没有数据库引擎共享实例配额限制;所有实例详细信息、连接地址,单击即可进入对应实例管理页查看,更方便! 11034单二、 【购买页】 优化购买流程设计,1处新增、2个删除、3项修改、实例信息更集中,选择更多样;操作更贴合用户习惯,体验更流畅。Ø 删除参数组选择功能,无需设置参数组,支持手动修改。Ø 删除备份策略功能及展示,包括自动备份、保留天数、备份开始时间等参数信息,减少重复交叉信息。² 修改所购买实例的基本信息选择及展示功能,包括数据库引擎只显示最近两个大版本;高可用类型由开启HA开关变成了“单机”和“主备”。² 修改实例规格类型,支持标准型、计算型、内存型。 11035 新Console购买页面亮点:计费可周期支付or按需,弹性!实例名称、参数组、备份策略、数据库端口等基本信息无需手动输入,自动生成且可修改, 便捷!实例规格与存储信息窗格化, CPU和内存比例一目了然,直观!高可用类型由开启HA开关变成了“单机”和“主备”,合理! 三、 【实例管理主页面】*主要功能有:扩容、创建只读、变更参数组、创建备份、重置密码、重启实例、释放实例、查看监控、按实例名称或者ID检索。 优化信息展示形式,2处新增、2项修改、1个删除,实例管理主页面信息流管理更便捷、更合理。 ü 新增计费模式版块,直接展示收费模式(按需计费、包年包月)。ü 只读实例和主实例生命周期独立,点击实例名称可直接进入实例管理。11036 ² 修改实例名称版块信息,增加ID显示;² 修改操作版块参数可选项,包括扩容、创建只读、变更参数组、创建备份、重置密码、重启实例、删除实例、查看监控;Ø 删除下拉展示更多信息功能,包括SSL证书下载信息及展示、实例备份信息详情及具体展示、数据库版本信息及展示、管理信息、展示及链接; 11037VS11038 新Console实例管理主页面亮点:新增备份文件下载,及慢查询按时间检索;释放主实例,则将所有只读实例一起释放;备份恢复一键点击,两处操作,支持“备份管理”及“备份恢复”页签同步进行,更便捷!备份周期不再是每天进行,用户可选任意两天以上,解决备份时间只能选择几个备份时间段,而不能选择任何时间点问题,更合理!11039 四、 【单个实例管理页】*主要功能:修改实例名称、重置密码、下载证书、修改复制模式、主备切换、修改切换策略、修改数据库端口、绑定公网IP、变更参数组、修改安全组 优化单个实例管理功能,基本信息3大新增、3类删除、1个修改;完善慢日志管理,让界面更清晰,操作更简便。ü 新增实例信息修改功能——包括实例名称、主备同步方式、主备高可用切换策略(可用性优先、可靠性优先)修改;只读实例名称、跳转链接、主实例、只读实例数据同步方式修改。ü 新增实例配置变更功能——包括参数组配置变更,续费、转包年包月付费方式变更。ü 新增功能可视化展示及修改功能——包括展示主备节点数据同步进度信息、管理员账号信息,展示可维护时间窗。 11040ü 改善慢日志查询功能——增加按语句类型过滤,以及按时间区间搜索,删除Top筛选项。 Ø 删除资源ID整组信息、屏蔽不必要IaaS层信息。Ø 删除订单整组信息。Ø 删除原配置参数组页签,参数配置由参数组管理栏统一管理² 修改资源使用量统计信息展示形式,化繁为简。11041老资源使用量统计VS11042新资源使用量统计 新Console实例管理亮点:实例基本信息三大新增,让实例信息管理更便捷;两类删除,让操作界面更友好;一个修改,让信息展示更一目了然。完善慢日志管理,更智能! 五、 【备份管理页】* 用于管理租户下所有的实例备份恢复。主要功能有:创建备份、备份策略、恢复到指定时间点、恢复、下载、复制、删除、按备份名称检索等功能。 将实例备份相关操作与展示相整合,功能组织更合理,视觉上更直观ü 新增实例相关联备份文件列表并提供相关操作,新增搜索备份文件功能,更方便。ü 增加创建备份功能,备份策略新增周期选择,更灵活。ü 备份时间采用时间窗形式,更直观。11043 六、 【参数组管理页】*主要功能:创建参数组、比较、复制、重置、删除、修改描述等。 优化参数组管理功能,界面更简洁、操作更方便、形式更直观ü 点击实例名称可直接进入参数列表,默认参数组可复制、可删除、可比较;新增参数分类。ü 创建参数组下展变成弹窗形式。ü 删除“查看”、“是否可修改”按钮,参数列表删除不必要参数,信息不冗余。 即将上线,敬请期待!注:部分新增功能灰度发布中,具体功能请以上线新版本为准。详细操作,请参见后续更新的用户操作手册。
  • [技术干货] 如何在控制台查看MySQL死锁信息呢?
    本帖最后由 小驴涛咪 于 2017-12-8 11:03 编辑死锁在MySQL数据库中是较为常见的现象,多数情况是业务逻辑导致的。 定位死锁原因当然可以访问数据库使用show engineinnodb status查看死锁信息。 也可以在console端的错误日志中查看,很简单,只需要需改一个参数。 将参数innodb_print_all_deadlocks的值修改为ON即可。
  • Python牛刀小试(五)--logging模块
    由于想给自己的Python程序添加日志功能,学习下Python的日志模块。 一个简单的例子: 点击(此处)折叠或打开 [*]import logging [*] [*]##第一个简单的例子 [*]logging.warning('Watch out!') # will print a message to the console 输出到控制台 [*]logging.info('I told you so') # will not print anything 没有任何输出信息 输出至控制台的信息,如下: 点击(此处)折叠或打开 [*]D:\stock>python test4_logger.py [*]WARNING:root:Watch out! 输出日志到文件中 点击(此处)折叠或打开 [*]import logging [*] [*]##输出到example日志文件中 [*]logging.basicConfig(filename='example.log',level=logging.DEBUG) [*]logging.debug('This message should go to the log file') [*]logging.info('So should this') [*]logging.warning('And this, too') 在当前目录中,有一个example.log日志文件,输出日志如下: 点击(此处)折叠或打开 [*]DEBUG:root:This message should go to the log file [*]INFO:root:So should this [*]WARNING:root:And this, too ----------------------------------------简单的日志的分割线----------------------------------------------------------- 由于自己写的模块,需要模块化,要有配置文件,能复用。控制台和文件都能输出。 源代码如下: 配置文件如下: 点击(此处)折叠或打开 [*][loggers] [*]keys=root,simpleExample [*] [*][handlers] [*]keys=consoleHandler,fileHandler [*] [*][formatters] [*]keys=simpleFormatter [*] [*][logger_root] [*]level=DEBUG [*]handlers=consoleHandler,fileHandler [*] [*][logger_simpleExample] [*]level=DEBUG [*]handlers=consoleHandler,fileHandler [*]qualname=simpleExample [*]propagate=0 [*] [*][handler_consoleHandler] [*]class=StreamHandler [*]level=DEBUG [*]formatter=simpleFormatter [*]args=(sys.stdout,) [*] [*][formatter_simpleFormatter] [*]format=%(asctime)s - %(name)s - %(levelname)s - %(message)s [*]datefmt= [*] [*][handler_fileHandler] [*]class=logging.handlers.TimedRotatingFileHandler [*]level=DEBUG [*]formatter=simpleFormatter [*]args=("zsd.log", "midnight") Python执行文件: 点击(此处)折叠或打开 [*]import logging [*]import logging.config [*] [*]logging.config.fileConfig('logging.conf') [*]# create logger [*]logger = logging.getLogger('simpleExample') [*] [*]# 'application' code [*]logger.debug('debug message') [*]logger.info('info message') [*]logger.warn('warn message') [*]logger.error('error message') [*]logger.critical('critical message') [*]
  • [技术干货] 华为云Windows服务器调整Web VNC(管理控制台终端)的窗口大小
    本帖最后由 达康书记 于 2017-9-23 16:13 编辑不同人对noVNC窗口大小有不同的诉求,笔者教大家如何自己调整,高手飘过,请轻拍砖。 华为云Windows服务器Web VNC的窗口大小取决于系统的分辨率,Windows可以在操作系统内部调整分辨率来改变窗口的大小。 可选择:800*600像素,1024*768像素(推荐使用),1280*1024像素 2263 2264
  • [技术干货] 华为云Linux服务器调整Web VNC(管理控制台终端)的窗口大小
    本帖最后由 达康书记 于 2017-9-23 16:13 编辑不同人对noVNC窗口大小有不同的诉求,笔者教大家如何自己调整,高手飘过,请轻拍砖。 管理控制台终端Web VNC窗口大小实际是由系统设置的分辨率相关,Linux系统控制分辨率需要将vga参数传递到kernel中。 通过VGA启动参数来设置屏幕分辨率模式: [code] Mode 0x0317: 1024x768 (+2048), 16 bits Mode 0x0318: 1024x768 (+4096), 24 bits --------推荐使用 Mode 0x0314: 800x600 (+1600), 16 bits Mode 0x0315: 800x600 (+3200), 24 bits Mode 0x0311: 640x480 (+1280), 16 bits Mode 0x0312: 640x480 (+2560), 24 bits[/code]修改VNC窗口大小方法如下: 编辑文件/boot/grub/grub.conf,在kernel的最后一行加入:vga=0x0318 (代表1024x768,24色) [code]default=0 timeout=5 splashimage=(hd0,1)/boot/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-696.6.3.el6.x86_64) root (hd0,1) kernel /boot/vmlinuz-2.6.32-696.6.3.el6.x86_64 ro root=UUID=f382872b-eda6-43df-9516-5a687fecdce6 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM vga=0x0318 rhgb quiet initrd /boot/initramfs-2.6.32-696.6.3.el6.x86_64.img [/code]输入命令:vi /boot/grub/grub.conf,然后在窗口中编辑。修改后保存,重启服务器后生效。 2262
  • 教你如何用一个租户账号创建多个子账号
    客户的问题“OBS能否实现企业一个总账号,下面不同部门有不同的分账号这种功能”进入正题: 1、首先登陆华为云的控制台界面,http://www.hwclouds.com/,如果没有账号请先注册一个(这里注册的是租户账号) 21292129 2、如果已有账号,点击“控制台”进去控制台的主页,并选择“统一身份认证服务”如下: 2131 3、进入“统一身份认证服务后”(hanming1028是租户账号) 2133 2135 4、输入“用户名”和“所属用户组”,用户组可以选择"admin"、“readonly”或者你自己创建的用户组,可以根据企业实际情况选择。 选择后再点击下一步,进入如下页面: 2136 5、选择密码生成方式以及输入各个邮箱(根据实际情况定),再点击确定,流程结束。 创建其他的子账号流程同上。
总条数:199 到第
上滑加载中