华为云用户手册

  • GaussDB (DWS)的数据库概念 数据库 数据库用于管理各类数据对象,与其他数据库隔离。创建数据库时可以指定对应的表空间,如果不指定相应的表空间,相关的对象会默认保存在PG_DEFAULT空间中。数据库管理的对象可分布在多个表空间上。 联机分析处理 联机分析处理(Online Analytical Processing,简称OLAP),是GaussDB(DWS)集群的主要工作方式,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 大规模并行处理 大规模并行处理(Massive Parallel Processing,简称MPP,也可称为无共享架构),是指在GaussDB(DWS)集群的每个节点中,都有独立的内存计算和磁盘存储系统,GaussDB(DWS)根据数据库模型和应用特点,将业务数据划分到不同节点上,通过节点间的网络彼此连接协同计算,使集群作为整体提供数据库服务以满足业务需要。 无共享架构 无共享架构(Shared Nothing Architecture)是一种分布式计算架构。这种架构中的每一个节点都是独立、自给的,使整个系统中不出现单点竞争的情况,以提高工作效率。 数据库版本 每个GaussDB(DWS)集群对应一个数据库版本,用户在创建GaussDB(DWS)集群时确认此集群的版本。 数据库连接 用户通过客户端连接GaussDB(DWS)集群的方式,实现数据库的连接。支持在华为云平台以及互联网环境上使用客户端进行连接。 数据库用户和角色 GaussDB(DWS)使用用户和角色来控制对数据库的访问。根据角色自身的设置不同,一个角色可以看做是一个数据库用户,或者一组数据库用户。在GaussDB(DWS)中角色和用户之间的区别只在于角色默认是没有 LOG IN权限的。在GaussDB(DWS)中一个用户唯一对应一个角色,不过可以使用角色叠加来更灵活地进行管理。 实例 实例在GaussDB(DWS)中是运行在内存中的一组数据库进程,一个实例可以管理一个或多个数据库,这些数据库组成一个集簇。集簇是存储磁盘上的一个区域,这个区域在安装时初始化并由一个目录组成,所有数据都存储在这个目录中,这个目录被称为数据目录,使用initdb创建。理论上来说一个服务器上可以在不同的端口启动多个实例,但是GaussDB(DWS)一次只能管理一个实例,启动和停止都是依赖于具体的数据目录。以后由于兼容的需要不排除引入实例名这个概念的可能。 表空间 在GaussDB(DWS)中,表空间是一个目录,可以存在多个,里面存储的是它所包含的数据库的各种物理文件。由于表空间是一个目录,仅是起到了物理隔离的作用,其管理功能依赖于文件系统。 模式 GaussDB(DWS)的模式是对数据库做一个逻辑分割。所有的数据库对象都建立在模式下面。GaussDB(DWS)的模式和用户是弱绑定的,所谓的弱绑定是指虽然创建用户的同时会自动创建一个同名模式,但用户也可以单独创建模式,并且为用户指定其他的模式。 V2表 V2表特指建表环节时,执行CREATE TABLE语法中定义的colversion取值为2.0的表,表示列存表的每列合并存储在一个文件中,文件名以relfilenode.C1.0命名,数据存储在本地盘。存算一体场景下,不指定colversion取值时,用户创建的列存表默认为V2表。 V3表 V3表特指建表环节时,执行CREATE TABLE语法中定义的colversion取值为3.0的表,即存算分离表,表示列存表的每列合并存储在一个文件中,文件名以C1_field.0命名,数据存储在OBS文件系统。存算分离场景下,不指定colversion取值时,用户创建的列存表默认为V3表。 事务管理 在事务管理上,GaussDB(DWS)采取了MVCC(多版本并发控制)结合两阶段锁的方式,其特点是读写之间不阻塞。GaussDB(DWS)的MVCC没有将历史版本数据统一存放,而是和当前元组的版本放在了一起。GaussDB(DWS)没有回滚段的概念,但是为了定期清除历史版本数据GaussDB(DWS)引入了一个VACUUM进程。一般情况下用户不用关注它,除非要做性能调优。此外,GaussDB(DWS)是自动提交事务。
  • GaussDB(DWS)的管理概念 集群 表示由多个节点组成的服务器群组。GaussDB(DWS)以集群为单位进行组织,一个GaussDB(DWS)集群由多个在相同子网中的相同规格的节点组成,共同提供服务。 节点 每个GaussDB(DWS)集群部署节点取值范围为3~256,其中存算一体(单机部署)取值为1,每个节点都支持存储与分析数据。详情请参见GaussDB(DWS)技术指标。 规格 用户创建GaussDB(DWS)集群时需要指定集群节点的规格,不同规格节点使用的CPU、内存和存储资源不同。 快照 快照是用户根据需要创建的GaussDB(DWS)集群备份,用于还原创建快照时的集群数据。快照会一直保存,直到用户使用管理控制台将此快照删除(自动快照不支持手动删除)。快照会占用用户购买使用的OBS配额。 Project Project用于将OpenStack的资源(计算资源、存储资源和网络资源)进行分组和隔离。Project可以是一个部门或者一个项目组。一个账户中可以创建多个Project。
  • 集群运维操作限制 表5 集群运维操作限制 限制项 说明 扩容集群 扩容期间集群会有闪断,请谨慎操作。 正在扩容的集群将禁用重启集群、停止集群、启动集群、规格变更、增删CN、扩容集群、缩容集群、创建快照、重置数据库管理员密码等功能。 如果当前集群是包年/包月计费模式,那么新增节点也是按照包年包月模式进行计费。 只有在扩容之后,集群任务信息为“待重分布”状态时才能手动使用“重分布”功能,其他时段该功能不可使用。 缩容集群 存算一体(集群部署)不支持缩容至单机部署集群。 正在缩容的集群禁用重启集群、扩容集群、创建快照、节点管理、智能运维、资源管理、参数修改、安全设置、日志服务、重置数据库管理员密码和删除集群的功能。 弹性规格变更 弹性规格变更仅支持E CS +EVS云盘的存算一体及存算分离集群,ECS本地盘的集群不支持。 弹性变更规格需要停止虚拟机,仅支持离线变更,变更时间大约需要5~10分钟。 包年/包月计费模式集群可进行弹性变更规格升配操作,默认按照包年包月计费,不支持直接降配操作,用户需转按需后再进行降配操作。 经典规格变更 存算一体(单机部署)及存算分离集群暂不支持经典变更规格功能。 如果当前集群是包年/包月计费模式,将不支持该功能。 经典变更规格最大支持调整到240节点,且原节点数量加调整后节点数量不大于480节点。 逻辑集群不支持经典变更规格。 备份恢复集群 对于有数据可靠性要求的用户,尤其是针对业务方无法通过上游重新导入进行数据恢复的场景,集群需要备份操作,避免人为或其他因素造成数据丢失后无法恢复。 存算一体(单机部署)暂不支持快照功能。 正在创建快照的集群,暂时无法提供完整服务,如无法执行重启、扩容、重置密码、修改集群配置信息等操作。 升级集群 8.1.3以前集群版本下发升级任务后,完成集群升级前不支持回滚或提交操作。 集群安装热补丁后无法建立容灾。 容灾管理 存算一体(单机部署)、存算分离以及多AZ集群不支持容灾功能。 灾备集群在容灾任务停止或者异常但灾备集群正常的情况下,可以提供读服务,灾备切换成功后可以提供读写服务。 容灾创建后,生产集群快照功能正常使用,但是灾备集群禁用快照功能,以及生产、灾备集群均禁用恢复功能。 不支持逻辑集群和资源池。 日志管理 非OBS场景下,此功能不可用。 经典变更规格、增删CN等变更CN场景会导致数据丢失,建议在执行变更期间关闭审计日志转储。
  • 命名限制 表3 命名限制 限制项 说明 集群名称 集群名称长度为4到64个字符,且不超过64个字节,1个中文字符为3个字节,其他字符为1个字节,不区分大小写,必须以字母或中文开头,可以包含中文、字母、数字、中划线或者下划线,不能包含其他的特殊字符。 管理员用户 只能由小写字母、数字或下划线组成。 必须以小写字母或下划线开头。 长度为6~64个字符。 用户名不能为GaussDB(DWS)数据库的关键字。GaussDB(DWS)数据库的关键字,具体请参见《SQL语法参考》中关键字章节。 角色名称 以字母开头,可以包含字母、数字、下划线,长度不超过63个字符。 用户名称 以字母开头,可以包含字母、数字、下划线,长度不超过63个字符。 快照名称 快照名称长度为4~64个字符,必须以字母开头,不区分大小写,可以包含字母、数字、中划线或者下划线,不能包含其他的特殊字符。 快照策略名称 策略名称要求在4位到92位之间,必须以字母开头,不区分大小写,可以包含字母、数字、中划线或者下划线,不能包含其他特殊字符,并且名称唯一。 告警规则名称 规则名称长度为6到64个字符,且只能是首位非数字的中文、英文、数字、斜线组合。 容灾名称 容灾名称在4位到64位之间,不区分大小写,必须以字母开头,可以包含字母、数字、中划线或者下划线,不能包含其他的特殊字符。
  • 集群基础操作限制 表4 集群基础操作限制 限制项 说明 绑定负载均衡 绑定ELB时,需创建和GaussDB(DWS)集群相同的区域、VPC以及企业项目的ELB进行绑定。 GaussDB(DWS)的ELB功能仅支持独享型ELB规格,不支持共享型ELB绑定操作。 解绑ELB时,GaussDB(DWS)侧会清除ELB中集群相关信息,但并不会删除用户ELB,请注意ELB本身的计费影响,防止不必要的成本支出。 增删CN节点 资源发放时默认CN数量为3,用户可以根据实际发放节点数量调整CN数量,范围为2~20。 删除CN节点过程中,如果只有一个节点异常,只能删除这个异常的节点;如果有两个及以上节点异常,不能删除CN节点,需要先处理恢复异常的节点后,才能删除CN节点。 资源负载管理 离线扩容过程中不支持资源管理功能,如开启了资源管理计划,请在进行离线扩容操作之前停止。 存算一体(单机部署)不支持资源管理功能。 逻辑集群管理 在实际业务场景中,建议用户尽可能将同一个数据库的表创建到同一个逻辑集群中。 物理集群切换逻辑集群时,如果原物理集群有数据则不支持切换。用户请确保切换时原物理集群数据为空。 重启集群 重启期间集群将无法提供服务。因此,在重启前,请确定集群中没有正在运行的任务,并且所有数据都已经保存。 如果集群正在处理业务数据,如导入数据、查询数据、创建快照或恢复快照时,一旦重启集群,有可能会导致文件损坏或重启失败。因此,建议停止所有集群任务后,再重启集群。 启动/停止集群 集群停止后实例关机,ECS场景下基础资源(vCPU、内存)不再保留,当再次启动云服务时,可能由于资源不足无法正常开机,请耐心等待,稍后再试。
  • 配额限制 表2 配额限制 资源类型 限制 说明 节点数 256 设置的节点数量不能大于用户可使用的节点配额或256个。如果可使用的节点配额不足,用户可以单击“申请扩大配额”以提工单的形式申请更多节点配额。 标签 每个集群最多可以添加20个标签。 更多信息请参见标签简介。 快照存储空间 GaussDB(DWS)提供了部分免费存储空间,用于存放您的快照数据,免费空间内不计费。 当快照数据存储空间超过免费空间大小时,超出部分按照 对象存储服务 (OBS)的计费规则进行计费,参见OBS价格详情。 免费空间大小是您的集群的总存储空间大小,即单节点存储空间大小 (副本)x 节点数。 自动备份保留天数 可设置为1~31天,默认为7天 系统会在保留期结束时删除到期快照。
  • GaussDB(DWS)技术指标 GaussDB(DWS)不同版本的技术指标如下所示。 表1 GaussDB(DWS)技术指标8.1.3-9.1.0版本 技术指标 8.1.3最大值 8.2.0最大值 8.2.1最大值 8.3.0最大值 9.1.0最大值 集群节点数 2048 2048 2048 2048 存算一体:2048 存算分离:采用多VW技术,最大支持256个VW,每个VW 1024个DN,建议VW不超过32个,每个VW不超过128个DN,所有VW的DN节点总数不超过2048。 并发连接数 分钟级复杂查询并发数:80 秒级短查询并发数:500 毫秒级短事务并发数:5000 分钟级复杂查询并发数:80 秒级短查询并发数:500 毫秒级短事务并发数:5000 分钟级复杂查询并发数:80 秒级短查询并发数:500 毫秒级短事务并发数:5000 分钟级复杂查询并发数:80 秒级短查询并发数:500 毫秒级短事务并发数:5000 存算一体: 分钟级复杂查询并发数:80 秒级短查询并发数:500 毫秒级短事务并发数:5000 存算分离: 多VW技术,可以实现并发数目的叠加,随着VW个数增加,支撑的并发数也可以相应的扩展,集群总的并发数目受GTM/CCN排队影响,建议不超过8192。 集群数据容量 20PB 20PB 20PB 20PB 存算一体: 20PB 存算分离: 数据存储在OBS上,理论上容量可以无限扩展。 单表大小 1PB 1PB 1PB 1PB 1PB 单行数据大小 1GB 1GB 1GB 1GB 1GB 单表列数(除Hudi表外) 1600 1600 1600 1600 行存:1600 列存:1600 HStore:5000 Hudi表列数 - - 5000 5000 5000 分区表的分区个数 32768 32768 32768 32768 最大32768,建议不超过1000 集群内单点故障RTO 60s 60s 60s 60s 60s 集群内单点故障RPO 0 0 0 0 0 集群故障容灾切换RTO 60min 60min 60min 60min 60min 集群故障容灾切换RPO 60min 60min 60min 60min 60min VW(Virtual Warehouse):也称逻辑集群,DWS存算分离支持把一个物理集群拆分成多个VW,不同业务可以绑定不同VW,实现业务负载隔离和并发数目扩展。 表2 GaussDB(DWS)技术指标8.0.x-8.1.1版本 技术指标 8.0.x最大值 8.1.0最大值 8.1.1最大值 数据容量 10PB 10PB 20PB 集群节点数 256 256 2048 单表大小 1PB 1PB 1PB 单行数据大小 1GB 1GB 1GB 每条记录单个字段的大小 1GB 1GB 1GB 单表记录数 255 255 255 单表列数 1600 1600 1600 单表中的索引个数 无限制 无限制 无限制 单表索引包含列数 32 32 32 单表约束个数 无限制 无限制 无限制 并发连接数 分钟级复杂查询并发数:60 毫秒级短事务并发数:5000 分钟级复杂查询并发数:60 毫秒级短事务并发数:5000 分钟级复杂查询并发数:80 毫秒级短事务并发数:5000 分区表的分区个数 32768 32768 32768 分区表的单个分区大小 1PB 1PB 1PB 分区表的单个分区记录数 255 255 255 并发连接数的最大值基于数仓规格48 vCPU和64 vCPU。例如,存算一体云盘规格dwsk.12xlarge(48 vCPU | 384GB | 24000GB SSD)或dwsx2.16xlarge.m7 (64 vCPU | 512GB | 32000GB SSD)。
  • 数据备份 GaussDB(DWS)业务数据备份与恢复通过快照功能实现。 快照是对GaussDB(DWS)集群在某一时间点的一次全量数据和增量数据的备份,记录了当前数据库的数据以及集群的相关信息,其中包括节点数量、节点规格和数据库管理员用户名称等。GaussDB(DWS)可通过管理控制台进行快照的手动创建,也支持自定义自动快照策略,以便在计划时间内自动创建快照,以防止数据丢失。 当前GaussDB(DWS)数据库支持基于OBS介质的备份与恢复方式,详情请参见快照概述。 父主题: 数据保护技术
  • 维度 Key Value dcs_instance_id Redis实例 dcs_cluster_redis_node 数据节点 dcs_cluster_proxy_node Redis 3.0 Proxy集群实例Proxy节点 dcs_cluster_proxy2_node Redis 4.0及以上版本Proxy集群和读写分离实例Proxy节点 dcs_memcached_instance_id Memcached实例
  • DCS支持的迁移能力 DCS Redis:指的是华为云分布式缓存服务的Redis。 自建Redis:指的是在云上、其他云厂商、本地数据中心自行搭建Redis。 √表示支持,×表示不支持。 源端为其他云厂商Redis时,只有在满足和目标DCS Redis的网络相通、源Redis已放通SYNC和PSYNC命令这两个前提下,才可以使用在线迁移的方式,将源Redis中的数据全量迁移或增量迁移到目标Redis中,但其他云厂商的部分实例可能存在无法在线迁移的问题,可以采用离线或其它迁移方案,具体请参考迁移方案概览。
  • 迁移信息收集表 评估和准备阶段收集的信息填写参考下表: 表2 迁移信息收集 迁移源 信息项 说明 源Redis (列出所有待迁移的实例) 源Redis实例的IP地址 - Redis访问密码(如有) - 总数据量大小 执行info memory命令,参考used_memory_human的值得到总数据量大小。 用于评估迁移方案、DCS缓存实例规格、ECS可用磁盘空间等是否满足,以及预估迁移耗时(业务中断时间)。 不为空的数据库编号 info keyspace命令查询得到。 用于确认迁移是否涉及多数据库,非AOF文件方式迁移,部分开源工具可能须逐库处理导出和导入。 DCS缓存实例中,单机和主备实例支持0-255共256个数据库,集群默认只提供一个数据库。 各数据库的key数量 用于迁移后进行数据完整性验证。 数据类型 CDM 迁移服务当前支持Hash和String两种数据格式,如果源数据含有list、set之类数据,请采用第三方迁移工具。 华为云ECS(弹性云服务器) 如果待迁移实例较多,可准备多台ECS并行迁移 弹性IP地址 选择与DCS缓存实例网络互通的弹性云服务器进行数据导入,确保导入过程网络稳定。 带宽建议选取高配,提升数据传输效率。 系统登录用户/密码 - CPU/内存 部分迁移工具支持多线程并行导入,使用高规格ECS,能提升导入速度。 可用磁盘空间 ECS需要预留足够的可用磁盘空间,存储压缩文件以及解压后的缓存数据文件。 注:为提高数据传输效率,对于较大的数据文件,建议压缩后再传输到弹性云服务器。 DCS缓存实例 (根据源Redis实例数与数据量情况选择合适的规格与实例数) 实例连接地址 - 实例连接端口 - 实例访问密码 - 实例类型 - 实例规格/可用内存 - 网络配置 VPC 提前规划VPC,确保应用服务、DCS缓存实例等处于相同VPC中。 子网 - 安全组或白名单 由于Redis 3.0和Redis 4.0及以上版本实例部署模式不一样,控制访问方式也不一样,需要制定相应的安全组或白名单规则,确保网络连通。具体请根据目标Redis实例参考配置安全组或者配置白名单 ... ... 其他配置信息。
  • 购买Redis实例 进入购买缓存实例页面。 选择实例购买方式,支持“快速购买”和“自定义”两种购买方式。 “快速购买”的方式中提供了几种常用的“规格配置”,如图1,如果其中有适合您业务需求的实例类型及配置,您可以通过此方式快速选择并购买。如果您需要灵活的选择其他实例类型、实例规格等信息,请通过“自定义”的方式进行购买,如图2。 “快速购买”和“自定义”两种购买方式只有规格配置的选择方式不同,其他配置方式相同。 图1 快速购买规格配置 图2 自定义购买规格配置 选择“计费模式”。 在“区域”下拉列表中,选择靠近您应用程序的区域,可降低网络延时、提高访问速度。 选择“项目”,每个区域默认对应一个项目。 规格配置。如果您选择的是“快速购买”的方式,请从常见的几种规格配置中进行选择,配置说明请参考表3。如果您选择的是“自定义”的方式,请参考表4配置实例规格。 表3 规格配置说明(快速购买) 规格配置项 配置说明 产品类型-内存规格 产品类型包含“基础版”和“企业版”。Redis企业版与基础版差异 例如:基础版-16GB,为基础版产品类型,内存规格为16GB的实例。 版本号 Redis实例的版本号。不同Redis版本差异请参考Redis版本差异。 实例创建后,Redis的版本不支持变更或升级。如需使用更高版本的Redis实例,需重新创建高版本Redis实例,然后将原有Redis实例的数据迁移到高版本实例上。 实例类型 快速购买的实例类型包含:主备实例、Cluster集群、或Proxy集群实例。不同实例类型的介绍请参考DCS实例类型。 CPU架构 快速购买方式下的CPU架构为x86类型。 副本数 副本数为2,即实例的节点数为2(一个主节点,一个备节点)。 可用区 快速购买的实例主节点和备节点所在的可用区。 表4 规格配置说明(自定义购买) 规格配置项 配置说明 缓存类型 DCS仅支持购买Redis缓存类型。 产品类型 产品类型包含“基础版”和“企业版”。Redis企业版与基础版差异 仅当“版本号”选择6.0时,支持选择“基础版”和“企业版”,其他版本仅支持“基础版”。 版本类型 企业版实例的版本类型包含“高性能型”和“存储型”。 仅当“产品类型”选择“企业版”时,需要选择版本类型。 CPU架构 CPU架构包含“x86计算”和“Arm计算”两种。 推荐使用“x86计算”类型,部分Region已停售“Arm计算”类型。 版本号 当前DCS支持的Redis版本有:4.0、5.0、6.0和7.0。Redis 7.0目前为公测阶段,如果控制台无法选择7.0版本,请先联系客服添加Redis 7.0的白名单。不同Redis版本差异请参考Redis版本差异。 实例创建后,Redis的版本不支持变更或升级。如需使用更高版本的Redis实例,需重新创建高版本Redis实例,然后将原有Redis实例的数据迁移到高版本实例上。 实例类型 DCS支持的实例类型有:单机、主备、Proxy集群、Cluster集群、和读写分离。不同实例类型的特点和架构,请参考DCS实例类型。 目前Redis 6.0企业版仅支持主备实例类型。 不同Region支持购买的Redis版本和实例类型有所不同,购买时请以控制台实际界面为准。 可用区 选择“可用区”。当“实例类型”为主备、读写分离、Proxy集群、Cluster集群时,可用区会分为“可用区”和“备可用区”,您需要分别为主、备节点设置可用区(AZ)。 每个区域包含多个可用区,当前DCS支持将主备/读写分离/集群实例的主、备节点分别部署在不同的AZ内,使节点间电力与网络均物理隔离。您可以将应用程序也进行跨AZ部署,从而达到数据与应用全部高可用。 说明: 当Redis主备/读写分离/集群实例进行跨可用区部署时,如果其中一个可用区故障,另一个可用区的节点不受影响。备节点会自动升级为主节点,对外提供服务,从而提供更高的容灾能力。 由于实例跨可用区部署时网络访问效率略低于部署在同一可用区内,因此Redis实例跨可用区部署时,主备节点之间同步效率会略有降低。 如果需要提高访问速度,可选择和应用同一个可用区。 在“华南-广州”区域购买DCS实例时,因为该区域可用区1-5与可用区6-7的物理距离较远,为了防止内部访问时延较大,主备可用区不支持分别选择可用区1-5及可用区6-7。例如,主可用区选择了可用区1-5中的一个时,备可用区不支持选择可用区6-7。在其他区域下购买DCS实例时无此限制。 副本数 配置实例副本数。副本指缓存实例的节点。副本数为1表示实例没有备节点,副本数为2表示实例有备节点(一个主节点,一个备节点),副本数为3即实例有一个主节点,2个备节点。 不同版本和实例类型,支持的副本数范围不同,请以控制台显示为准。单机实例不支持设置“副本数”。 规格选择模式 仅当实例类型为集群实例时,支持选择“规格选择模式”,只能选择一种模式,不支持同时定义分片容量和分片数。 快速选择:无需定义单分片容量和分片数,从默认的实例规格中进行选择。 自定义分片容量:先定义单分片的容量,再配置实例规格。 自定义分片数:先定义分片数,再配置实例规格。 实例规格 在“实例规格”区域,选择符合您需求的内存规格。如需了解更多实例性能请参考实例规格。实例规格默认配额请以控制台显示为准。 您如需增加配额,单击规格下方的“申请扩大配额”,即可跳转到工单管理界面提交工单,增加配额。 配置实例网络环境信息。 选择已经创建好的“虚拟私有云”和“子网”。 如需通过弹性云服务器访问实例,请选择与弹性云服务器相同的虚拟私有云。 目前DCS实例创建完成后不支持切换虚拟私有云和子网,请谨慎选择。 您可以通过共享VPC功能,使用其他账号共享的VPC和子网,以实现网络资源的共享和统一管理,提升资源管控效率、降低运维成本。 在“IPv4地址”区域,设置实例IP地址(即内网IP)。 Cluster集群实例和企业版实例仅支持自动分配地址,其他实例类型都支持自动分配IP地址和手动分配IP地址,如果您需要自定义实例IP地址,请选择手动分配IP地址。 配置实例“端口”。购买的基础版Redis实例,支持自定义端口,自定义端口范围为1~65535的任意数字;如果未自定义,则使用默认端口6379。 如果购买的Redis版本为6.0企业版,不支持自定义端口,端口为6379。 在“安全组”下拉列表,选择已经创建好的安全组。 安全组是一组对弹性云服务器的访问规则的集合,为同一个VPC内具有相同安全保护需求并相互信任的弹性云服务器提供访问策略。 仅企业版Redis实例需要配置安全组。Redis基础版实例是基于VPCEndpoint,暂不支持安全组,建议基础版实例创建完成后配置实例白名单。 如果选择的安全组没有开放6379端口,页面增加显示“开放6379端口”的复选框并默认勾选,表示实例创建后,会默认放开该实例安全组的6379端口。如果所选的安全组没有放开6379端口,将无法连接到该实例。 设置实例的“名称”。 创建单个实例时,名称长度为4到64位的字符串。批量创建实例时,名称长度为4到56位的字符串,实例名称格式为“自定义名称-n”,其中n从000开始,依次递增。例如,批量创建两个实例,自定义名称为dcs_demo,则两个实例的名称为dcs_demo-000和dcs_demo-001。 选择“企业项目”。通过选择企业项目可以帮助您将相关的资源集中在一起,按企业项目的方式来管理云资源。 如果用户无法选择企业项目,建议检查用户权限,参考创建DCS时选择不到需要的企业项目处理。 设置实例密码。 “访问方式”:支持“密码访问”和“免密访问”,您可以设置访问实例时是否要进行密码验证。 选择免密访问方式时,存在安全风险,请谨慎使用。 若创建免密模式的Redis实例,创建成功后,可以通过重置密码进行密码设置,具体可参考修改Redis实例的访问方式。 “密码”和“确认密码”:只有“访问方式”为“密码访问”时,才会显示该参数,请在输入框中配置连接Redis实例的密码。 DCS服务出于安全考虑,在密码访问模式下,连接使用Redis实例时,需要先进行密码认证。 请妥善保存密码,并定期更新密码。系统无法获取您设置的密码内容。 单击“高级配置”,根据需要选择是否设置以下信息。 设置“参数配置”。请根据需要选择参数模板为“系统默认”或“使用自定义模板”。 当选择“使用自定义模板”时,请从选择框中选择一个您需要的自定义参数模板。单击“查看参数”可以查看或修改所选参数模板的参数配置。如果没有提前创建该实例版本和实例类型的自定义参数模板,此时选择框为空,单击“查看参数模板列表”可以进入模板创建页面进行创建,创建方式请参考创建DCS实例自定义参数模板。 设置实例备份策略,根据需要选择是否开启“自动备份”。 只有当实例类型为主备、读写分离或者集群实例时显示该参数。关于实例备份的说明及备份策略的设置请参考备份与恢复说明。 当前暂不支持创建实例时配置“公网访问”,请在实例创建完成后前往详情页进行配置,具体请参考开启Redis公网访问并获取公网访问地址。 设置“标签”。 标签用于标识云资源,当您拥有相同类型的许多云资源时,可以使用标签按各种维度(例如用途、所有者或环境)对云资源进行分类。 如您的组织已经设定分布式缓存服务的相关标签策略,需要按照标签策略规则为缓存实例资源添加标签。如果标签不符合标签策略的规则,可能会导致缓存实例资源创建失败,请联系组织管理员了解标签策略详情。 如果您已经预定义了标签,在“标签键”和“标签值”中选择已经定义的标签键值对。另外,您可以单击右侧的“查看预定义标签”,系统会跳转到标签管理服务页面,查看已经预定义的标签,或者创建新的标签。 您也可以通过输入标签键和标签值,添加标签。标签的命名规格,请参考管理标签章节。 重命名实例高危命令。 当前支持的高危命令有command、keys、flushdb、flushall、hgetall、scan、hscan、sscan、和zscan,Proxy集群实例还支持dbsize和dbstats命令重命名,其他命令暂时不支持重命名。 设置实例维护时间窗。 设置DCS服务运维对实例进行维护的时间,在维护前,服务运维会提前和您沟通确认。 设置实例的“描述”。 设置实例购买时长。仅当Redis为包年/包月计费模式时,需要选择购买时长及是否需要自动续费。 设置实例购买数量。 实例信息配置完成后,单击“立即购买”,进入实例信息确认页面。 页面显示创建的分布式缓存服务的实例名称、缓存版本和实例规格等信息。 确认实例信息无误后,提交请求。 任务提交成功后,自动返回缓存管理页面,当新建实例的状态显示“运行中”时,实例创建成功。
  • 准备实例依赖资源 DCS的Redis实例部署于虚拟私有云(VPC)中,且需要绑定具体的子网,通过这样的方式为Redis提供隔离的、用户可自主配置管理的虚拟网络环境。如果是企业版Redis,还需要配置安全组,以提升实例的安全性。 因此,在创建Redis实例前您需要提前准备Redis实例的相关依赖资源:VPC、子网和安全组。如果已有VPC、子网和安全组,可重复使用,不需要重新创建。 表1 DCS依赖资源 准备资源 要求 创建指导 VPC和子网 不同的Redis实例可以重复使用相同的VPC和子网,也可以使用不同的VPC和子网,请根据实际需要进行配置。在创建VPC和子网时应注意如下要求: 创建的VPC与使用的DCS服务应在相同的区域。 创建VPC和子网时,如无特殊需求,配置参数使用默认配置即可。 创建VPC和子网的操作指导,请参考创建虚拟私有云和子网,若需要在已有VPC上创建和使用新的子网,请参考为虚拟私有云创建新的子网。 安全组 (仅创建企业版Redis实例时需要准备安全组) 不同的Redis实例可以重复使用相同的安全组,也可以使用不同的安全组,请根据实际需要进行选择。在创建安全组时应注意如下要求: 创建安全组时,“模板”选择“自定义”。 安全组创建后,请保留系统默认添加的入方向“允许安全组内的弹性云服务器彼此通信”规则和出方向“放通全部流量”规则。 Redis 6.0企业版实例必须添加如表2所示安全组规则,其他规则请根据实际需要添加。 创建安全组的操作指导,请参考创建安全组,为安全组添加规则的操作指导,请参考添加安全组规则。 表2 安全组规则 方向 协议 端口 源地址 入方向 TCP 6379 0.0.0.0/0
  • 修订记录 表1 修订记录 日期 版本 修订内容 2025-03-28 1.0.17 支持设置分享按钮可隐藏 控制栏按钮顺序调整 新辅流场景下,支持选看白板 新辅流场景下,支持虚拟背景能力 2024-12-17 1.0.16 支持自定义按钮 webrtc带宽消耗优化(小画面优化成180P) 移动端媒体设备权限,授权优化 2024-10-11 1.0.15 支持邀请与会者入会 切换到后台后是否允许麦克风收音 支持新辅流 2024-07-12 1.0.13 支持设置打点日志上传开关 2024-05-17 1.0.12 支持开启外邀第三方能力 移动端会中支持查看会议信息 2023-12-19 1.0.11 支持手机版 Android的微信浏览器和手机版 iOS的微信浏览器 RTP支持TCP 2023-07-06 1.0.10 支持同声传译(加入不同语言房间) 支持被邀打开摄像头、麦克风,共享 解决与会者列表中可能出现两个相同用户的问题 2023-01-06 1.0.9 解决MacOS13 Safari共享兼容性问题 2022-11-05 1.0.8 增加设置离会跳转链接 增加设置停止录制提示语 解决与新版本软终端配合兼容性问题 2022-06-29 1.0.7 解决chrome 103版本共享兼容性问题 2022-05-05 1.0.6 增加setLang接口,首次商用发布 2021-08-31 1.0.1 增加npm安装方式 2021-07-31 1.0.0 首次公测发布 父主题: Web SDK
  • GetConfDetail 接口描述 该接口用于获取会议的详细信息。 注意事项 该接口在已登录状态下才能调用。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode GetConfDetail(const char confId[HWM_MAX_CONF_ID_LEN]); 回调函数 1 virtual void OnGetConfDetail(hwmsdk::HwmErrCode ret, const char* reason, const HwmConfDetail* vmrInfoList) {}; 参数描述 表1 接口入参 参数 是否必须 类型 描述 confId 是 char[] 会议ID。 表2 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 表3 结构体HwmConfDetail字段名 字段 类型 描述 confListInfo HwmConfListInfo 会议信息,参见 表3。 vmrFlag bool 是否是vmr会议。 vmrId char[] 云会议室唯一ID。 isRecordOn bool 是否有录制会议权限。 isLiveOn bool 保留。编辑会议时透传会议详情此字段。 isAutoRecord bool 是否开启自动录制会议 isGuestFreePwd bool 是否需要来宾免密。 isMailOn bool 是否发送邮件通知。 isSmsOn bool 是否发送短信通知。保留字段,暂不提供短信通知能力。 isEmailCalenderOn bool 是否发送日历通知。 joinConfRestrictionType HwmJoinConfPermissionType 会议准入设置 表3。 attendees HwmAttendeeInfo* 与会者列表,字段信息参见 预约会议 中表述。只能查询会前预约时添加的与会人和会中主持人邀请的与会人。如果是与会人主动加入的,这个接口查不出来。 attendeeLen unsigned int 与会者列表长度。 confServerType HwmConfServerType 会议服务器类型 1:RTC or 0:MCU isOpenWaitingRoom bool 是否开启等候室 vmrConfIdType HwmVmrConfIdType 云会议室的会议ID类型,参见HwmVmrConfIdType。 allowGuestStartConf bool 是否允许来宾提前启动会议。 allowGuestStartConfTime unsigned int 允许来宾提前入会时间范围(单位:分钟) :0-随时,n-提前n分钟启动会议。 concurrentParticipants unsigned int 会议方数,会议最大与会人数限制:0为不限制。 defaultSummaryState HwmSummaryState 会议云录制是否包含纪要,初始值。 autoMuteMode HwmAutoMuteType 来宾入会,软终端是否自动静音。 hardTerminalAutoMuteMode HwmAutoMuteType 来宾入会,硬终端是否自动静音。 示例代码 1 2 3 4 5 6 7 8 /** * 获取会议详情 */ int demoEditConfDlg::GetConfDetail() { int ret =hwmsdkagent::GetConfDetail(GetConfID().c_str()); // 使用会议id查询会议详细信息 return ret; }
  • 环境要求 在Web SDK Demo的编译运行过程中请满足如下环境要求。 表1 环境要求 环境和工具名称 版本要求 说明 操作系统 Windows 10专业版 硬件要求: CPU:i5-2400四核 3.1GHz及以上 内存:4GB及以上 Visual Studio Code NA NA Node.js 14.x NA http-server 0.12.3 NA 测试资源及App ID申请 NA 请参见“开发前准备”。
  • 操作步骤 下载SDK和Demo源码 按照“SDK下载”章节,下载SDK的ZIP包。 解压ZIP包,得到如下文件及目录。 图1 SDK包的目录结构 下载Web SDK Demo依赖的第三方库 由于Web SDK Demo中引入了4个第三方库文件,请提前下载,并放在与HWMeeting.js同一目录下。如下图所示: 图2 下载依赖的第三方库文件 这4个文件的建议下载地址如下: https://cdnjs.cloudflare.com/ajax/libs/react/17.0.2/umd/react.development.js https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.2/umd/react-dom.development.js https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.3/moment.min.js https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.3/css/bulma.min.css 如果由于某些原因,上述地址无法访问,请自行搜索下载。 使用Visual Studio Code打开文件 图3 打开文件夹 指定端口启动本地调试 此步骤前提是已经安装Node.js 在命令行上执行如下命令安装http-server 1 npm install http-server -g 命令行进入meeting-demo.html所在路径,指定端口号启动http-server 1 http-server . -p 8000 图4 启动成功 在Google Chrome浏览器中打开 访问地址:http://localhost:8000/meeting-demo.html 注意:此处访问使用localhost作为 域名 ,而没有使用编译器中的IP,原因是Chrome 47以后,getUserMedia API只能允许来自“安全可信”的客户端的视频音频请求,如https和本地的localhost。如果页面的脚本从一个非安全源加载,Chrome会抛出错误。 使用Demo入会 浏览器Demo展示如下图: 图5 Web Demo启动后界面 使用华为云会议创建一个会议/网络研讨会后, 可以使用会议ID和密码,匿名入会; 也可以通过“执行App ID鉴权”,一键获取token,然后实名入会。 图6 Web Demo会中界面
  • EditConf 接口描述 该接口用于编辑已预约的会议。 注意事项 该接口在已登录状态下才能调用。 调用该接口时,仅能编辑尚未开始的会议,若会议已召开,接口将返回失败。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 所有字段必填,编辑会议前需要查询会议详情,不需要变更的数据请使用查询会议详情返回的数据赋值。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode EditConf(const HwmEditConfParam *confParam); 回调函数 1 virtual void OnEditConfResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 表1 结构体HwmEditConfParam参数说明 参数 是否必须 类型 描述 confId 是 char[] 会议ID。 subject 是 char[] 会议主题。 startTimeStamp 是 long long 会议开始时间,UTC时间戳,精度秒。 duration 是 int 会议时长,minute。 confType 是 HwmConfMediaType 会议类型。默认语音会议。 isNeedConfPwd 是 bool 是否需要密码。默认不需要密码。 isRecordOn 是 bool 录制会议开关。(字段即将废弃,不建议使用) isLiveOn 否 bool 保留。编辑会议时透传会议详情此字段。 isAutoRecordOn 是 bool 会议自动录制开关。 timeZone 是 int 时区码,请参考时区表。 vmrFlag 是 bool 是否是vmr会议。不可修改,填入会议详情返回值(废弃) vmrId 否 char[] 云会议室唯一ID。不可修改,填入会议详情返回值 joinConfRestrictionType 是 HwmJoinConfPermissionType 允许入会范围限制。默认所有用户。 isSmsOn 是 bool 发送短信通知开关,企业配置里面需要开启,否则不生效。 isMailOn 是 bool 发送邮件通知开关。 isEmailCalendarOn 是 bool 发送邮件日历开关。 attendees 是 HwmAttendeeInfo* 与会者列表。 attendeeLen 是 unsigned int 与会者列表长度。 vmrConfIdType 是 HwmVmrConfIdType 云会议室的会议ID类型。不可修改,会议详情中vmrConferenceId非空,填入HWM_VMR_CONF_ID_TYPE_FIXED;会议详情中vmrConferenceId为空,填入HWM_VMR_CONF_ID_TYPE_RANDOM isOpenWaitingRoom 否 bool 等候室开启开关 说明: 需要等候室功能开通后才能生效 allowGuestStartConf 否 bool 是否允许来宾提前启动会议。 说明: 仅针对随机会议ID的会议生效。 固定会议ID的会议,请使用修改云会议室信息接口设置。 allowGuestStartConfTime 否 unsigned int 允许来宾提前入会时间范围(单位:分钟) :0-随时,n-提前n分钟启动会议。 concurrentParticipants 否 unsigned int 会议方数,会议最大与会人数限制。 注:不填则不限制 customInfo 否 char[] 自定义扩展信息 defaultSummaryState 否 HwmSummaryState 会议云录制是否包含纪要,初始值。 autoMuteMode 否 HwmAutoMuteType 来宾入会,软终端是否自动静音。 hardTerminalAutoMuteMode 否 HwmAutoMuteType 来宾入会,硬终端是否自动静音。 返回值 表2 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 /** * 编辑会议接口 */ int demoEditConfDlg::EditConf() { hwmsdkagent::HwmConfDetail confDetail{0}; //从缓存中得到会议详情数据赋予confDetail hwmsdkagent::HwmEditConfParam editConfParam{ 0 }; //根据实际需求拷贝confDetail的数据 strncpy_s(editConfParam.confId, confDetail.confListInfo.confId, HWM_MAX_CONF_ID_LEN); editConfParam.vmrFlag = confDetail.vmrFlag; strncpy_s(editConfParam.vmrId, confInfo.vmrId, HWM_MAX_VMR_CONF_ID_LEN); // 此处省略部分赋值代码 editConfParam.timeZone = 56; // 本地时区,用户依据自身情况自己调整,56东八区 editConfParam.isRecordOn = false; editConfParam.isAutoRecordOn = false; editConfParam.startTimeStamp = 1598398920; //utc时间戳 editConfParam.duration = 0 * 60 + 30;//会议时长 editConfParam.joinConfRestrictionType = hwmsdkagent::HwmJoinConfPermissionType::RESTRICTION_CALL_IN_ALL; //取编辑会议上面的允许入会用户类型 // vmrConferenceId非空是固定ID,为空则是随机id editConfParam.vmrConfIdType = (strlen(confInfo.confListInfo.vmrConferenceId) != 0) ? hwmsdkagent::HwmVmrConfIdType::HWM_VMR_CONF_ID_TYPE_FIXED : hwmsdkagent::HwmVmrConfIdType::HWM_VMR_CONF_ID_TYPE_RANDOM; return hwmsdkagent::EditConf(&editConfParam); }
  • 开发环境准备 在开发的过程中请满足如下环境要求。 表1 环境要求 环境和工具名称 版本要求 说明 操作系统 见表2 硬件要求: CPU:i5-2400四核 3.1GHz及以上。 内存:4GB及以上。 浏览器 见表2 - TypeScript 如果客户端用TypeScript开发,TypeScript的版本不低于3.8.3。 - 华为云会议资源 - 开通方法请参见“开发前准备”。 App ID申请 - App ID的介绍及申请请参考“App ID鉴权介绍”。 表2 浏览器支持 OS Windows Mac Android iOS 14.3+ 浏览器版本 Chrome 73+ Safari 13+,Chrome 73+ 手机微信浏览器(Wechat 8.0+) 手机微信浏览器(Wechat 8.0+) 视频(查看) √ √ √ √ 摄像头 √ √ √ √ 麦克风 √ √ √ √ 扬声器 √ √ √ √ 屏幕共享(查看) √ √ √ √ 屏幕共享(发起) √ √ × ×
  • 成本优化 成本控制 企业可以在成本中心的“预算管理”页面创建精细粒度的预算来管理成本和使用量,在实际或预测超过预算阈值时,自动发送通知给指定消息接收人。企业还可以创建预算报告,定期将指定预算进展通知给指定消息接收人。 例如企业需要创建一个 企业主机安全 的按需成本预算,每月预算金额为20000元,当预测金额高于预算金额的80%时发送预算告警。那么,创建的预算如下: 图3 预算基本信息 图4 设置成本范围 图5 设置提醒 详细介绍请参见使用预测和预算来跟踪成本和使用量。 计费模式优化 不同类型的业务对资源使用周期有不同的要求,为每一类业务确定合适的计费模式,灵活组合以达到最优效果。 针对长期稳定的成熟业务,使用包年/包月计费模式。 针对不能中断的短期、突增或不可预测的业务,使用按需计费模式。
  • 成本分配 成本管理的基础是树立成本责任制,让各部门、各业务团队、各责任人参与进来,为各自消耗云服务产生的成本负责。企业可以通过成本分配的方式,将云上成本分组,归集到特定的团队或项目业务中,让各责任组织及时了解各自的成本情况。 华为云成本中心支持通过多种不同的方式对成本进行归集和重新分配,您可以根据需要选择合适的分配工具。 通过关联账号进行成本分配 企业主客户可以使用关联账号对子客户的成本进行归集,从而对子账号进行财务管理。详细介绍请参见通过关联账号维度查看成本分配。 通过企业项目进行成本分配 在进行成本分配之前,建议开通企业项目并做好企业项目的规划,可以根据企业的组织架构或者业务项目来划分。在购买云资源时选择指定企业项目,新购云资源将按此企业项目进行成本分配。详细介绍请参见通过企业项目维度查看成本分配。 图1 为企业主机安全选择企业项目 通过成本标签进行成本分配 标签是华为云为了标识云资源,按各种维度(例如用途、所有者或环境)对云资源进行分类的标记。推荐企业使用预定义标签进行成本归集,具体流程如下: 图2 为企业主机安全添加标签 详细介绍请参见通过成本标签维度查看成本分配。 使用成本单元进行成本分配 企业可以使用成本中心的“成本单元”来拆分公共成本。公共成本是指多个部门共享的计算、网络、存储或资源包产生的云成本,或无法直接通过企业项目、成本标签分配的云成本。这些成本不能直接归属于单一所有者,因此不能直接归属到某一类别。使用拆分规则,可以在各团队或业务部门之间公平地分配这些成本。详细介绍请参见使用成本单元查看成本分配。
  • 步骤三:新建开放接口 开放接口是用户将在应用中开发的脚本、服务编排等包装成自定义REST接口的形式,供其他系统进行调用。本示例将开发的服务编排包装发布REST接口,供业务用户登录页前台开发实施步骤中操作调用。 在“A”应用的设计器中,单击左侧导航栏的“集成”。 单击开放接口后的“+”,进入新建开放接口页面。 设置接口参数,单击“保存”。 图25 新建开放接口 表6 开放接口参数说明 参数 说明 示例 标签 新建API接口的标签,长度不能超过64个字符。 login 操作名称 新建API接口的操作名称,必须以英文字母开头,由英文字母,数字和单下划线组成,不能以单下划线结尾,且长度不能超过40个字符。 login 版本 API接口的版本,格式为“x.y.z”。 1.3.3 URL API接口路径, 固定以 /service/{命名空间}__{应用名}/{版本} 开头, 后面接API的具体路径。此处设置的内容是新建开放接口提供给外部访问的URL。 /service/命名空间__A/版本/Flow_login 类型 选择资源类型,只有服务编排类型的接口能够在服务编排中被调用,其他类型接口只能通过API的形式进行调用。 服务编排 资源 根据类型选择需要绑定的资源。 选择步骤二:通过服务编排开发登录页后端逻辑中创建的服务编排,请确保服务编排已启用,否则此处选择不到。 方法 API接口的HTTP方法。 本示例选择“POST”,即请求服务器新增资源或执行特殊操作。 POST
  • 步骤二:通过服务编排开发登录页后端逻辑 在“A”应用的设计器中,单击左侧导航栏的“逻辑”,单击编排后的,新建一个Flow目录。 图2 创建目录 将鼠标放在“Flow”上,单击界面上出现的“+”,进入添加服务编排页面。 选中“创建一个新的服务编排”,“标签”和“名称”设置为“login”,类型设置为“Autolaunched Flow”,单击“添加”。 图3 创建服务编排 定义服务编排用到的变量。 单击,展开全局上下文,再单击“变量”后的,设置参数名称为“username”。 图4 新增变量 重复上一步,定义表1中其他变量。 表1 服务编排变量说明 名称(变量名称,唯一标识) 数据类型 username 文本 password 文本 captcha 文本 msg 文本 userId 文本 loginMsg 文本 单击“公式”后的,在左侧公式弹窗中,设置“名称”为“portalUserLogin”,“表达式”为“PORTALUSERLOGIN({!username})”,单击“保存”。 图5 添加公式变量“portalUserLogin” 参考上一步,创建表2中公式变量“verifyCode”。 表2 公式变量说明 名称 表达式 portalUserLogin PORTALUSERLOGIN({!username}) verifyCode VERIFYCODEWITHTYPE({!captcha},"login") 拖拽图元到服务编排画布,并配置图元的基本属性。 从图元区分别拖拽脚本(1个)、决策(3个)、赋值(3个)图元到画布中,图元排列如下图所示。 图6 图元排列 选中“Script0”图元,在右侧基本信息中,设置“标签”为“查询用户”。 参考上一步,设置其他图元的“标签”属性,具体值如下表所示。 表3 设置其他图元标签属性 名称(变量唯一标识,不需要修改) 标签 Decision0 判断账号密码 Decision1 判断是否包含验证码 Decision2 校验验证码 Assignment0 账号密码错误 Assignment1 执行登录 Assignment2 验证失败 图7 修改后图元 配置“查询用户”脚本图元。 单击,指定图元对应的脚本名称 (命名空间__login),并配置脚本的输入输出参数。 图8 指定脚本 单击“全局上下文”,显示变量列表,从“变量”中,拖拽“username”、“password”和“captcha”到“输入参数”下对应的“源”输入框中,在“输出参数”下,单击4次“新增行”,依次添加下拉选项中的输出参数字段,并从“变量”中拖拽相应的字段到“目标”输入框下,字段与变量对应关系如下图所示。 脚本图元中,输入参数、输出个数和指定脚本中需要的输入参数字段数是一致的。如果自定义脚本的输入参数有额外字段,额外的字段也需要同样操作。 请直接从全局上下文拖拽“变量”到对应的输入输出参数下,如果手动输入请确认输入参数与全局上下文中变量的值一致。 图9 拖拽脚本的输入输出参数 配置“判断账号密码”决策图元。 选择“判断账号密码”图元,在右侧单击图标,修改“默认”的“名称”为“CheckFail”。 图10 修改“默认”结果名称 单击“新增”,增加一个可编辑的结果,修改结果为“CheckSuccess”,在“可视”下单击“新增行”,并拖拽变量中的“msg”到“资源”下,设置“比较符”为“==”,“值”为“"登录成功!"”。 图11 修改可编辑的结果 请直接从全局上下文拖拽变量“msg”到“资源”下,如果手动输入请确认输入参数与全局上下文中变量的值一致。 “登录成功!”需要与“login”登录脚本中的输出参数一致。 配置“判断是否包含验证码”决策图元。 选择“判断是否包含验证码”图元,在右侧单击图标,修改“默认”的“名称”为“hasVerifyCode”。 图12 修改默认结果名称 单击“新增”,增加一个可编辑的结果,修改结果为“noVerifyCode”,在“可视”下单击“新增行”,并拖拽变量中的“captcha”到“资源”下,设置“比较符”为“==”,“值”为“""”。 图13 修改可编辑的结果 配置“校验验证码”决策图元。 选择“校验验证码”图元,在右侧单击图标,修改“默认”的“名称”为“verifyCodeFail”。 图14 修改“默认”名称 单击“新增”,增加一个可编辑的结果,修改结果为“verifyCodeSuccess”,在右侧选择“公式”,并从全局上下文中,拖拽“verifyCode”到“公式”下。 图15 修改可编辑的结果 配置“账号密码错误”赋值图元。 图16 配置“账号密码错误”图元 选择“账号密码错误”图元,在右侧单击图标,单击“新增行”。 从全局上下文的“系统变量”中,拖拽“$Flow.ResMsg”到“赋值”下,并设置“操作符”为“=”,拖拽“msg”到“值”。 单击“新增行”,拖拽“系统变量”下的“$Flow.ResCode”到“赋值”的“变量”下,设置“操作符”为“=”,设置“值”为“"1"”。 配置“执行登录”赋值图元。 图17 拖拽“执行登录”赋值的变量及值 选择“执行登录”图元,在右侧单击图标,单击4次“新增行”。 从全局上下文,拖拽“msg”等字段到“赋值”的“变量”下,并设置“操作符”为“=”,然后再拖拽“值”下的各个值,具体字段对应关系,如下图所示。 表4 变量与值对应关系 变量 操作符 值 loginMsg = {!portalUserLogin} msg = {!msg} username = {!username} userId = {!userId} 配置“验证失败”赋值图元。 图18 配置“验证失败”赋值图元 选择“验证失败”图元,在右侧单击图标,单击“新增行”。 从全局上下文“系统变量”,拖拽“$Flow.ResMsg”、“$Flow.ResCode”到“赋值”下,并设置操作符为“=”,分别设置“值”为“"账号或者密码错误!"”、“"1"”。 表5 赋值 变量 操作符 值 $Flow.ResMsg = "账号或者密码错误!" $Flow.ResCode = "1" 拖拽图元连线,并配置连线属性。 在画布上,把鼠标放在起点图元上,从“+”拖动鼠标,在起点图元和“查询用户”图元间增加连线;即将当前脚本设置为服务编排的起始节点。 依次在“查询用户”、“判断账号密码”、“判断是否包含验证码”、“执行登录”图元直接拖拽连线。 图19 拖拽连线 单击“判断账号密码”与“判断是否包含验证码”图元之间的连线,在右侧属性单击,在“连线”中修改“连线类型”为“CheckSuccess”。 图20 选中连线 单击“判断是否包含验证码”与“执行登录”图元之间的连线,在右侧属性单击,在“连线”中修改“连线类型”为“noVerifyCode”。 从“判断账号密码”图元上,拖拽一条连线到“账号密码错误”图元。 从“判断是否包含验证码”图元上,拖拽一条连线到“校验验证码”图元。 从“校验验证码”图元上,拖拽一条连线到“验证失败”图元。 从“校验验证码”图元上,拖拽一条连线到“执行登录”图元,并设置该连线的“连线类型”为“verifyCodeSuccess”。 连线拖拽完成,如下图所示。 图21 拖拽图元连线 定义服务编排的输入、输出参数,并保存服务编排。 鼠标在画布空白处点一下,单击右侧,设置服务编排的输入输出参数,如下图所示。 图22 拖拽服务编排的输入输出参数 服务编排的输入参数是用来执行服务编排时输入的参数,同时也是执行账号密码校验脚本时的输入参数。所以当账号密码校验脚本的有额外的输入参数字段,服务编排的输入参数也需要同步增加。 服务编排的输出参数是执行账号密码校验脚本时返回的参数,所以当账号密码校验脚本的有额外的输出参数字段,服务编排的输出参数也需要同步增加。 单击服务编排页面上方的,保存服务编排。 测试服务编排能否正常执行。 单击服务编排页面上方的,进入服务编排测试页面。 图23 服务编排测试页面 在“Flow Run”界面中,输入测试数据,单击“运行”。 其中,“test_cs”、“***”为业务用户的账号和密码。 { "username": "test_cs", "password": "***", "captcha": "" } 执行成功后,界面上会返回设备对象中的全部信息,示例如下: 图24 返回值示例 返回值提示登录成功,完成业务用户的登录。业务用户登录成功后,返回华为云Astro轻应用,刷新页面后在页面右上角可以看到当前登录的用户已变成在服务编排中输入的业务用户。 测试成功后,单击编辑器上方的,启用并发布服务编排。
  • 步骤六:智能助手模板应用个性化设置 为智能助手模板应用添加一个菜单项,保存并预览应用。 应用导航设置。 在应用设计器的导航栏中,选择“开始”,再单击“应用导航设置”。 图1 选择应用导航设置 在“主导航设置”页签,单击“新建”。 设置“菜单名称”为“AstroChat助手”、“唯一标识”为“AstroChat”,页面选择步骤五:创建智能助手模板对话界面中创建的标准页面,单击“保存”。 图2 设置菜单项 预览整体应用。 在智能助手模板应用设计器顶部菜单栏中,单击“运行”,选择“立即运行”,即可整体预览应用。 图3 立即运行应用 父主题: 构建智能助手模板操作步骤
  • 步骤二:智能助手模板应用项目初始化及配置 申请免费试用华为云Astro轻应用后,进入开发环境,创建一个智能助手模板应用。 在华为云Astro轻应用服务控制台,单击“进入首页”,进入应用开发页面。 图1 选择进入首页 在“主页”中,单击“低代码”中的,选择“新建空白应用”。 图2 选择新建空白应用 设置应用的基本信息,单击“新建”,进入智能助手模板应用设计器。 图3 新建空白应用 表1 新建空白应用参数说明 参数 说明 示例 标签 新建应用的标签,长度不能超过80个字符。标签是应用在系统中的唯一标识,创建后不支持修改。 智能助手模板 名称 新建应用的名称,输入标签值后单击该参数的输入框,系统会自动生成应用的名称,同时自动在名称前,添加命名空间__。命名要求如下: 长度不能超过31个字符,包括前缀命名空间的长度。 名称前的内容为命名空间,在华为云Astro轻应用中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不允许以下划线结尾。 AstroChat 父主题: 构建智能助手模板操作步骤
  • 为什么权限同步到 DLI 中,会提示权限不够? 权限同步到DLI的任务通过云服务委托(dlg_agency)完成,因此需要委托拥有 IAM 认证服务相关权限,具体所需权限如表1所示。 表1 待授予权限 权限名称 配置目的 是否必选 授权项/系统权限(二者选其一配置即可) IAM权限 系统获取用户或用户组、创建角色时,需要该权限。 例如用户或权限同步时,如果无此权限会导致操作失败。 MRS /DWS/DLI权限管理时必选 iam:users:listUsers iam:groups:listGroups iam:users:listUsersForGroup iam:roles:createRole iam:roles:deleteRole iam:roles:updateRole iam:permissions:grantRoleToGroup iam:permissions:listRoleAssignments iam:permissions:revokeRoleFromGroup 说明: 受IAM权限策略影响,暂无可授权项支持获取DLI用户组。如果涉及DLI用户组的权限管理场景,需要授权Security Administrator系统权限。 Security Administrator DLI权限同步权限 DLI权限同步以及敏感数据发现时,需要该权限。 例如DLI权限同步时,如果无此权限会导致同步失败,系统提示权限不足。 DLI权限管理时必选 不支持授权项,需要配置系统权限DLI FullAccess和DLI Service Administrator DLI FullAccess DLI Service Administrator 如出现此提示,可参考如下示例完成委托授权(本例以授予系统权限为例): 登录IAM控制台。 在 统一身份认证 服务左侧导航窗格中,单击“委托”。 在搜索框中,搜索“dlg_agency”,找到dlg_agency委托项,单击“授权”。 图1 dlg_agency授权 在授权框中,分别搜索并勾选“Security Administrator”和“DLI FullAccess”,单击“下一步”。 图2 勾选Security Administrator 单击“确定”,给委托完成授权。授权后,等待15-30分钟,权限可正常同步到DLI。 父主题: 数据安全
  • 解决方案 开启归档日志。 以sysdba身份登录Oracle数据库。 执行SQL命令ARCHIVE LOG LIST查询当前数据库的归档状态,如下结果为未开启日志归档。 Database log mode No Archive Mode #非存档模式 Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 1 Current log sequence 2 执行SQL命令SHUTDOWN IMMEDIATE关闭数据库。 执行SQL命令STARTUP MOUNT启动数据库至MOUNT状态。 执行SQL命令ALTER DATABASE ARCHIVELOG启动归档模式。 执行SQL命令ARCHIVE LOG LIST查询归档状态,如下结果为已经开启归档日志。 Databaselogmode Archive Mode #存档模式 Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 1 Next log sequence to archive 2 Currentlogsequence 2 执行SQL命令ALTER DATABASE OPEN启动数据库。 Oracle开启数据库和需要迁移的表的补充日志。 执行以下SQL开启数据库补充日志。 ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; 开启需要实时同步的表的补充日志。 ALTER TABLE "schema_name"."table_name" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; 设置成功后通过以下SQL可以查询到ALL_COLUMN_LOGGING说明该表已经开通补充日志。 SELECT 'KEY', LOG_GROUP_TYPE FROM ALL_LOG_GROUPS WHERE OWNER = 'schema_name' AND TABLE_NAME = 'table_name'; "KEY" LOG_GROUP_TYPE KEY ALL_COLUMN_LOGGING 开通Oracle用户所需权限。 Oracle 19权限用户参考命令: sqlplus sys/password@//localhost:1521/ORCLCDB as sysdba CREATE USER mgrationuser IDENTIFIED BY mgrationuserPWD DEFAULT TABLESPACE logminer_tbs QUOTA UNLIMITED ON logminer_tbs CONTAINER=ALL; GRANT CREATE SESSION TO mgrationuser CONTAINER=ALL; GRANT SET CONTAINER TO mgrationuser CONTAINER=ALL; GRANT SELECT ON V_$DATABASE to mgrationuser CONTAINER=ALL; GRANT FLASHBACK ANY TABLE TO mrationuser CONTAINER=ALL; GRANT SELECT ANY TABLE TO mgrationuser CONTAINER=ALL; GRANT SELECT_CATALOG_ROLE TO mgrationuser CONTAINER=ALL; GRANT EXECUTE_CATALOG_ROLE TO mgrationuser CONTAINER=ALL; GRANT SELECT ANY TRANSACTION TO mgrationuser CONTAINER=ALL; GRANT LOGMINING TO mgrationuser CONTAINER=ALL; GRANT CREATE TABLE TO mgrationuser CONTAINER=ALL; GRANT CREATE SEQUENCE TO mgrationuser CONTAINER=ALL; GRANT EXECUTE ON DBMS_LOGMNR TO mgrationuser CONTAINER=ALL; GRANT EXECUTE ON DBMS_LOGMNR_D TO mgrationuser CONTAINER=ALL; GRANT SELECT ON V_$LOG TO mgrationuser CONTAINER=ALL; GRANT SELECT ON V_$LOG_HISTORY TO mgrationuser CONTAINER=ALL; GRANT SELECT ON V_$LOGMNR_LOGS TO mgrationuser CONTAINER=ALL; GRANT SELECT ON V_$LOGMNR_CONTENTS TO mgrationuser CONTAINER=ALL; GRANT SELECT ON V_$LOGMNR_PA RAM ETERS TO mgrationuser CONTAINER=ALL; GRANT SELECT ON V_$LOGFILE TO mgrationuser CONTAINER=ALL; GRANT SELECT ON V_$ARCHIVED_LOG TO mgrationuser CONTAINER=ALL; GRANT SELECT ON V_$ARCHIVE_DEST_STATUS TO mgrationuser CONTAINER=ALL; exit; Oracle 11g权限用户参考命令: sqlplus sys/password@host:port/SID AS SYSDBA; CREATE USER mgrationuser IDENTIFIED BY mgrationuserPDW DEFAULT TABLESPACE LOGMINER_TBS QUOTA UNLIMITED ON LOGMINER_TBS; GRANT CREATE SESSION TO mgrationuser; GRANT SELECT ON V_$DATABASE to mgrationuser; GRANT FLASHBACK ANY TABLE TO mgrationuser; GRANT SELECT ANY TABLE TO mgrationuser; GRANT SELECT_CATALOG_ROLE TO mgrationuser; GRANT EXECUTE_CATALOG_ROLE TO mgrationuser; GRANT SELECT ANY TRANSACTION TO mgrationuser; GRANT CREATE TABLE TO mgrationuser; GRANT ALTER ANY TABLE TO mgrationuser; GRANT CREATE SEQUENCE TO mgrationuser; GRANT EXECUTE ON DBMS_LOGMNR TO mgrationuser; GRANT EXECUTE ON DBMS_LOGMNR_D TO mgrationuser; GRANT SELECT ON V_$LOG TO mgrationuser; GRANT SELECT ON V_$LOG_HISTORY TO mgrationuser; GRANT SELECT ON V_$LOGMNR_LOGS TO mgrationuser; GRANT SELECT ON V_$LOGMNR_CONTENTS TO mgrationuser; GRANT SELECT ON V_$LOGMNR_PARAMETERS TO mgrationuser; GRANT SELECT ON V_$LOGFILE TO mgrationuser; GRANT SELECT ON V_$ARCHIVED_LOG TO mgrationuser; GRANT SELECT ON V_$ARCHIVE_DEST_STATUS TO mgrationuser; exit 备库只读权限参考: sqlplus sys/password@host:port/SID AS SYSDBA; CREATE USER mgrationuser IDENTIFIED BY mgrationuserPwd DEFAULT TABLESPACE LOGMINER_TBS QUOTA UNLIMITED ON LOGMINER_TBS; GRANT CREATE SESSION TO mgrationuser; GRANT SET CONTAINER TO mgrationuser; // 仅在CDB模式下需要该权限 GRANT SELECT ON V_$DATABASE to mgrationuser; GRANT SELECT ANY TABLE TO mgrationuser; GRANT SELECT_CATALOG_ROLE TO mgrationuser; GRANT EXECUTE_CATALOG_ROLE TO mgrationuser; // 允许连接器将数据字典写入Oracle重做日志,这是跟踪schema变更所必需的。 GRANT SELECT ANY TRANSACTION TO mgrationuser; GRANT LOGMINING TO mgrationuser; // 12c 及以上才需要该权限 GRANT EXECUTE ON DBMS_LOGMNR TO mgrationuser; // 12c以上无需,10c和11C 需要该权限 GRANT EXECUTE ON DBMS_LOGMNR_D TO mgrationuser; // 12c以上无需,10c和11C 需要该权限 // 以下为日志视图的查询权限 GRANT SELECT ON V_$LOG TO mgrationuser; GRANT SELECT ON V_$LOG_HISTORY TO mgrationuser; GRANT SELECT ON V_$LOGMNR_LOGS TO mgrationuser; GRANT SELECT ON V_$LOGMNR_CONTENTS TO mgrationuser; GRANT SELECT ON V_$LOGMNR_PARAMETERS TO mgrationuser; GRANT SELECT ON V_$LOGFILE TO mgrationuser; GRANT SELECT ON V_$ARCHIVED_LOG TO mgrationuser;
  • 问题案例总览 表1 问题案例总览 类型 相关文档 网络打通 数据源和migration资源组网络不通如何排查? 网络打通 数据源安全组放通哪些端口可满足Migration访问? Hudi 如何配置Hudi Compaction的Spark周期任务? DWS MySQL到DWS实时同步中,同步新增列的DDL时报错怎么办? MySQL到DWS实时同步中,DWS为什么需要对主键null值进行过滤? Kafka Kafka到DLI实时同步中,作业运行失败,报“Array element access needs an index starting at 1 but was 0”怎么办? Oracle Oracle数据源如何开通归档日志、查询权限和日志解析权限? PostgreSQL PostgreSQL数据源如何手动删除复制槽? 父主题: 数据集成(实时作业)
  • 解决方案 对于不同的数据源其使用的端口也不尽相同,具体可通过查看各数据源官方文档确定具体端口。 下表提供部分数据源端口情况,仅供参考。 表1 数据源使用端口概览 数据源 涉及端口 MySQL 3306 DWS 8000 PostgreSQL 5432 Oracle 1521 Kafka 非安全:9092/9094 安全:9093/9095 MRS Hudi MRS Hudi所使用端口较为复杂,具体请参考《MRS集群服务常用端口列表》。 图1 MRS Hudi安全组规则示例
  • 发布Agent Agent发布后,用户即可通过API接口调用或Web界面进行访问。 在创建Agent页面,单击“发布”。 选择发布渠道并设置发布密钥,单击“发布”。 表2 发布参数说明 参数 说明 选择发布渠道 本实践选择以Web Url的方式发布Agent,发布成功后可复制Web链接进行分享。 设置发布密钥 设置该密钥是确保发布分享Agent后,用户能正常调用Agent相关联的模型、工具、工作流和知识库。 输入AI原生应用引擎平台API Key,获取方式请参见新增平台API Key。 部署资源 选择发布方式:本实践选择免费额度。每个租户有3个免费额度,使用免费额度发布Agent运行速度相对缓慢。 如果您需要使用运行时引擎SKU额度,请参见购买AI原生应用引擎进行订购,一个额度代表一个节点数量。 节点数量:使用免费额度发布,默认为单节点部署。 发布后,在Agent列表的“复制发布地址”列,单击,复制发布地址进行分享。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全