华为云用户手册

  • 适用计费项 根据需要托管的微服务实例数量总额选择ServiceComb引擎的规格,系统会根据选择的引擎规格计费,以下计费项支持按需计费。 表1 适用计费项 计费项 说明 ServiceComb引擎实例规格单价(元/小时) 根据您选择的ServiceComb引擎实例规格计费。ServiceComb引擎实例规格当前支持微服务实例数为100、200、500、2000。各实例规格单价请参见ServiceComb引擎专享版价格详情。 假设您计划购买一个微服务实例数为100规格的ServiceComb引擎专享版。在购买ServiceComb引擎专享版页面底部,您将看到所需费用的明细,如图1所示。 图中价格仅供参考,实际计算请以ServiceComb引擎专享版价格详情中的价格为准。 图1 配置费用示例
  • 计费示例 假设您在2023/04/18 9:59:30购买了一个按需计费ServiceComb引擎专享版(规格:微服务实例数100),然后在2023/04/18 10:45:46将其删除,则: 第一个计费周期为9:00:00 ~ 10:00:00,在9:59:30 ~ 10:00:00间产生费用,该计费周期内的计费时长为30秒。该计费周期内的花费为:8.30÷3600*30=0.07元。 第二个计费周期为10:00:00 ~ 11:00:00,在10:00:00 ~ 10:45:46间产生费用,该计费周期内的计费时长为2746秒。该计费周期内的花费为:8.30÷3600*2746=6.33元。 您需要为每个计费周期付费,计费公式如表2所示。产品价格详情中标出了资源的每小时价格,您需要将每小时价格除以3600,得到每秒价格。 表2 计费公式 资源类型 计费公式 资源单价 ServiceComb引擎专享版 实例规格单价 * 计费时长 请参见ServiceComb引擎专享版价格详情中的价格。 该示例中的价格仅供参考,实际计算请以ServiceComb引擎专享版价格详情中的价格为准。
  • 请求示例 PUT https://{endpoint}/v3/{project_id}/govern/route-rule/microservices/{service_name} [ { "precedence" : 1, "match" : { "headers" : { "aaaa" : { "exact" : "bbbb*", "caseInsensitive" : false } } }, "route" : [ { "name" : "rule_1", "weight" : 20, "tags" : { "version" : "1.0.0" } } ] } ]
  • 使用OneAcceess用户门户登录华为云 华为云支持基于SAML、OIDC协议的单点登录,企业管理员在华为云和OneAccess进行配置后,普通用户登录OneAccess用户门户,即可免密进入华为云Console系统或者是某个具体的华为云应用。 通过OneAccess免密登录单个华为云账号(SAML-虚拟用户SSO) 通过OneAccess免密登录多个华为云账号(SAML-虚拟用户SSO) 通过OneAccess免密登录单个华为云账号(SAML-IAM用户SSO) 通过OneAccess免密登录多个华为云账号(SAML-IAM用户SSO) 通过OneAccess免密登录华为云(OIDC) 父主题: 集成企业应用
  • 示例流程 图1 给用户授权微服务引擎权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予CSE“CSE ReadOnlyAccess”权限。 创建用户并加入用户组。 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,验证微服务引擎的只读权限。 在“服务列表”中选择“微服务引擎 CSE”,进入微服务引擎控制台,在左侧导航栏选择“ServiceComb”,单击“购买微服务引擎”,若提示权限不足,表示“CSE ReadOnlyAccess”已生效。 在“服务列表”中选择除微服务引擎 CSE外的任一服务,若提示权限不足,表示“CSE ReadOnlyAccess”已生效。
  • 自定义策略样例 如下以定制一个IAM用户禁止创建及删除微服务引擎的策略为例。 { "Version": "1.1", "Statement": [ { "Action": [ "cse:*:*" ], "Effect": "Allow" }, { "Action": [ "cse:engine:create", "cse:engine:delete" ], "Effect": "Deny" } ] } Deny需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先原则。 权限授予成功后,用户可以通过控制台以及REST API等多种方式验证。 此处以上述自定义策略为例,介绍用户如何通过控制台验证自定义禁止创建微服务引擎的权限: 使用新创建的用户登录华为云,登录方法选择“IAM用户”。 “租户名”为该IAM用户所属华为云账号的名称。 “IAM用户名”和“IAM用户密码”为以“租户名”在IAM创建用户时输入的用户名和密码。 在微服务引擎控制台,创建微服务引擎,返回403错误,表示权限配置正确并已生效。
  • 适用计费项 根据需要具有的功能和企业规模选择OneAccess的规格和用户数,系统会根据选择的规格和用户数计费,以下计费项支持包年/包月。 支持购买时长为1~9个月或者1年、2年和3年。其中,购买时长为1年时,可享受实付10个月的优惠,购买时长为2年时,可享受实付20个月的优惠,购买时长为3年时,可享受实付30个月的优惠。 表1 适用计费项 计费项 说明 规格 OneAccess提供了基础版、专业版两种规格。 用户数 根据购买OneAccess实例设置的用户数计费。 假设您计划购买一个专业版的OneAccess实例,且用户数为1000。在价格计算器页面,您将看到所需费用的明细,如图1所示。 图1 费用示例
  • 计费周期 包年/包月OneAccess实例的计费周期是根据您购买的时长来确定的(以GMT+8:00时间为准)。一个计费周期的起点是您开通或续费资源的时间(精确到秒),终点则是到期日的23:59:59。 例如,如果您在2023/03/08 15:50:04购买了一台时长为一个月的OneAccess实例,那么其计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59。
  • 计费示例 假设您在2023/03/08 15:50:04购买了一个包年/包月OneAccess实例(规格:专业版,用户数:1000)。购买时长为一个月,并在到期前手动续费1个月,则: 第一个计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59 第二个计费周期为:2023/04/08 23:59:59 ~ 2023/05/08 23:59:59 您需要为每个计费周期预先付费,总费用=实例规格单价 * 购买时长。
  • 适用场景 包年/包月计费模式需要用户预先支付一定时长的费用,适用于长期、稳定的业务需求。以下是一些适用于包年/包月计费模式的业务场景: 稳定业务需求:对于长期运行且资源需求相对稳定的业务,如企业官网、在线商城、博客等,包年/包月计费模式能提供较高的成本效益。 长期项目:对于周期较长的项目,如科研项目、大型活动策划等,包年/包月计费模式可以确保在整个项目周期内资源的稳定使用。 业务高峰预测:如果能预测到业务高峰期,如电商促销季、节假日等,可提前购买包年/包月资源以应对高峰期的需求,避免资源紧张。 数据安全要求高:对于对数据安全性要求较高的业务,包年/包月计费模式可确保资源的持续使用,降低因资源欠费而导致的数据安全风险。
  • 到期后影响 图2描述了包年/包月OneAccess实例各个阶段的状态。购买后,在计费周期内实例正常运行,此阶段为有效期;实例到期而未续费时,将陆续进入宽限期和保留期。 图2 包年/包月OneAccess实例生命周期 到期预警 包年/包月OneAccess实例在到期前第7天内,系统将向用户推送到期预警消息。预警消息将通过邮件、短信和站内信的方式通知到华为云账号的创建者。 到期后影响 当您的包年/包月OneAccess实例到期未续费,首先会进入宽限期,实例状态变为“已过期”。宽限期内您可以正常访问云服务器,但变更OneAccess实例规格操作将受到限制。 如果您在宽限期内仍未续费包年/包月OneAccess实例,那么就会进入保留期,实例状态变为“已冻结”,您将无法对处于保留期的包年/包月实例执行任何操作。 保留期到期后,若包年/包月OneAccess实例仍未续费,那么实例将被释放,数据无法恢复。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 关于续费的详细介绍请参见续费概述。
  • 变更规格后对计费的影响 当前包年/包月OneAccess实例不满足您的业务需要时,您可以在OneAccess控制台发起变更规格操作,变更时系统将按照如下规则为您计算变更费用: 规格升配:新配置价格高于老配置价格,此时您需要支付新老配置的差价。 这里以实例升配且无任何优惠的场景为例,此处计算价格仅作示例用,非官网实际价格,实际价格请参考价格计算器。假设您在2023/04/08购买了一个OneAccess实例(规格:专业版,用户数:1000),购买时长为1个月,计划在2023/04/18变更规格为用户数为2000。旧配置价格为10,000.00 元/月,新配置价格为17,500.00 元/月。计算公式如下: 升配费用=新配置价格*剩余周期-旧配置价格*剩余周期 公式中的剩余周期为每个自然月的剩余天数/对应自然月的最大天数。本示例中,剩余周期=12(4月份剩余天数)/ 30(4月份最大天数)+ 8(5月份剩余天数)/ 31(5月份最大天数)=0.6581,代入公式可得升配费用=17500.00*0.6581-10000.00*0.6581=4935.75(元) 更多信息请参见变更资源规格费用说明。
  • 应用场景 /dev/shm由tmpfs文件系统构成,tmpfs是Linux/Unix系统上的一种基于内存的文件系统,故读写效率非常高。 目前有用户希望通过/dev/shm实现进程间数据交互或通过/dev/shm实现临时数据存储,此时CCI场景/dev/shm默认大小64M无法满足客户诉求,故提供修改/dev/shm size大小的能力。 本操作实践展示通过“memory类型EmptyDir”和“配置securityContext与mount命令”两种方式来修改/dev/shm容量。
  • 限制与约束 /dev/shm使用基于内存的tmpfs文件系统,不具备持久性,容器重启后数据不保留。 用户可通过两种方式修改/dev/shm容量,但不建议在一个Pod中同时使用两种方式进行配置。 EmptyDir所使用的memory从Pod申请的memory中进行分配,不会额外占用资源。 在/dev/shm中写数据相当于申请内存,此种场景下需评估进程内存使用量,当容器内的进程申请内存与EmptyDir中数据量之和超过容器请求的限制内存时,会出现内存溢出异常。 当需要修改/dev/shm容量时,容量大小通常设定为Pod内存申请量的50%。
  • 使用场景 在使用CCE或者其他K8s集群时,可以使用HostPath。由于CCI为共享集群,未开放HostPath能力,所以当使用HostPath的Pod想通过Virtual Kubelet弹到CCI时,会被vk-webhook拦截。如无法改变Pod spec.volumes中配置的HostPath,当前可通过配置Annotation的形式,允许让使用HostPath的Pod弹性到CCI上,但是VK在校验时需要去掉Pod中的HostPath或者将HostPath替换为localDir、emptyDir或者flexVolume。 通过在Pod.Annotations中加入注解可以做到HostPath转localDir、emptyDir或者flexVolume。
  • 基本概念 企业管理员 企业管理员包括主账号或拥有OneAccess管理权限的用户。企业管理员在OneAccess管理门户负责用户(组)、组织、应用及API等实体的管理。 系统管理员 系统管理员由企业管理员在统一身份认证服务中创建,拥有对企业所有组织结构、用户、应用及除创建管理员以外其他管理门户菜单的管理权限。 普通用户 普通用户是企业应用使用者,包含企业员工、合作伙伴、客户等。普通用户可以登录OneAccess用户门户访问和操作应用。 父主题: 使用前必读
  • 技术特点 完整的事务一致性 体现在数据插入或者更新后提交即可见,不存在时延;并发更新后数据保证强一致,不会出现乱序导致的结果预期不一致。 查询性能好 多表关联等复杂AP查询场景下,更完善的分布式查询计划与分布式执行器带来的性能优势,支持复杂的子查询和存储过程。 入库快 彻底解决列存CU锁冲突问题,支持高并发的更新入库操作,典型场景下,并发更新性能是之前的百倍以上。 高压缩 数据在MERGE进入列存主表后,按列存储具有天然的压缩优势,能极大地节省磁盘空间与IO资源。 查询加速 支持主键等传统索引能力去重和加速点查,也支持分区、多维字典、局部排序等方式进一步加速AP查询。
  • 行存、列存、HStore表对比 表2 行存、列存、HStore表对比 表类型 行存表 列存表 HStore表 数据存储方式 以元组为单位,将每一条数据的所有属性值存储到临近的空间里。 以CU(Compress Unit)为单位,将单个属性的所有值存储到临近的空间里。 数据主要以CU形式存储在列存主表上,对于被更新的列、小批量插入的数据将被序列化后存储到新设计的Delta表上。 数据写入 行存压缩暂未商用,数据按原始状态存储,磁盘空间占用较大。 按列存储时,由于属性值类型相同具有天然的压缩优势。数据写入时能极大节省IO资源与磁盘空间占用。 批量插入的数据直接写入CU,具有与列存一致的压缩优势。 被更新的列、小批量插入的数据会序列化后压缩。同时定期merge到主表CU。 数据更新 数据按行更新,没有CU锁问题,并发更新(update/upsert/delete等)性能好。 即使更新单条数据,也要获取整个CU的锁,基本无法支持并发更新(update/upsert/delete等)。 彻底解决列存更新的CU锁问题,并发更新(update/upsert/delete等)的性能达到行存的60%以上。 数据读取 按行读取,即使只需访问某一列的数据,也需要将一整行的数据取出。查询性能较差。 按列读取时只需访问该列的CU,再加上CU的压缩优势导致需要占用的IO资源更少,读取性能很好。 对于列存主表的数据按列读取,对于被更新的列、小批量插入的数据会反序列化后取出,数据merge到主表后具有与列存一致的数据读取优势。 优点 并发更新性能好。 查询性能好,磁盘占用空间少。 并发更新性能好,数据MERGE后具有与列存一致的查询性能优势与压缩优势。 缺点 占用磁盘空间多,查询性能差。 基本无法支持并发更新。 需要后台常驻线程对HStore表进行merge清理操作。先merge到CU主表再进行清理,与SQL语法中的Merge无关。 适用场景 更新删除操作频繁的TP事务场景。 点查询(基于索引的、返回数据量小的简单查询)。 查询分析为主的AP场景。 数据量大,存入后的更新删除操作少。 实时并发入库场景。 需要支持高并发的更新入库操作以及高性能的查询效率。
  • 与标准数仓的区别 实时数仓与标准数仓是GaussDB(DWS)的两种不同类型产品,在使用上也存在一定差异,具体可参考表1进行对比分析。 表1 实时数仓与标准数仓的差异 数仓类型 标准数仓 实时数仓 适用场景 融合分析业务,一体化OLAP分析场景。主要应用于金融、政企、电商、能源等领域。 实时入库+分析混合业务,上游数据实时入库+数据入库后实时高效查询场景。主要用于电商、金融等实时入库要求高的场景。 产品优势 性价比高,使用场景广泛。 支持冷热数据分析,存储、计算弹性伸缩,无限算力、无限容量等。 混合负载,入库性能强。 提供与列存相当的高性能查询效率与高压缩率的数据压缩能力。同时拥有处理传统TP场景的事务能力。 功能特点 支持海量数据离线处理和交互查询,数据规模大、复杂数据挖掘具有很好的性能优势。 支持海量数据高并发的更新操作入库以及高性能的查询效率。在数据规模大、入库并发高、查询要求高的场景下具有很好的性能优势。 SQL语法 SQL语法兼容性高,语法通用,易于使用。 兼容列存语法。 GUC参数 丰富的GUC参数,根据客户业务场景适配最适合客户的数仓环境。 兼容标准数仓GUC参数,同时支持实时数仓调优参数。
  • 操作场景 HTTPS是加密数据传输协议,安全性高,如果您需要保证业务建立安全连接,可以通过负载均衡的HTTP重定向功能,将HTTP访问重定向至HTTPS。 该功能可以满足您如下需求,PC、手机浏览器等以HTTP请求访问Web服务,配置了HTTP访问重定向至HTTPS后,后端服务器返回HTTPS的响应。默认强制以HTTPS访问网页。 因为HTTP标准协议只支持GET和HEAD方法的重定向,所以设置了HTTP重定向至HTTPS后,POST和其他方法会被改为GET方法,这是客户端浏览器的行为,而非ELB修改的。如果您需要实现除GET和HEAD方法以外的访问方式,建议直接使用HTTPS方式进行访问。 HTTP重定向至HTTPS是指所有的HTTP请求都将转给HTTPS监听器处理为HTTPS请求,但HTTPS请求是通过HTTP被发送给后端服务器的。 HTTP监听器重定向至HTTPS监听器,HTTPS监听器所关联的后端服务器上不能再安装证书,否则会引起HTTPS请求不生效。
  • 循环依赖 当循环调用模块时,一个模块可能在未完成执行时被返回。因此,需要仔细的规划模块间调用,以允许循环模块依赖在应用程序内正常工作。 例如,脚本a: console.log('a 开始'); exports.done = false; import * as b from 'b'; console.log('在 a 中,b.done = ', b.done); exports.done = true; console.log('a 结束'); 脚本b: console.log('b 开始'); exports.done = false; import * as a from 'a'; console.log('在 b 中,a.done = ', a.done); exports.done = true; console.log('b 结束'); 脚本main: console.log('main 开始'); import * as a from 'a'; import * as b from 'b'; console.log('在 main 中,a.done = ', a.done ',b.done = ', b.done); 当main加载a时,a又加载b。 此时,b又会尝试去加载a。 为了防止无限的循环,会返回一个a的exports对象的未完成的副本给b模块。然后b完成加载,并将exports对象提供给a模块。当main加载这两个模块时,它们都已完成加载,因此该程序的输出会是: main 开始 a 开始 b 开始 在 b 中,a.done = false b 结束 在 a 中,b.done = true a 结束 在 main 中,a.done=true,b.done=true
  • 标准库模块 低代码平台中有些模块会被编译成二进制,预先加载到内存中。例如,decimal、context都是系统预置的标准库模块。 在低代码平台中,会优先加载标准库模块, 例如: import * as http from 'http'; 始终返回内置的HTTP模块,即使有同名自定义模块。如果需要返回自定义的模块,请使用相对路径语法: import * as http from './http';
  • 扩展名 因为脚本实际上是存在数据库中的,所以脚本没有路径的概念,扩展名也没有特别的意义。 导入模块时,尽量采用不带扩展的方式。 import * as circle from './circle'; 平台只允许“.ts”扩展名文件存在,不允许包含“.js”后缀的模块,请尽量不要使用待扩展名的导入方式。如下方式等同上面的举例,但不推荐。 import * as circle from './circle.ts';
  • 标准库模块 低代码平台中有些模块会被编译成二进制,预先加载到内存中。例如,decimal、context都是系统预置的标准库模块。 在低代码平台中,会优先加载标准库模块, 例如: import * as http from 'http'; 始终返回内置的HTTP模块,即使有同名自定义模块。如果需要返回自定义的模块,请使用相对路径语法: import * as http from './http';
  • 循环依赖 当循环调用模块时,一个模块可能在未完成执行时被返回。因此,需要仔细的规划模块间调用,以允许循环模块依赖在应用程序内正常工作。 例如,脚本a: console.log('a 开始'); exports.done = false; import * as b from 'b'; console.log('在 a 中,b.done = ', b.done); exports.done = true; console.log('a 结束'); 脚本b: console.log('b 开始'); exports.done = false; import * as a from 'a'; console.log('在 b 中,a.done = ', a.done); exports.done = true; console.log('b 结束'); 脚本main: console.log('main 开始'); import * as a from 'a'; import * as b from 'b'; console.log('在 main 中,a.done = ', a.done ',b.done = ', b.done); 当main加载a时,a又加载b。 此时,b又会尝试去加载a。 为了防止无限的循环,会返回一个a的exports对象的未完成的副本给b模块。然后b完成加载,并将exports对象提供给a模块。当main加载这两个模块时,它们都已完成加载,因此该程序的输出会是: main 开始 a 开始 b 开始 在 b 中,a.done = false b 结束 在 a 中,b.done = true a 结束 在 main 中,a.done=true,b.done=true
  • 扩展名 因为脚本实际上是存在数据库中的,所以脚本没有路径的概念,扩展名也没有特别的意义。 导入模块时,尽量采用不带扩展的方式。 import * as circle from './circle'; 平台只允许“.ts”扩展名文件存在,不允许包含“.js”后缀的模块,请尽量不要使用待扩展名的导入方式。如下方式等同上面的举例,但不推荐。 import * as circle from './circle.ts';
  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 错误描述 400 CBC.0100 参数错误。 400 CBC.99000035 非合作伙伴子客户。 400 CBC.99007004 发起的业务操作存在不满足的业务检查项。 400 CBC.99007188 该客户已经实名认证或者实名认证在审核中。 400 CBC.99007191 客户实名认证次数超过最大配置值。 400 CBC.70600026 抱歉,华为云暂无法审核您提交的实名认证信息,请联系您的客户经理协助。 403 CBC.0151 访问拒绝。 500 CBC.0999 未知错误。
  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 描述 200 CBC.0000 成功。 400 CBC.0100 参数错误。 403 CBC.0151 拒绝访问。 200 CBC.6006 找不到您询价的产品。 如果报此错误,请检查请求参数中的“productInfos”中 “cloudServiceType”、“resourceType”、“resourceSpecCode”及其他参数是否填写正确。 200 CBC.6055 询价结果超过金额最大限制。 500 CBC.0999 其他错误。
  • URI POST /v1.0/{domain_id}/customer/product-mgr/query-rating 参数说明请参见表1。 表1 URI参数说明 参数 是否必选 取值范围 描述 domain_id 是 最大长度:64 如果使用合作伙伴AK/SK或者Token,此处为合作伙伴ID,获取方法请参见如何获取合作伙伴ID(partner_id)。 如果使用客户AK/SK或者Token,此处为客户账号ID,您可以调用查询客户列表接口获取customer_id。
  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 描述 200 CBC.0000 成功。 400 CBC.0100 参数错误。 403 CBC.0151 拒绝访问。 200 CBC.6006 找不到您询价的产品。 如果报此错误,请检查请求参数中的“productInfos”中 “cloudServiceType”、“resourceType”、“resourceSpecCode”及其他参数是否填写正确。 200 CBC.6055 询价结果超过金额最大限制。 500 CBC.0999 其他错误。
共100000条