云服务器内容精选
-
方案架构 该方案基于华为云服务构建,通过成本中心OBS转储能力将成本明细数据定期推送至OBS桶中, 数据湖探索 DLI服务分析OBS桶中数据并推送至RDS,DataArts Insight智能数据洞察平台读取RDS数据内容,将 DLI 的分析数据呈现至仪表盘。 该方案部署架构如下图所示: 图1 云智能看板方案架构图 云智能看板功能需要同时通过 资源编排 服务( RFS )部署成本中心订阅任务、 对象存储服务 (OBS)、 数据湖 探索(DLI)、 函数工作流 (FunctionGraph)、云数据库(RDS)、虚拟私有云(VPC)和智能数据洞察(DataArts Insight)的模板看板。 成本中心提供成本明细文件,导出到OBS桶中后,DLI从OBS桶获取原始文件,并对数据进行分析和处理,FunctionGraph迁移DLI数据到RDS,DataArts Insight绑定DLI数据源进行可视化展示。RFS提供资源编排能力,按照模板自动化部署,方便用户一键生成。 该解决方案会部署如下资源: 成本中心提供原始成本、摊销成本的明细数据,RFS的编排能力会自动为用户创建OBS导出任务,用于定时导出成本明细文件到OBS桶。 资源编排是 应用编排服务 新增的完全支持业界事实标准Terraform的终态编排引擎,用于管理系统资源及服务资源。RFS会自动创建解决方案中使用到的相关云服务,包含OBS,FGS,RDS,VPC。 对象存储服务,提供海量、安全、高可靠、低成本的数据存储能力。用于存储订阅任务推送的订阅数据,是解决方案的数据来源。 数据湖探索,完全兼容Apache Spark、Apache Flink、Trino生态,提供一站式的流处理、批处理、交互式分析的Serverless融合处理分析服务。RFS的编排能力会自动创建DLI数据库,用于创建OBS表,实现对存储在OBS上的成本明细进行分析和处理。用于与OBS数据绑定,对存储在OBS上的成本明细进行分析和处理。 函数工作流,是一项基于事件驱动的函数托管计算服务,以弹性、免运维、高可靠的方式运行。用于连接各项云服务之间的协作,主要涉及创建订阅任务,下发DLI汇聚任务等。 云数据库RDS,是一种基于 云计算平台 的稳定可靠、弹性伸缩、便捷管理的在线云数据库服务。用于存储计算结果数据,给看板提供存储功能。 虚拟私有云,为云服务器、云容器、云数据库等云上资源构建隔离、私密的虚拟网络环境。灵活管理云上网络,包括创建子网、设置安全组和网络ACL、管理路由表等。 智能数据洞察,是新一代BI服务,提供可视、实时、易用、安全的企业智能分析数据服务,RFS的编排能力会获取DLI数据源到DataArts Insight中,并成生成数据表,通过预置的仪表盘,可视化展示成本报表。用于展示最终的看板。解决方案部署完成后,会上传默认看板。
-
约束与限制 在开始解决方案部署之前,您需要注册一个可以访问该区域的华为账号并开通华为云,完成实名认证,且账号不能处于欠费或冻结状态。 如果选用 IAM 委托权限部署资源,请确保使用的华为云账号有IAM的足够权限,具体请参考创建rf_admin_trust委托(可选);如果使用华为主账号或admin用户组下的IAM子账户可不选委托,将采用当前登录用户的权限进行部署。 解决方案部署大概需要15~30分钟左右,部署完成后,需要等待24小时后登录DataArtsInsight看板查看看板内容。如果看板内显示数据,则功能正常,如果没有数据显示,请联系开发人员协助。
-
响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 请求异常内部业务状态码 最小长度:0 最大长度:256 error_msg String 请求异常信息 最小长度:0 最大长度:256 request_id String 请求ID 最小长度:0 最大长度:256 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 请求异常内部业务状态码 最小长度:0 最大长度:256 error_msg String 请求异常信息 最小长度:0 最大长度:256 request_id String 请求ID 最小长度:0 最大长度:256 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 请求异常内部业务状态码 最小长度:0 最大长度:256 error_msg String 请求异常信息 最小长度:0 最大长度:256 request_id String 请求ID 最小长度:0 最大长度:256
-
请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json 缺省值:application/json;charset=UTF-8 最小长度:1 最大长度:64 X-Auth-Token 是 String 用户Token。用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 最小长度:1 最大长度:16000 表3 请求Body参数 参数 是否必选 参数类型 描述 dashboard_name 否 String 自定义监控看板名称 最小长度:1 最大长度:128 正则匹配:^([\u4E00-\u9FFF]|[a-z]|[A-Z]|[0-9]|_|-)+$ is_favorite 否 Boolean 监控看板是否标记收藏, true: 收藏, false: 未收藏 row_widget_num 是 Integer 监控视图展示模式,0表示自定义坐标,1代表每行一个 最小值:0 最大值:3 缺省值:3
-
URI PUT /v2/{project_id}/dashboards/{dashboard_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户id 最小长度:1 最大长度:64 dashboard_id 是 String 监控看板id,以db开头,包含22个字母和数字例:db16564943172807wjOmoLyn' 数组长度:24 - 24 正则匹配:^db([a-z]|[A-Z]|[0-9]){22}$
-
应用场景 在 云监控服务 中,仅需登录一个账号就可以查看所在组织(Organization)下所有账号的看板。 目前只有“我的看板”提供跨账号功能,且只能查看,不能编辑。 该功能当前在华南-广州-友好用户环境、土耳其-伊斯坦布尔、西南-贵阳一、乌兰察布-汽车一、拉美-墨西哥城一、亚太-新加坡、非洲-约翰内斯堡、亚太-曼谷、中国-香港、拉美-墨西哥城二、亚太-雅加达、华南-广州、华北-北京一、华北-乌兰察布一、华北-北京四、拉美-圣地亚哥、华东-上海一、拉美-圣保罗一、中东-利雅得和华东-青岛区域开放。
-
选择监控对象查看监控指标 为了对比各资源的某项监控指标,您可以将多个资源的监控指标集中到一个监控制图中。但是当资源较多时,如只想对比其中的部分资源的指标数据,那么可以使用拖动选择监控对象功能。 选择监控对象:单击监控视图详情右侧的第二个图标,如图4所示。拖动选择你需要显示在监控视图详情中的监控对象,系统自动显示您选择的监控对象数据,其他监控数据则会隐藏起来。 图4 选择监控对象 重置监控对象筛选:单击监控视图详情右侧的第三个图标。 在监控视图详情窗口下方,您还可以通过以下方法选择监控对象:单击某一个资源对象关闭该监控项的走势图,再次单击该监控对象即可开启显示该指标走势。
-
按自定义时间段查看监控指标 监控指标默认显示“近1小时”、“近3小时”、“近12小时”、“近24小时”、“近7天”的数据,如果您想要看近2小时或者某自定义时间段的指标时可以使用拖动选择自定义时间段功能。 按自定义时间段查看监控指标详情:单击监控视图详情右侧的第一个图标,如图3所示。拖动选择自定义时间段,系统自动展示所选时间段内的监控数据。 图3 自定义时间段 退出自定义时间段监控指标详情:单击监控视图详情右侧的第三个图标。
-
响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 records Array of WorkitemStatusRecords objects 操作历史 total Integer 总数 表5 WorkitemStatusRecords 参数 参数类型 描述 work_item_record_id String 工作项的记录id,一个工作项对应一条记录 最小长度:32 最大长度:32 work_item_id String 工作项id project_id String devcloud项目的32位id 最小长度:32 最大长度:32 work_item_statuses Array of WorkitemStatus objects 操作历史 表6 WorkitemStatus 参数 参数类型 描述 id String 工作项状态变更记录的id,每次变更产生一条新的记录id 最小长度:1 最大长度:32 status status object 工作项的状态 表7 status 参数 参数类型 描述 id String 工作项的状态id 最小长度:1 最大长度:32 name String 状态名称 最小长度:1 最大长度:60 type String 工作项状态的类型, BACK LOG ( "初始化"), READY("待启动"), IN_PROGRESS("进行中"), COMPLETE("已完成"), DONE("已结束"), description String 工作项状态的描述 parent_status_id String 工作项状态的父状态id 最小长度:1 最大长度:32 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码 状态码: 401 表9 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码
-
响应示例 状态码: 200 OK { "records" : [ { "work_item_record_id" : "7401906a85de466c81fd90e22824eb19", "work_item_id" : "4633454879781163008", "project_id" : "526cefde62004de2b62b5e8dd2c2b3af", "work_item_statuses" : [ { "id" : "7401906a85de466c81fd90e22824eb19", "status" : { "id" : "d25fe91f7f6b489db5f804e66ac3b360", "name" : "7401906a85de466c81fd90e22824eb19", "type" : "BACKLOG", "description" : "demo", "parent_status_id" : "7401906a85de466c81fd90e22824aaaa" } } ] } ], "total" : 1 }
-
URI GET /v4/projects/{project_id}/work-items/status-records 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String devcloud项目的32位id 最小长度:32 最大长度:32 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 偏移量 从0开始 最小值:0 缺省值:0 limit 否 Integer 每页数量 最小1,最大100 最小值:1 最大值:100 缺省值:100
-
响应示例 状态码: 200 OK { "work_items" : [ { "id" : "4633454879781163008", "description" : "demo", "actual_work_hours" : 10, "assigned_user" : { "id" : "665b542eb4c14b53a15ead449f28b0ba", "name" : "demo_user_name", "nick_name" : "demo" }, "author" : { "id" : "665b542eb4c14b53a15ead449f28b0ba", "name" : "demo_user_name", "nick_name" : "demo" }, "begin_time" : "1590940800000", "created_time" : "1590940800000", "tags" : [ { "id" : "456", "name" : "tagdemo" } ], "developer" : { "id" : "665b542eb4c14b53a15ead449f28b0ba", "name" : "demo_user_name", "nick_name" : "demo" }, "assigned_cc_user" : [ { "id" : "665b542eb4c14b53a15ead449f28b0ba", "name" : "demo_user_name", "nick_name" : "demo" } ], "discover_version" : "ProjectMan 8.0.0", "end_time" : "1590940800000", "done_ratio" : "10%", "expected_work_hours" : 9, "order" : "1", "parent_work_item_id" : "4633454879781163001", "release_version" : "ProjectMan 8.0.0", "story_point" : "0", "domain" : { "id" : "14", "name" : "性能" }, "iteration" : { "id" : "456", "name" : "迭代1" }, "module" : { "id" : "456", "name" : "Project" }, "priority" : "低", "severity" : "一般", "status" : { "id" : "d25fe91f7f6b489db5f804e66ac3b360", "name" : "新建" }, "subject" : "demosubject", "updated_time" : "1595832054113", "sequence" : "5500756", "important" : "提示", "custom_fields" : [ { "field_id" : "d25fe91f7f6b489db5f804e66a0", "field_name" : "customField", "field_type" : "Select", "field_option_source" : "USER", "value" : "{\"id\":\"d25fe91f7f6b489db5f804e66a0\",\"name\":\"devcloud_test001\",\"nick_name\":\"demo\"}" } ] } ], "total" : 1 }
-
响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 work_items Array of Workitems objects 工作项 total Integer 总数 表5 Workitems 参数 参数类型 描述 id String 工作项id description String 工作项描述 actual_work_hours Double 实际工时 assigned_user WorkitemUser object author WorkitemUser object begin_time String 工作项开始时间 created_time String 创建时间 tags Array of tags objects 标签 developer WorkitemUser object assigned_cc_user Array of WorkitemUser objects 抄送人 discover_version String 发现问题的版本 end_time String 工作项结束时间 done_ratio String 工作项进度值 expected_work_hours Double 预计工时 order String 顺序 parent_work_item_id String 父工作项的id release_version String 发布的版本 story_point String 故事点 domain domain object id, 领域 14, '性能', 15, '功能', 16, '可靠性' 17, '网络安全' 18, '可维护性' 19, '其他DFX' 20, '可用性' 其他 iteration iteration object 迭代 module module object 模块 priority String 工作项优先级 severity String 严重的程度 "提示", "一般", "严重", "致命" status status object 工作项状态 subject String 工作项标题 updated_time String 更新时间 sequence String 工作项编号 important String 重要程度 "关键", "重要", "一般", "提示" custom_fields Array of WorkitemCustomField objects 用户自定义字段 表6 tags 参数 参数类型 描述 id String 标签id name String 标签名 表7 WorkitemUser 参数 参数类型 描述 id String 用户32位uuid name String 用户名 nick_name String 昵称 表8 domain 参数 参数类型 描述 id String 领域id name String 领域 表9 iteration 参数 参数类型 描述 id String 迭代id name String 迭代名 表10 module 参数 参数类型 描述 id String 模块id name String 模块 表11 status 参数 参数类型 描述 id String 状态id name String 状态名称 表12 WorkitemCustomField 参数 参数类型 描述 field_id String 自定义字段id field_name String 自定义字段名称 field_type String 自定义字段类型, "Date","Number","DateTime", "MultiLineText","SingleLineText", "Select", "Checkbox" field_option_source String 自定义字段的选项源,CUSTOM,USER,DOMAIN,ITERATION,MODULE,TAG value String 自定义字段值, (field_type为Date,Number,DateTime时,field_option_source为空,value值是数字的字符串), (field_type为MultiLineText,SingleLineText时,field_option_source为空,value值是文本字符串), (field_type为Select ,field_option_source为CUSTOM时,value值是文本字符串) (field_type为Select ,field_option_source为USER,DOMAIN,ITERATION,MODULE,TAG时,value值是Json格式{}), (field_type为Checkbox ,field_option_source为CUSTOM时,value值是字符串数组["aaa"]), (field_type为"Checkbox" ,field_option_source为USER,DOMAIN,ITERATION,MODULE,TAG时,value值是Json的数组[{},{}]) 状态码: 400 表13 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码 状态码: 401 表14 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码
-
URI GET /v4/projects/{project_id}/work-items 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String devcloud项目的32位id 最小长度:32 最大长度:32 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 偏移量 从0开始 最小值:0 缺省值:0 limit 否 Integer 每页数量 最小1,最大100 最小值:1 最大值:100 缺省值:100 created_time_interval 否 String 创建工作项的时间(查询的起始时间,查询的结束时间)
-
Token校验 客户端在使用Token校验的流程如下。 已获取大屏分享链接和Token。 例如,分享链接https://console.ulanqab.huawei.com/sve/preview.html?region=cn-north-7#/screen/share/18cd21df7bc-WPgj_GqRc。其中“region”的值为“cn-north-7”,“pageId”的值为“18cd21df7bc-WPgj_GqRc”。 使用代码开发工具将大屏分享链接中的pageId和region拼接成如下格式的字符串。 pageId|region; 使用HmacSHA256算法对拼接的字符串进行签名,并将签名后的字符串使用Base64进行转换。签名时需要使用对应的Token。 HmacSHA256签名和Base64转换的示例如下: import java.security.*; import javax.crypto.*; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; import java.net.URLEncoder; public class ShareWithTokenTest { public static void main(String[] args) throws Exception { System.out.println(getShareUrlWithToken("********722467a9477b5b*******", "cn-7", "*******r1tyy1C7Jenni3p*********")); } public static String getShareUrlWithToken(String pageId, String region, String token){ String data = pageId + "|" + region; String signature = HMA CS HA256(data.getBytes(), token.getBytes()); String url = "https://console.huaweicloud.com/sve/share/page.html?id=" + pageId + "®ion=" + region + "&sve_signature=" + signature; return url; } //采用HmacSHA256进行签名并进行Base64转换 public static String HMACSHA256(byte[] data, byte[] key) { try { SecretKeySpec signingKey = new SecretKeySpec(key, "HmacSHA256"); Mac mac = Mac.getInstance("HmacSHA256"); mac.init(signingKey); return URLEncoder.encode(Base64.encodeBase64String(mac.doFinal(data))); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } return null; } } 将转换后的字符串赋值给sveSignature,sveSignature参数拼接到大屏分享链接中获取新的访问链接。 例如,新的访问链接https://console.ulanqab.huawei.com/sve/preview.html?sveSignature=1OP99N6yxCDmEiH4aNMU1GAwtKspSg4fJ/zh0679k=®ion=cn-north-7#/screen/share/18cd21df7bc-WPgj_GqRc
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格