华为云用户手册
-
Region内容灾部署能力 GaussDB (DWS)提供双集群Region内容灾能力,即在另一个可用分区(Region内)部署一个同构的GaussDB(DWS)灾备集群,如果生产集群所处的地理位置发生自然灾害,或者集群内部出现了故障从而导致生产集群无法正常对外提供读写服务,那么灾备集群可以切换为生产集群,从而保障业务连续性。 双集群容灾框架基于Roach备份恢复,在两套集群之间实现周期性的同步机制。该同步机制,自由灵活,两套集群之间,可分可合,无相互影响。可以实现小时级别的RTO和RPO,并且在非恢复期间,备集群是一个热备的状态,可以提供只读服务。 了解更多请参见集群容灾。
-
行级访问控制 在业务开发过程中,存在多个用户共同访问和维护同一张表的场景,需要针对不同用户设置不同行数据的访问权限。例如只允许用户A查看跟自己相关的行数据,即相对于表的管理员能看到全部表数据而言,用户A执行SELECT * FROM table_name的时候,只能看到部分行数据,不能看到所有,以行级进行数据访问控制,对此GaussDB(DWS)行级访问控制特性实现了这一功能。将数据库访问控制精确到数据表行级别,使数据库达到行级访问控制的能力。不同用户执行相同的SQL查询操作,读取到的结果是不同的。 用户可以在数据表创建行访问控制(Row Level Security)策略,该策略是指针对特定数据库用户、特定SQL操作生效的表达式。当数据库用户对数据表访问时,若SQL满足数据表特定的Row Level Security策略,在查询优化阶段将满足条件的表达式,按照属性(PERMISSIVE | RESTRICTIVE)类型,通过AND或OR方式拼接,应用到执行计划上。 行级访问控制的目的是控制表中行级数据可见性,通过在数据表上预定义Filter,在查询优化阶段将满足条件的表达式应用到执行计划上,影响最终的执行结果。当前受影响的SQL语句包括SELECT,UPDATE,DELETE。 了解更多请参见行级访问控制。 父主题: 身份认证与访问控制
-
存算分离规格 存算分离云盘规格,该规格弹性伸缩,无限算力、无限容量,规格详情请参见表5。 存算分离本地盘规格,该规格存储容量固定,不能够进行磁盘扩容和规格变更,只能进行节点扩容,规格详情请参见表6。 创建存算分离集群时规格仅显示后半部分(例如4U16G.4DPU),下列规格列表中前缀(dwsx3/dwsax3/dwsk3)代表存算分离对应的CPU架构。 表5 存算分离云盘规格 规格名称 CPU架构 vCPU 内存(GB) 单节点存储容量 步长(GB) DN数量 使用场景 dwsx3.4U16G.4DPU X86 4 16 20GB~2000GB 10 1 DWS的入门规格,一般用于测试、学习环境或者小型分析系统。 dwsk3.4U16G.4DPU ARM 4 16 20GB~2000GB 10 1 dwsax3.4U16G.4DPU X86 4 16 20GB~2000GB 10 1 dwsax3.4U32G.4DPU X86 4 32 20GB~2000GB 10 1 dwsx3.8U32G.8DPU X86 8 32 100GB~4000GB 100 1 适用于中小企规模企业内部 数据仓库 构建和报表分析。 dwsk3.8U32G.8DPU ARM 8 32 100GB~4000GB 100 1 dwsax3.8U32G.8DPU X86 8 32 100GB~4000GB 100 1 dwsax3.8U64G.8DPU X86 8 64 100GB~4000GB 100 1 dwsx3.16U64G.16DPU X86 16 64 100GB~8000GB 100 1 推荐在生产环境下使用,适用于绝大部分企业大数据量OLAP分析系统,BI报表,可视化大屏场景。 dwsk3.16U64G.16DPU ARM 16 64 100GB~8000GB 100 1 dwsax3.16U64G.16DPU X86 16 64 100GB~8000GB 100 1 dwsax3.16U128G.16DPU X86 16 128 100GB~8000GB 100 1 dwsx3.32U128G.32DPU X86 32 128 100GB~16000GB 100 2 dwsk3.32U128G.32DPU ARM 32 128 100GB~16000GB 100 2 dwsax3.32U128G.32DPU X86 32 128 100GB~16000GB 100 2 dwsax3.32U256G.32DPU X86 32 256 100GB~16000GB 100 2 dwsk3.48U192G.48DPU ARM 48 192 200GB~24000GB 100 4 有着极致的性能,适用于高吞吐数仓加工,高并发在线查询生产环境。 dwsx3.64U256G.64DPU X86 64 256 200GB~32000GB 100 4 dwsk3.64U256G.64DPU ARM 64 256 100GB~32000GB 100 4 dwsax3.64U256G.64DPU X86 64 256 100GB~32000GB 100 4 dwsax3.64U512G.64DPU X86 64 512 100GB~32000GB 100 4 dwsx3.96U768G.96DPU X86 96 768 100GB~48000GB 100 4 dwsk3.96U384G.96DPU ARM 96 384 100GB~48000GB 100 4 dwsax3.96U384G.96DPU X86 96 384 100GB~48000GB 100 4 dwsax3.96U768G.96DPU X86 96 768 100GB~48000GB 100 4 dwsx3.128U1024G.128DPU X86 128 1024 100GB~64000GB 100 4 dwsk3.128U512G.128DPU ARM 128 512 100GB~64000GB 100 4 dwsax3.128U512G.128DPU X86 128 512 100GB~64000GB 100 4 dwsax3.128U1024G.128DPU X86 128 1024 100GB~64000GB 100 4 表6 存算分离本地盘规格 规格名称 CPU架构 vCPU 内存(GB) 单节点存储容量 DN数量 使用场景 dws3.16U128G.i7.16DPU X86 16 128 2980GB 1 推荐在生产环境下使用,适用于绝大部分企业大数据量OLAP分析系统,BI报表,可视化大屏等场景。 有着极致的性能,适用于高吞吐数仓加工,高并发在线查询生产环境。 dws3.16U64G.ki1.16DPU ARM 16 64 5960GB 1 dws3.32U256G.i7.32DPU X86 32 256 5960GB 2 dws3.32U128G.ki1.32DPU ARM 32 128 11920GB 2 dws3.64U512G.i7.64DPU X86 64 512 11920GB 4 dws3.64U228G.ki1.64DPU ARM 64 228 23840GB 4
-
存算一体规格 存算一体1:8云盘规格,该规格弹性伸缩,无限算力、无限容量,规格详情请参见表1。 存算一体1:4云盘规格,在大规模数据查询和分析能力基础上,提供高并发、高性能、低时延、低成本的事务处理能力。适用于HTAP混合负载场景,规格详情请参见表2。 存算一体(单机形态)规格,此时存算一体只支持单机部署,单机形态不提供高可用服务,因此存储成本可减半,单机模式服务可用性通过E CS 自动重建实现,数据可靠性通过EVS多副本机制保证。单机形态性价比更高,建议用于轻量化业务,创建集群时可选择带有h1的节点规格,规格详情请参见表3。 存算一体本地盘规格,该规格存储容量固定,不能够进行磁盘扩容,只能进行节点扩容,规格详情请参见表4。 步长指在集群变配过程中增大或减小磁盘大小的间隔大小。用户在操作时需要按照对应规格的存储步长来选择。 表1 存算一体1:8云盘规格 规格名称 CPU架构 vCPU 内存(GB) 单节点存储容量 默认存储 步长(GB) 建议存储 DN数量 使用场景 dwsx2.xlarge.m7 X86 4 32 20GB ~ 2000GB 100 10 800 1 DWS的入门规格,一般用于测试、学习环境或者小型分析系统。 dwsk2.xlarge ARM 4 32 20GB ~ 2000GB 100 10 800 1 dwsx2.xlarge.m7n X86 4 32 20GB ~ 2000GB 100 10 800 1 dwsk2.xlarge.km2 ARM 4 32 20GB ~ 2000GB 100 10 800 1 dwsx2.2xlarge.m7 X86 8 64 100GB ~ 4000GB 200 100 1600 1 适用于中小企规模企业内部数据仓库构建和报表分析。 dwsk2.2xlarge ARM 8 64 100GB ~ 4000GB 200 100 1600 1 dwsx2.2xlarge.m7n X86 8 64 100GB ~ 4000GB 200 100 1600 1 dwsk2.2xlarge.km2 ARM 8 64 100GB ~ 4000GB 200 100 1600 1 dwsx2.4xlarge.m7 X86 16 128 100GB ~ 8000GB 400 100 3200 1 dwsk2.4xlarge ARM 16 128 100GB ~ 8000GB 400 100 3200 1 dwsk2.4xlarge.km2 ARM 16 128 100GB ~ 8000GB 400 100 3200 1 dwsx2.8xlarge.m7 X86 32 256 100GB ~ 16000GB 800 100 6400 2 推荐在生产环境下使用,适用于绝大部分企业大数据量OLAP分析系统,BI报表,可视化大屏场景。 dwsk2.8xlarge ARM 32 256 100GB ~ 16000GB 800 100 6400 2 dwsx2.8xlarge.m7n X86 32 256 100GB ~ 16000GB 800 100 6400 2 dwsk2.8xlarge.km2 ARM 32 256 100GB ~ 16000GB 800 100 6400 2 dwsk2.12xlarge ARM 48 384 100GB ~ 24000GB 1200 100 9600 4 有着极致的性能,适用于高吞吐数仓加工,高并发在线查询生产环境。 dwsx2.16xlarge.m7 X86 64 512 100GB ~ 32000GB 1600 100 12800 4 dwsx2.16xlarge.m7n X86 64 512 100GB ~ 32000GB 1600 100 12800 4 dwsx2.16xlarge.m7 X86 64 512 100GB ~ 32000GB 1600 100 12800 4 dwsk2.16xlarge ARM 64 512 100GB ~ 32000GB 1600 100 12800 4 dwsx2.24xlarge.m7 X86 96 768 100GB ~ 48000GB 2400 100 19200 4 dwsk2.24xlarge ARM 96 768 100GB ~ 48000GB 2400 100 19200 4 dwsx2.32xlarge.m7 X86 128 1024 100GB ~ 48000GB 3200 100 25600 4 表2 存算一体1:4云盘规格 规格名称 CPU架构 vCPU 内存(GB) 单节点存储容量 步长(GB) DN数量 使用场景 dwsx2.h.xlarge.4.c7 X86 4 16 20GB ~ 2000GB 20 1 DWS的入门规格,一般用于测试、学习环境或者小型分析系统。 dwsk2.h.xlarge.4.kc1 ARM 4 16 20GB ~ 2000GB 20 1 dwsk2.h.xlarge.kc2 ARM 4 16 20GB ~ 2000GB 20 1 dwsx2.h.xlarge.4.c7n X86 4 16 20GB ~ 2000GB 20 1 dwsx2.h.2xlarge.4.c6 X86 8 32 100GB ~ 4000GB 100 1 适用于中小企规模企业内部数据仓库构建和报表分析。 dwsx2.h.2xlarge.4.c7 X86 8 32 100GB ~ 4000GB 100 1 dwsk2.h.2xlarge.4.kc1 ARM 8 32 100GB ~ 4000GB 100 1 dwsk2.h.2xlarge.kc2 ARM 8 32 100GB ~ 4000GB 100 1 dwsx2.h.2xlarge.4.c7n X86 8 32 100GB ~ 4000GB 100 1 dwsx2.h.4xlarge.4.c7 X86 16 64 100GB ~ 8000GB 100 1 推荐在生产环境下使用,适用于绝大部分企业大数据量OLAP分析系统,BI报表,可视化大屏等场景。 dwsk2.h.4xlarge.4.kc1 ARM 16 64 100GB ~ 8000GB 100 1 dwsk2.h.4xlarge.kc2 ARM 16 64 100GB ~ 8000GB 100 1 dwsx2.h.4xlarge.4.c7 X86 16 64 100GB ~ 8000GB 100 1 dwsx2.h.8xlarge.4.c7 X86 32 128 100GB ~ 16000GB 100 2 dwsk2.h.8xlarge.4.kc1 ARM 32 128 100GB ~ 16000GB 100 2 dwsk2.h.8xlarge.kc2 ARM 32 128 100GB ~ 16000GB 100 2 dwsx2.h.8xlarge.4.c7n X86 32 128 100GB ~ 16000GB 100 2 dwsk2.h.12xlarge.4.kc1 ARM 48 192 100GB ~ 24000GB 100 4 有着极致的性能,适用于高吞吐数仓加工,高并发在线查询生产环境。 dwsk2.h.12xlarge.kc2 ARM 48 192 100GB ~ 24000GB 100 4 dwsx2.h.16xlarge.4.c7 X86 64 256 100GB ~ 32000GB 100 4 dwsx2.h.16xlarge.4.c7n X86 64 256 100GB ~ 32000GB 100 4 dwsk2.h.16xlarge ARM 64 256 100GB ~ 32000GB 100 4 dwsk2.h.24xlarge ARM 96 384 100GB ~ 48000GB 100 4 dwsk2.h.32xlarge ARM 128 512 100GB ~ 64000GB 100 4 表3 存算一体(单机部署)规格 规格名称 CPU架构 vCPU 内存(GB) 单节点存储容量 步长(GB) DN数量 使用场景 dwsx2.h1.xlarge.2.c7 X86 4 8 20GB ~ 2000GB 20 1 DWS的入门规格,一般用于测试、学习环境或者小型分析系统。 dwsk2.h1.xlarge.2.kc1 ARM 4 8 20GB ~ 2000GB 20 1 dwsx2.h1.xlarge.2.c7n X86 4 8 20GB ~ 2000GB 20 1 dwsx2.h1.2xlarge.4.c7 X86 8 32 100GB ~ 4000GB 100 1 适用于中小企规模企业内部数据仓库构建和报表分析。 dwsk2.h1.2xlarge.4.kc1 ARM 8 32 100GB ~ 4000GB 100 1 dwsx2.h1.2xlarge.4.c7n X86 8 32 100GB ~ 4000GB 100 1 dwsx2.h1.4xlarge.4.c7 X86 16 64 100GB ~ 8000GB 100 1 推荐在生产环境下使用,适用于绝大部分企业大数据量OLAP分析系统,BI报表,可视化大屏场景。 dwsk2.h1.4xlarge.4.kc1 ARM 16 64 100GB ~ 8000GB 100 1 dwsx2.h1.4xlarge.4.c7n X86 16 64 100GB ~ 8000GB 100 1 dwsx2.h1.8xlarge.4.c7 X86 32 128 100GB ~ 16000GB 100 2 dwsk2.h1.8xlarge.4.kc1 ARM 32 128 100GB ~ 16000GB 100 2 dwsx2.h1.8xlarge.4.c7n X86 32 128 100GB ~ 16000GB 100 2 dwsk2.h1.12xlarge.4.kc1 ARM 48 192 100GB ~ 24000GB 100 4 有着极致的性能,适用于高吞吐数仓加工,高并发在线查询生产环境。 dwsx2.h1.16xlarge.4.c7 X86 64 256 100GB ~ 32000GB 100 4 dwsx2.h1.16xlarge.4.c7n X86 64 256 100GB~32000GB 100 4 表4 存算一体本地盘规格 规格名称 CPU架构 vCPU 内存(GB) 单节点存储容量 DN数量 使用场景 dws2.olap.4xlarge.i3 X86 16 128 1490GB 1 推荐在生产环境下使用,适用于绝大部分企业大数据量OLAP分析系统,BI报表,可视化大屏等场景。 有着极致的性能,适用于高吞吐数仓加工,高并发在线查询生产环境。 dws2.olap.4xlarge.ki1 ARM 16 64 2980GB 1 dws2.olap.8xlarge.i3 X86 32 256 2980GB 2 dws2.olap.8xlarge.ki1 ARM 32 128 5960GB 2 dws2.olap.16xlarge.i3 X86 64 512 5960GB 4 dws2.olap.16xlarge.ki1 ARM 64 228 11921GB 4
-
漏洞修复说明 表1 已修补的开源及第三方软件漏洞列表 软件名称 软件版本 CVE编号 CSS 得分 漏洞描述 受影响版本 解决版本 log4j 2.13.2 CVE-2021-44228 9.8 Apache Log4j2 2.0-beta9 through 2.15.0 (excluding security releases 2.12.2, 2.12.3, and 2.3.1) JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled. From log4j 2.15.0, this behavior has been disabled by default. From version 2.16.0 (along with 2.12.2, 2.12.3, and 2.3.1), this functionality has been completely removed. Note that this vulnerability is specific to log4j-core and does not affect log4net, log4cxx, or other Apache Logging Services projects. 8.0.0~8.1.2 8.1.3 父主题: 安全公告
-
功能介绍 透明 数据加密 (TDE)是指加密GaussDB(DWS)的数据文件。 通常在数据库的安全防护措施里面,可以采取一些消减措施来帮助保护数据安全。例如,设计一个安全系统、加密机密资产以及在数据库服务器的周围构建防火墙。 但是,如果遇到物理介质(如硬盘)被黑客或者内部人员盗取的情况,恶意破坏方只需还原或附加数据库即可浏览用户数据。 有一种解决方案是加密数据库中的敏感数据,并保护加密数据的密钥,该方案可以防止任何没有密钥的人使用这些数据,但这种保护必须事先计划。GaussDB(DWS)提供了完整的解决方案TDE。 TDE可对数据实时I/O加密和解密,只要打开透明加密开关,对正常使用的用户是无感知的。 这种加密使用数据库加密密钥 (DEK),该密钥不会直接存储在数据库系统中。 DEK是使用存储在KMS服务器的集群密钥(CEK)保护的对称密钥,数据库服务器仅仅保存其密文。在数据库启动阶段,数据库连接KMS服务器,并且解密DEK密文,从而获取到密钥明文,缓存在内存中。一旦机器下电或者集群关闭,密钥将会被清理。因此,需要保护好集群中的密钥文件,因为一旦丢失,则会造成不可恢复的危害。
-
使用场景 传统数据库集群中,用户数据明文保存在行存/列存文件中,集群的维护人员或者恶意攻击者可在OS层面绕过数据库的权限控制机制或者窃取磁盘直接访问用户数据。GaussDB(DWS)通过对接华为云数据加密服务的密钥管理KMS,可实现数据的透明加密,保障用户数据安全。 GaussDB(DWS)数据库级透明加密,每个GaussDB(DWS)集群有一个CEK,每个数据库单独配置DEK加密保护,DEK使用CEK加密保护,保存在GaussDB(DWS)集群侧。密钥通过KMS服务申请和加解密,加密算法通过配置项统一配置。目前支持AES、SM4算法。 当前支持数据库级别的透明加密,在创建集群的时候进行加密配置。 了解更多请参见数据库加密简介。
-
权限说明 如果您需要对华为云上购买的CodeArts IDE资源,给企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,您可以使用 统一身份认证 服务(Identity and Access Management,简称 IAM )进行精细的权限管理。IAM是华为云提供权限管理的基础服务,无需付费即可使用,您只需要为您账号中的资源进行付费。 IAM服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全的控制CodeArts IDE资源的访问。 通过IAM,您可以在华为云账号中给员工创建IAM用户,并使用策略来控制其对华为云资源的访问范围。例如您的员工中有负责软件开发的人员,您希望开发人员拥有绑定CodeArts IDE激活码的权限,但是不希望其拥有购买CodeArts IDE激活码的权限,那么您可以使用IAM为开发人员创建用户,通过授权控制仅能绑定CodeArts IDE激活码,但是不允许购买CodeArts IDE激活码的权限策略,控制开发人员对CodeArts IDE资源的使用范围。 CodeArts IDE权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 CodeArts IDE部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京4)对应的项目(cn-north-4)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问CodeArts IDE时,需要先切换至授权区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对CodeArts IDE服务,管理员能够控制IAM用户仅能对激活码进行指定的管理操作。 如表1所示,包括了CodeArts IDE的所有系统权限。 表1 CodeArts IDE系统权限 策略名称 描述 类别 CodeArts IDE FullAccess CodeArts IDE所有权限。 系统策略 CodeArts IDE ReadOnly CodeArts IDE只读权限。 系统策略 表2列出了CodeArts IDE常用操作与系统策略的授权关系,您可以参照该表选择合适的系统策略。 表2 常用操作与系统权限的关系 操作 CodeArts IDE FullAccess CodeArts IDE ReadOnly 查询激活码列表 √ √ 查询用户试用剩余天数 √ √ 购买激活码 √ × 绑定激活码 √ × 解绑激活码 √ × 激活 √ × 表3 常用操作与对应授权项 操作 授权项 查询激活码列表 CodeArtsIDE:license:list 查询用户试用剩余天数 CodeArtsIDE:system:getTrailDays 购买激活码 CodeArtsIDE:license:purchase 绑定激活码 CodeArtsIDE:license:bind 解绑激活码 CodeArtsIDE:license:unbind 激活 CodeArtsIDE:license:activate
-
如何使用赋值图元 在逻辑中,拖拽“赋值”图元至画布中。 选中赋值图元,单击,设置基本信息。 表1 基本信息参数说明 参数 说明 标签 设置图元的标签,用于在服务编排设计页面展示。系统会自动填入该值,格式为Assignment序号,序号从“0”开始,表示同类型图元序号。 名称 设置图元的名称,名称为图元在服务编排中的标识,请确保在当前服务编排中唯一。命名要求如下: 长度范围为1~80个字符。 必须以英文字母开头,由英文字母,数字或单下划线组成,且不能以下划线结尾。 描述 请根据实际需求,在输入框中输入图元的描述信息。 取值范围:1~255个字符。 单击,在“赋值”页面进行配置。 图1 配置赋值图元 表2 赋值图元配置参数说明 参数 说明 变量 给变量进行赋值,例如普通变量、结构体变量、系统变量等。 操作符 操作符,目前支持普通赋值(=),变量追加(+=)与变量相减(-=)。 值 可以是普通变量、结构体变量、系统变量,也可以新建变量获取值,或根据类型填写常量。 常量填写提示: 文本类型,需要用双引号括起来,例如"abc"、"He said Hi."。 数字和货币类型,支持带符号、小数点的合法数字表达形式,例如123.5、 -12、12.3。 日期类型格式为YYYY-MM-DD,例如2020-10-01。 日期时间类型格式为YYYY-MM-DD hh:mm:ss,例如2020-10-01 12:00:00。 布尔类型,只能是true或false。 任意类型,支持所有基本类型的格式。
-
如何使用决策图元 在逻辑中,拖拽“决策”图元至画布中。 选中决策图元,单击,设置基本信息。 表1 基本信息参数说明 参数 说明 标签 设置图元的标签,用于在服务编排设计页面展示。系统会自动填入该值,格式为Decision序号,序号从“0”开始,表示同类型图元序号。 名称 设置图元的名称,名称为图元在服务编排中的标识,请确保在当前服务编排中唯一。命名要求如下: 长度范围为1~80个字符。 必须以英文字母开头,由英文字母,数字或单下划线组成,且不能以下划线结尾。 描述 根据实际需求,输入图元的描述信息。 取值范围:1~255个字符。 单击,在“决策”页面进行配置。 图1 配置决策图元 表2 决策图元配置参数说明 参数 说明 可编辑的结果 所有的判断条件。 可通过单击“新增”,新增判断条件分支,界面右侧区域配置分支条件。 默认:默认输出,当其他所有条件均不满足情况下,进入该分支。 可视 当选择“可视”时,可配置分支的判断条件。单击“新增”,可新增判断条件,条件显示为“资源”、“比较符”、“值”。 资源:从全局上下文拖拽变量或者直接输入“{!变量名}”。 比较符:从下拉框中选择。 值:从全局上下文拖拽变量或者直接输入“{!变量名}”,也可以是常量。 公式 可采用公式设置该分支条件。 公式中的变量,可从全局上下文拖拽变量或者直接输入变量。 选择连接条件 当选择“可视”并设置多条判断条件时,需要设置选择连接条件“或”或者“且”。 或:表示满足多条判断条件的其中一条,便可进入该分支。 且:表示必须同时满足多条判断条件,才可进入该分支。
-
购买华为云Astro轻应用专享版实例 提交工单申请开通华为云Astro轻应用专享版实例。 专享版实例需要单独付费购买,购买专享版实例前,需要先提交工单申请开通专享版。 开通后,进入购买华为云Astro轻应用专享版实例页面。 在购买华为云Astro轻应用实例页面,设置实例参数,单击“立即购买”。 图9 购买华为云Astro轻应用专享版实例 表3 购买专享版参数说明 参数 说明 实例版本 待购买实例的规格,请选择“专享版”,实例规格的详细介绍请参见产品规格差异。 用户数 购买的华为云Astro轻应用实例中最多可以添加多少个用户,此处的用户数包括业务用户数。 CPU架构 新建华为云Astro轻应用实例的CPU架构,支持x86和Arm。 可用区 新建华为云Astro轻应用实例,所在的可用区。可用区是在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。如果需要提高实例的高可靠性,建议将实例创建在不同的可用区。 实例名称 新建实例的名称,同一账号下实例不可重名,创建后不可修改。命名要求如下: 长度为4~64个字符。 必须以英文字母开头,只能英文字母、数字或下划线组成。 描述 在输入框中,输入新建实例的描述信息。 取值范围:1~255个字符。 虚拟私有云 新建实例所在的虚拟私有云,实例创建后不可更改。 安全组 新建实例所在的安全组,实例创建后不可更改。 公网出口 是否开启服务器访问外部公网/局域网内大网网络,网络环境与云平台EIP(弹性公网IP)网络环境一致,当华为云Astro轻应用需要访问外部邮箱服务或其它第三方网站等需求时,建议开启。 购买时长 设置实例的购买时长,最短1个月,最长3年。 确认规格无误后,单击“去支付”。 支付完成后,单击“返回Astro轻应用控制台”,即可进入华为云Astro轻应用服务控制台。 华为云Astro轻应用实例创建成功后,单击专享版实例中的“管理运行环境”,即可进入独立的运行环境。
-
操作场景 华为云Astro轻应用免费版可使用的资源有限,标准版、专业版和专享版更适用于个人或企业的商用开发。华为云Astro轻应用专业版和专享版实例支持回退到免费版,回退后不支持访问运行环境。 标准版:适用于零代码应用开发场景,开发者不需要有代码开发经验,企业自用首选。如何购买标准版实例以及如何使用华为云Astro轻应用零代码能力开发应用,请参见《用户指南(零代码)》。 专业版:专业版在标准版基础上提供了低代码应用运行环境(多租户共享运行环境),且提供了更多功能和资源,适用于专业开发者。 专享版:专享版提供了物理隔离的运行环境,运行环境实例发放到租户虚拟私有云中。专享版需要提交工单申请开通,否则,您将无法购买专享版。 购买华为云Astro轻应用标准版和专业版实例时,会同步创建一个Astro工作流免费基础版实例。Astro工作流(Astro Flow,简称AstroFlow)可帮助开发者快速构建业务流程及自动化工作流,轻松实现人财物事的调、转、入、离、审、评和批等任务的数字化需求。更多关于Astro工作流的介绍,请参见Astro工作流 AstroFlow。
-
通过服务编排订阅事件 参考如何开发服务编排中操作,新建一个服务编排。 图1 新建一个服务编排 标签:新建服务编排的标签名,用于在页面展示。 名称:服务编排在系统中的唯一标识,创建后不可修改。 类型:新建服务编排的类型,本示例选择“Event Trigger”。 Autolaunched Flow:自启动服务编排,即在接口调用后,会立即执行服务编排中定义的逻辑。 Event Trigger:事件触发的服务编排,在事件触发时,才会开始执行服务编排中定义的逻辑。 事件:选择如何自定义事件中创建的事件(请确保事件已启用)。 描述:服务编排的描述信息。 在服务编排设计页面左侧,选择“逻辑”,拖拽“决策”图元至画布中。 该图元类似if语句的判断,用于在服务编排流程中创建判断条件,根据判断结果连线其他图元,决定后续执行何种操作。本示例需要设置应聘者被成功录用、应聘者没被录用和其他三个判断分支。 图2 拖拽决策图元至画布中 选中决策图元,单击,设置分支条件参数。 图3 pass分支条件配置 图4 unpass分支条件配置 可编辑的结果,即所有的判断条件。系统已预置默认条件,即当其他所有条件均不满足情况下,进入该分支。 本示例,需要新增如下两个判断条件: Pass:应聘者被录用。应聘通过时,事件中自定义的布尔类型参数“Result”赋值为全局常量“{!$GlobalConstant.True}”,表示结果为真,即应聘通过。 Unpass:应聘者没有被录用。应聘失败时,事件中自定义的布尔类型参数“Result”赋值为全局常量“{!$GlobalConstant.False}”,表示结果为假,即应聘拒绝。 在服务编排设计页面左侧,选择“基本”,拖拽“发送邮件”图元至画布中。 发送邮件是发送邮件的接口。本示例中,需要根据录用结果,发送不同的邮件给人事部。 录用成功,需要邮件通知人事部办理入职。 录用不成功,需要邮件通知人事部告知应聘者应聘失败。 事件超时(默认分支),需要邮件通知招聘经理,看其是否给出招聘结果。 如下图所示,以应聘者被成功录用为例,设置发送邮件参数。 选中发送邮件图元,单击,设置基本信息。 图5 设置邮件发送基本信息 单击,设置邮件发送参数。 图6 配置邮件发送参数 邮件配置:可选择“直接编辑”手动设置邮件信息或“基于模板”选择邮件模板。本示例选择“直接编辑”。 主题:邮件的标题。 内容:邮件内容,需要使用事件变量“EmployResultNotify__e”。 地址:接收人的邮箱地址。 字符串:表示直接输入。 集合:表示可以拖入一个集合变量。 参照5中操作,设置应聘者录用失败和超时邮件发送。 如图7所示,连接所有元素。 图7 连接并设置起始元素 在服务编排设计页面上方,单击,保存服务编排。 保存成功后,单击,启用服务编排。 启用后,当有“EmployResultNotify”事件触发时,即会执行服务编排中定义的逻辑。
-
如何使用子服务编排图元 在基本中,拖拽“子服务编排”图元到右侧画布中。 选中画布中的子服务编排图元,单击,配置基本信息。 表1 基本信息参数说明 参数 说明 标签 设置图元的标签,用于在服务编排设计页面展示。系统会自动填入该值,格式为Flow序号,序号从“0”开始,表示同类型图元序号。 名称 输入图元的名称,请确保在当前服务编排中唯一。命名要求如下: 长度范围为1~80个字符。 必须以英文字母开头,由英文字母,数字或单下划线组成,且不能以下划线结尾。 描述 请根据实际需求,在输入框中输入图元的描述信息。 取值范围:1~255个字符。 单击,选择服务编排实例、输入参数和输出参数。 图1 配置子服务编排 表2 子服务编排图元配置参数说明 参数 说明 服务编排实例 选择服务编排的名称。 只有在启用状态下的服务编排,才能作为子服务编排被其他服务编排调用。 新起事务执行子服务编排 勾选后,在新起事务中多个子服务编排可以并行执行,提高效率。如果某个子编排执行失败,也不会影响其他子服务编排的执行。 输入参数/目标 子服务编排的输入参数名称。单击“新增行”,在下拉框中选择子服务编排输入参数的名称。 输入参数/源 服务编排中的变量,为目标赋值。可直接填写,也可以拖入全局上下文变量,将服务编排中的变量赋值给子服务编排中的输入参数。 输出参数/源 子服务编排的输出参数名称。单击“新增行”,在下拉框中选择子服务编排输出参数的名称。 输出参数/目标 服务编排中的变量,子服务编排中的输出参数赋值给服务编排中的变量。在全局上下文变量中,将子服务编排的输出参数赋值给服务编排中的变量。 配置完成后,单击保存设置。
-
如何使用记录查询图元 在基本中,拖拽“记录查询”图元至画布中。 选中记录查询图元,单击,设置基本信息。 表1 基本信息参数说明 参数 说明 标签 设置图元的标签,用于在服务编排设计页面展示。系统会自动填入该值,格式为RecordSelect序号,序号从“0”开始,表示同类型图元序号。 名称 设置图元的名称,名称为图元在服务编排中的标识,请确保在当前服务编排中唯一。命名要求如下: 长度范围为1~80个字符。 必须以英文字母开头,由英文字母,数字或单下划线组成,且不能以下划线结尾。 描述 请根据实际需求,在输入框中输入图元的描述信息。 取值范围:1~255个字符。 使用快速查询模式 是否启用快速查询模式。 如果勾选该参数,表示为快速模式。 仅配置查询条件即可,查询结果自动保存在对象变量中。如果对象变量不是数组,则仅保存第一条符合条件的记录。如果对象变量为数组,则保存所有返回的记录。 不勾选,表示为普通模式。 根据条件查询对象记录,需要指明要查询的对象名、查询条件,需要查询的字段列表,查询结果需要保存到设置的变量中。 默认不勾选。 单击,在“记录查询”页面进行配置。 如果上一步勾选“使用快速查询模式”,则需要指定一个预先定义的对象变量或者对象变量数组,并将该对象变量或对象变量数组拖拽到“变量”输入框中,并设置条件以及选择排序方式,即可实现根据条件和排序方式将查询结果保存在对象变量中。如图1所示,根据条件查询对象数据,并将查询结果保存在对象变量“Account”中。 图1 快速查询模式 表2 快速查询模式参数说明 参数 说明 变量 预先定义的对象变量或者对象变量数组。 查询结果自动保存在对象变量或者对象变量数组中。如果对象变量不是数组,则仅保存第一条符合条件的记录。如果对象变量为数组,则保存所有返回的记录。 从全局上下文拖拽或直接输入对象变量/对象变量数组。 无记录时配置空值 当根据条件查询无记录时,则变量为空值。 默认为勾选。 条件 选中对象后,该条件区域“字段”列会出现该对象的字段。单击“新增行”,可设置查询数据的条件。 在“字段”中选择要进行判断的对象字段,在“比较符”中选择相应的比较符,“值”则可从全局上下文拖拽变量或者直接输入“{!变量名}”。 (排序)排序字段/顺序 使查询结果根据某个字段进行升序或者降序排序。 如果上一步未勾选“使用快速查询模式”,则需要指定对象并在条件中设置指定对象部分字段的值,根据条件查询符合条件的对象记录,并赋值到设置的变量上。如图2所示,查询“Account”对象“name”为“Lily”的记录,并将查询得到的对象id赋值到"var_record_id"变量上。 图2 普通查询模式 表3 普通查询模式参数说明 参数 说明 对象 查询的具体对象名,请直接在下拉框中选择目标对象。 剔重 如果查询记录有重复值,是否需要删掉重复记录只保留一条记录。 默认不勾选,表示不删掉重复记录。 条件 选中对象后,该条件区域“字段”列会出现该对象的字段。单击“新增行”,可设置查询数据的条件。 在“字段”中选择要进行判断的对象字段,在“比较符”中选择相应的比较符,“值”则可从全局上下文拖拽变量或者直接输入“{!变量名}”。 (排序)排序字段/顺序 使查询结果根据某个字段进行升序或者降序排序。 记录行的偏移量 分页,跳过前n条记录,从第n+1条记录开始。 从全局上下文拖拽数值变量或者直接输入“{!数值变量名}”,也可以是常量。 记录行的最大数目 分页,每页最多显示的记录数。 从全局上下文拖拽数值变量或者直接输入“{!数值变量名}”,也可以是常量。 记录的总行数存入变量 查询出来的总记录数存入变量中。 从全局上下文拖拽数值变量或者直接输入“{!数值变量名}”。 (输出)源/目标 输出结果,单击“新增行”,可进行添加。 “源”为需要查询的字段,可从下拉框中选择,“目标”可从全局上下文拖拽变量或者直接输入变量名。 无记录时配置空值 当根据条件查询无记录时,则变量为空值。 默认为勾选。
-
查询多条数据 通过配置记录查询图元,输出对象的多行数据列表。例如,应用中已创建设备对象“命名空间__Equipment__CST”,且已有如下两条数据记录,通过在服务编排中配置记录查询图元,查询出该对象数据记录中所有的设备名称。实现步骤如下: 图3 已有数据 参考创建服务编排中操作,创建一个服务编排,名称和标签为“queryEquipment”。 定义服务编排的变量。 由于本任务需要查询出对象的多行数据列表,所以需要先创建对象类型的数组型变量,用于进行输出。 在服务编排编辑器页面右侧,选择。 在全局上下文页面,单击“对象变量”后的加号。 图4 创建对象变量 设置对象变量,保持默认“记录”类型,设置参数名称为“Equipment”(也可自定义为其他名称),对象中选择要查询的具体对象“命名空间__Equipment__CST”,勾选“数组”表示该变量为数组型变量即集合变量,单击“保存”。 图5 设置对象变量信息 新增并配置记录查询图元。 从左侧图元列表中,拖拽“基本”下“记录查询”图元至画布中。 该图元用于根据条件查询对象记录。 图6 拖拽记录查询到画布中 选中记录查询图元,单击,配置该图元。 图7 配置记录查询图元 表4 普通类型记录查询参数说明 参数 说明 对象 查询的具体对象名,直接从下拉框中选择。 剔重 如果查询记录有重复值,是否需要删掉重复记录只保留一条记录。 默认不勾选,表示不删掉重复记录。 条件 单击“新增行”,可设置查询数据的条件。 (排序)排序字段/顺序 将查询结果,根据某个字段,进行升序或降序排序。 记录行的偏移量 分页,跳过前n条记录,从第n+1条记录开始。 从全局上下文拖拽数值变量或者直接输入“{!数值变量名}”,也可以是常量。 记录行的最大数目 分页,每页最多显示的记录数。 从全局上下文拖拽数值变量或者直接输入“{!数值变量名}”,也可以是常量。 记录的总行数存入变量 限定查询出来的总记录数。 从全局上下文拖拽数值变量或者直接输入“{!数值变量名}”,也可以是常量。 (输出)字段名称/目标变量 输出结果,单击“新增行”,可进行添加。 “字段名称”配置为需要查询的设备名称字段“name”,可从下拉框中选择。 “目标变量”从全局上下文拖拽对象变量的“name”字段,拖拽后,“目标”取值为“Equipment[0].name”。 无记录时配置空值 当根据条件查询无记录时,则变量为空值。 默认为勾选。 将目标“Equipment[0].name”中的“0”修改为通配符“*”。 如果不改为通配符,只能查询出一条数据。 图8 将“0”修改为通配符 连接开始和记录查询图元。 在画布上,把鼠标放在起点图元上,从“+”拖动鼠标,在起点图元和记录查询图元间增加连线。 图9 连接开始和记录查询图元 单击画布的空白处,单击右侧,设置服务编排的出参,从全局上下文里的对象变量中拖入。 图10 设置服务编排的出参 单击服务编排页面上方的,保存服务编排。 测试服务编排能否正常执行。 单击服务编排编辑器上方的,执行服务编排。 不用输入测试数据,直接单击“运行”。 执行成功,界面上会返回设备对象中的全部设备名称数据,样例如下: 图11 返回样例 启用服务编排。 测试成功后,单击服务编排编辑器上方的,启用服务编排。服务编排启用后,才能被页面或者其他服务调用。
-
了解华为云Astro轻应用中预置权限 在华为云Astro轻应用中,通过权限配置(Profile)来控制用户、业务用户等的操作权限。华为云Astro轻应用当前预置了如下几种Profile标准配置文件: System Administrator Profile:系统管理员,拥有华为云Astro轻应用全部权限。 Developer Profile:开发者权限,一般给用户使用,拥有此权限的用户可以在华为云Astro轻应用进行开发,例如新增一个对象、为对象增加一个字段、新增一个流程等。 Portal User Profile:业务用户的权限,一般给业务用户使用,拥有此权限的业务用户可以登录和使用华为云Astro轻应用中创建的应用。 Anonymous User Profile:游客用户的访问权限,无需登录即可访问华为云Astro轻应用中创建的应用。 Standard User Profile:运行态权限,开通华为云Astro轻应用服务时自带的权限,拥有这个权限可以运行系统中的流程、对系统已有对象进行记录的增删改查操作,但没有开发权限,如新增一个对象或新增一个流程等。 NoCode Developer Profile:零代码应用开发权限,只有运行环境才会预置该权限。 NoCode Manager Profile:零代码应用数据管理权限,只有运行环境才会预置该权限。 一种权限配置可以分配给多个用户,但每个用户只能属于某一个权限配置。权限配置(Profile)中,各权限项详细介绍,请参见表1。 除了默认的权限配置外,用户还可以在默认权限配置的基础上,自定义权限配置,具体操作请参见创建扩展权限集。 图6 用户开发者权限 图7 业务用户权限 图8 游客用户访问权限 表1 权限项说明 权限项 权限项说明 查看系统元数据 用户访问元数据的必要权限,仅用于界面提示作用,无法取消。 开发应用 系统最高的权限,拥有此权限可定制系统所有可定制的地方,默认拥有其他权限。 查看所有用户 查看用户列表和用户详情的权限。 查看角色 查看角色列表和角色详情的权限。 管理角色 增加、删除和修改角色的权限。 查看权限管理 查看权限配置列表和权限配置详情的权限。 查看扩展权限集 查看扩展权限集列表和扩展权限集详情的权限。 查看组 查看组列表和查看组详情的权限。 管理组 增加、删除和修改公共组的权限。 查看队列 查看队列列表和查看队列详情的权限。 管理队列 增加、删除和修改工作队列的权限。 查看业务用户 查看业务用户列表和查看业务用户详情的权限。 管理业务用户 增加、删除和修改业务用户的权限。 查看业务权限凭证 查看业务权限凭证列表和查看业务权限凭证详情的权限。 查看系统设置 查看系统设置的权限。 查看告警 查看告警列表和告警详情的权限。 管理告警 新增、修改告警定义的权限。 查看BPM 查看BPM定义列表和详情的权限,包括BPM关联的决策表、触发器等。 管理BPM实例 修改BPM实例详情的权限。 查看服务编排 查看服务编排定义列表和详情的权限。 查看脚本 查看脚本列表和详情的权限。 查看定时任务 查看定时任务列表和详情的权限。 运行受限导入任务 查看数据导入和数据导入模板区域、上传数据导入模板的权限。 查看报表 查看报表列表和详情的权限。 运行报表 查看报表运行实例的权限。 查看仪表板 查看仪表板列表和详情的权限。 运行仪表板 查看仪表板运行实例的权限。 查看所有看板 查看租户看板和应用看板的权限。 管理看板 操作租户看板和应用看板的权限。 管理视图 增加、删除和修改视图的权限。 更新对象数据 提取对象数据,进行数据同步的权限。 查看所有数据 查看所有数据的权限,勾选此选项后,会忽略单个对象的权限。 运行SQL 执行SQL的权限。 查看加密数据 查看加密数据明文的权限。 查看租户跟踪日志 查看租户跟踪日志的权限。 查看敏感隐私数据 控制是否允许,以数据对象的形式,查看部分敏感数据对象的权限,例如权限配置、连接器定义等。 管理数据 在数据控制台操作任意对象的权限。 管理公告 控制开发者在工作台页面,是否有管理公告(新增、删除和编辑)的权限。
-
用户(User) 用户是由华为云Astro轻应用系统管理员添加并赋予Developer Profile权限的IAM用户或 WeLink 用户,可以使用华为云Astro轻应用开发应用,即应用的开发者。更多关于用户和业务用户的介绍,可参见图解华为云Astro轻应用中用户那些事。 将IAM用户添加到华为云Astro轻应用并赋予Developer Profile权限时,请确保待添加的IAM用户没有被添加到任何用户组或者添加到拥有Astro Zero Instance ViewAccess权限的用户组中。 图4 为用户添加开发者权限 在华为云Astro轻应用中,用户可以执行如下操作: 使用华为云Astro轻应用创建应用 使用华为云Astro轻应用开发应用后端 使用华为云Astro轻应用开发应用前端 使用华为云Astro轻应用进行应用集成开发 使用华为云Astro轻应用对应用进行个性化设置 发布并部署华为云Astro轻应用开发的应用
-
异常处理 当数据源类型选择ROMA Connect时,配置完数据接入后,MQS平台收不到消息,业务设置的EventTrigger没有拉起服务编排。 问题现象:ROMA Connect消息轨迹是灰色的,可能是MQS服务地址配置错误或没有配置。 解决方法:检查iotgateway容器的“roma-server”参数是否配置。若没有配置,请配置该参数或联系运维添加正确的“roma-server”地址(端口为“9776”),确认网络正常以及MQS服务器正常,兼容客户端版本。 问题现象:ROMA Connect消息轨迹是红色的,可能是MQS的source定义错误。 解决方法:在ROMA Connect平台,查看应用ID和对应的密钥是否一致,查看该应用是否订阅了主题。配置错误时,会导致鉴权失败。 问题现象:ROMA Connect消息轨迹是绿色的, 表示MQS接收成功,并成功发送到Kafka,华为云Astro轻应用也收到了对应的消息,但是可能没成功拉起服务编排。 解决方法:查看iotgateway的“flume.log”日志,确认MQS是否接收成功。通过“kafka-console-cumer”确认消息是否转换成功,通过华为云Astro轻应用的日志跟踪功能或华为云Astro轻应用后台日志确认(日志关键字为“OnEvent”)平台是否收到事件。如果没有对应的服务编排或事件日志,可以确定服务编排未拉起,请联系华为工程师解决。
-
如何使用脚本图元 在基本中,拖拽“脚本”图元到右侧画布中。 选中画布中的脚本图元,单击,设置基本信息。 表1 基本信息参数说明 参数 说明 标签 设置图元的标签,用于在服务编排设计页面展示。系统会自动填入该值,格式为Script序号,序号从“0”开始,表示同类型图元序号。 名称 设置图元的名称,名称为图元在服务编排中的标识,请确保在当前服务编排中唯一。命名要求如下: 长度范围为1~80个字符。 必须以英文字母开头,由英文字母,数字或单下划线组成,且不能以下划线结尾。 描述 请根据实际需求,在输入框中输入图元的描述信息。 取值范围:1~255个字符。 单击,选择脚本、设置输入参数和输出参数。 图1 配置脚本 表2 脚本图元配置参数说明 参数 说明 脚本 调用的脚本名称,只有在启用状态下的脚本才能被服务编排调用。 输入参数/目标 脚本的输入参数名称。单击“新增行”,在下拉框中选择脚本输入参数的名称。 输入参数/源 服务编排中的变量,为目标赋值。可直接填写,也可以拖入全局上下文变量,将服务编排中的变量赋值给脚本中的输入参数。 输出参数/源 脚本的输出参数名称。单击“新增行”,在下拉框中选择脚本输出参数的名称。 输出参数/目标 服务编排中的变量,脚本中的输出参数赋值给服务编排中的变量。拖入全局上下文变量,将脚本的输出参数赋值给服务编排中的变量。
-
前提条件 请联系运维,开启事件流License权限。开启后,才可新建、查看并管理事件流。 已创建并启用温度监测事件“temperature”,该事件中自定义参数为文本类型“position”和数字类型“temperature”,分别表示位置和温度,具体操作步骤请参考如何自定义事件。 已创建并启用高温报警事件“fire_alarm”,该事件中自定义参数为文本类型“positionalarm”和数字类型“temperaturealarm”,分别表示高温报警位置和温度,具体操作步骤请参考如何自定义事件。
-
背景信息 首先,您需要理解以下概念: kafka:是由Apache开发的一个开源流处理平台,是分布式发布、订阅消息系统。kafka主要用于处理活跃的流数据,一般kafka部署为集群模式。 Topic:用来区分kafka集群中,不同类型消息的主题。例如,应用程序A订阅了Topic1,应用程序B订阅了Topic2而没有订阅Topic1,那么发送到Topic1中的数据将只能被应用程序A读到,而不会被应用程序B读到。 spark streaming:大规模流式数据处理工具,第三方工具。
-
操作步骤 参考登录经典应用设计器中操作,登录经典版应用设计器。 将鼠标放在应用的某个文件夹上(如Logic),单击“+”,选择“事件流”。 开启事件流License权限后,才会有新建事件流的入口。 单击“新建”,进入“事件流”页面。 在“事件流”页面右侧,单击“设置”,进行数据配置。 图2 设置页面 窗口长度:事件流处理的数据采集时间间隔,单位为分钟。建议时间间隔不要配置过小,否则系统频繁的建表和执行SQL语句,会影响系统性能。例如:配置为“1”表示spark streaming每隔1分钟去kafka获取事件数据。 在“事件流”页面右侧,单击“图元”,拖拽“输入源”中Kafka图元至左侧画布区域,并配置基本信息,单击“保存”。 输入源中Kafka图标表示数据来自Kafka。 图3 数据来源Kafka基本信息页面 标签:新建数据源Kafka的标签名,用于在界面展示。 名称:新建数据源Kafka的名称,系统自动生成。 事件:需要订阅的事件。例如,配置为温度监测事件“temperature”。 从外部接收:是否从外部Kafka接收事件。 关闭该开关,从与AstroZero相连的Kafka接收事件。 打开该开关,从外部Kafka接收事件。本示例中关闭该开关,使用与AstroZero相连的Kafka。 Kafka集群地址:数据源Kafka的集群地址。多个节点服务器地址可用“,”间隔,格式为“Kafka节点1的ip:节点1端口号,Kafka节点2的ip:节点2端口号,...”。 获取Kafka的IP和端口号方法:登录每台Kafka节点服务器,查看“${KAFKA_HOME}/config”目录下,“server.properties”中“listeners”的取值。 订阅主题:获取的事件数据来源,即来自于kafka集群的哪个Topic。 从“图元”中,拖拽“投影”图元至左侧画布区域数据源Kafka下方,并在弹出的“添加投影器”页面配置基本信息,单击“保存”。 图4 “添加投影器”页面 标签:新建投影的标签名,用于在界面展示。 名称:新建投影的名称,系统自动生成。 输入字段:订阅事件的所有事件参数。选择所需的参数,单击,选中的参数会出现在“输出字段”中。 输出字段:从订阅事件的事件参数进行筛选后,用到的事件参数。 从“图元”中,拖拽“过滤”图元至左侧画布区域投影下方,并在弹出的“添加过滤器”页面配置基本信息和过滤条件,单击“保存”。 图5 设置过滤条件 标签:新建过滤的标签名,用于在界面展示。 名称:新建过滤的名称,系统自动生成。 条件设置:设置过滤条件。例如,图中的配置表示提取温度大于60度的事件。 字段:上一步筛选后的事件参数。 比较符:操作符,直接在下拉框中选择。 值:字段值。 (可选)从“图元”页面中,拖拽“分组”图元至左侧画布区域过滤器下方,并在弹出的“添加分组器”页面配置基本信息和分组条件,单击“保存”。 图6 “添加分组器”页面配置 标签:新建分组的标签名,用于在界面展示。 名称:新建分组的名称,系统自动生成。 分组设置:设置分组条件。例如,图中配置表示按照相同位置的大于60度的温度取温度平均值。 在“图元”页面右侧,拖拽输出源中的Kafka图元至左侧画布区域最下方,设置spark streaming输出事件和输出事件数据的接收方,单击“保存”。 可以拖拽多个Sink中的Kafka图元,设置多个事件接收方。 图7 数据接收方配置 标签:数据接收方Kafka的标签名,用于在界面展示。 名称:数据接收方Kafka的名称,系统自动生成。 事件:spark streaming输出的事件。本示例此处配置为高温报警事件“fire_alarm”。温度监测事件“temperature”中的“position”,对应高温报警事件“fire_alarm”中的“positionalarm”。温度监测事件的“temperature”,对应高温报警事件“fire_alarm”中的“temperaturealarm”。 发送到外部:是否发送到外部Kafka。若关闭该开关,表示发送到与AstroZero相连的Kafka。若打开该开关,表示发送到外部Kafka,需要配置“Kafka集群地址”和“订阅主题”。本示例中关闭该开关,使用与华为云Astro轻应用相连的Kafka。 Kafka集群地址:接收事件的Kafka集群地址,例如10.136.14.56:9092。 多个节点服务器地址可用“,”间隔,格式为“Kafka节点1的ip:节点1端口号,Kafka节点2的ip:节点2端口号,...”。 获取Kafka的IP和端口号方法:登录每台Kafka节点服务器,查看“${KAFKA_HOME}/config”目录下,“server.properties”中“listeners”的取值。 接收事件的kafka集群,不需要一定配置为和AstroZero相连。 订阅主题:接收事件数据的kafka Topic,例如__BINGO_PROD_SYS_TOPIC。 事件属性/属性、值:配置输出事件与接收事件中,已定义参数的对应关系。 单击页面右上方保存按钮,设置“事件流”基本参数。 图8 该“事件流”基本参数页面 标签:新建事件流的标签名,用于在界面展示。 名称:新建事件流的名称,系统自动生成。 描述:新建事件流的描述信息。 单击页面上方的,启用事件流。
-
结果验证 创建一个服务编排“fire_alarm”,创建后启用该服务编排,实现当kafka中出现高温报警事件时,AstroZero需要接收该事件,再向第三方系统发送该告警邮件。 鼠标放在应用下的Logic文件夹上,单击“+”,选择“服务编排”。 选择“创建一个新的服务编排”,设置标签和名称为“fire_alarm”,单击“添加”。 在服务编排设计页面左侧,拖拽“逻辑”下的“等待”图元至画布中。 单击,在“可编辑的事件”中,单击“新增”,新增“event0”分支。 配置该分支事件为高温报警事件,当系统中出现该事件时,会执行该分支。 图9 配置等待图元 拖拽“基本”下的“发送邮件”图元至画布中。 单击,设置发送邮件参数。 配置高温报警邮件的主题和内容,地址填入第三方系统的邮件接收地址。 图10 配置发送邮件图元 直接编辑:手动设置邮件信息。 基于模板:基于同一账号或基线中已有的邮件模板,设置邮件主题和内容,方便用户增加效率。 模板:选择“基于模板”时,需要选择邮件模板。 主题:设置邮件标题。 选中“直接编辑”时,需要配置邮件标题。 选中“基于模板”时,该参数配置区域置灰。 内容:设置邮件内容。 选中“直接编辑”时,需要配置邮件内容。 选中“基于模板”时,该参数配置区域置灰。 自定义变量:选中“基于模板”时,需要配置模板中的参数。在“值”中,直接输入参数取值或者从全局上下文拖拽变量。 地址:接收人的邮箱地址。 字符串:直接输入分号分隔的字符串或从全局上下文拖拽变量。 集合:从全局上下文拖拽集合变量。 抄送:抄送人员的邮箱地址,直接输入分号分隔的字符串或者从全局上下文拖拽变量。 密送:密送发送人员的邮箱地址,直接输入分号分隔的字符串或者从全局上下文拖拽变量。 按照下图连接所有图元,等待图元和发送邮件图元之间选择“event0”分支。 图11 连接所有图元 单击页面上方的,保存服务编排。 保存成功后,单击,启用服务编排。 创建一个服务编排“send_fire_event”,将温度监测事件“temperature”中位置参数“position”赋值为仓储公司某区域,温度“temperature”赋值为70度,启用该Flow,用于模拟事件发送。 鼠标放在应用下的Logic文件夹上,单击“+”,选择“服务编排”。 选择“创建一个新的服务编排”,设置标签和名称为“send_fire_event”,单击“添加”。 在服务编排编辑器页面左侧,拖拽“基本”下的“发送事件”图元至画布中。 单击,设置发送事件参数。 图12 配置发送事件图元 事件:选择待发送的事件。 分区字段:从事件中选择一个自定义参数用作Kafka的分区字段,则根据该字段值进行路由,相同的值将路由到同一个Kafka分区。如果不指定,则默认随机路由到不同Kafka分区,从而提升并发处理性能。 发送到外部:系统内部有配置与AstroZero相连Kafka的固定Topic“__BINGO_SYS_TOPIC”。若不勾选“发送到外部”,表示将事件数据发到默认的Topic上。若勾选“发送到外部”,则表示将事件数据发送到与AstroZero相连Kafka的其他Topic上。 延迟到事务结束(提交或回滚)后才发送:是否延迟到该服务编排事务结束后,才发送事件。 主题:勾选“发送到外部”时,才显示该参数,表示非系统配置的默认Topic。 目标/源:配置事件数据。 本示例中,“目标”请从下拉框中选择事件的自定义参数“temperature”和“position”,在“源”中给目标赋值。 按照下图连接所有图元。 图13 连接图元 单击页面上方的,保存服务编排。 保存成功后,单击,启用服务编排。 在“事件流”列表页面,单击该事件流程所在行的,运行该事件流程。 单击服务编排“send_fire_event”编辑器上方的,执行服务编排。 不用输入任何输入参数,直接单击“运行”。 参考上一步,执行服务编排“fire_alarm”。 不用输入任何输入参数,单击“运行”。 打开第三方系统邮箱,成功收到高温警报邮件,验证成功。
-
如何使用循环图元 例如,当前有数组变量“TestList1”,“TestList2”,要求把“TestList1”中的元素逐个加到数组“TestList2”的后面。 创建数组变量“TestList1”、“TestList2”和普通变量“test_var”。 在服务编排编辑器页面右侧,选择。 在全局上下文页面,单击“变量”后的加号。 图1 创建变量 单击新增变量后的“...”,选择“设置”。 设置数组变量“TestList1”,数据类型为文本。 图2 数组变量“TestList1” 参考上述步骤设置数组变量“TestList2”和普通变量“test_var”,普通变量不用勾选“是否为数组”。 图3 数组变量“TestList2” 图4 普通变量“test_var” 在逻辑中,拖拽“循环”图元到画布中。 选中循环图元,单击,设置基本信息。 图5 设置基本信息 表1 基本信息参数说明 参数 说明 标签 设置图元的标签,用于在服务编排设计页面展示。系统会自动填入该值,格式为Loop序号,序号从“0”开始,表示同类型图元序号。 名称 设置图元的名称,名称为图元在服务编排中的标识,请确保在当前服务编排中唯一。命名要求如下: 长度范围为1~80个字符。 必须以英文字母开头,由英文字母,数字或单下划线组成,且不能以下划线结尾。 描述 请根据实际需求,在输入框中输入图元的描述信息。 取值范围:1~255个字符。 单击,在“循环”页面进行配置。 图6 配置循环图元 表2 循环图元配置参数说明 参数 说明 数组 进行循环的具体数组,可从全局上下文中拖拽或输入集合变量。 本示例从全局上下文拖拽数组变量“TestList1”,表示对数组“TestList1”进行循环。 元素 将每次循环取出来的元素,赋值给该变量,可从全局上下文中拖拽或者输入变量。 本示例请从全局上下文拖拽普通变量“test_var”,表示将每次循环取出来的元素赋值给变量“test_var”。 排序 循环取出的顺序,可选择升序或者降序从数组中依次取出。 进行赋值操作,将“test_var”的值加到数组“TestList2”后面。 在逻辑中,拖拽“赋值”图元到循环图元后。 图7 拖拽赋值图元 单击,设置“标签”和“名称”为“AddToList2”。 如下图所示,设置页面参数,从全局上下文拖拽数组变量“TestList2”到变量中,从全局上下文拖拽普通变量“test_var”到值中。将“test_var”的值加到数组“TestList2”后面。 图8 添加Assignment定义 将循环和赋值连线,在连线类型选择“下一个取值”。 图9 添加连线 清空“test_var”并闭环。 在逻辑中,拖拽“赋值”图元至画布中。 单击,设置“标签”和“名称”为“testvar_Tonull”。 单击,设置页面参数。 从全局上下文拖拽普通变量“test_var”到变量中,从全局上下文拖拽全局常量“$GlobalConstant.Null”到值中。清空“test_var”。 图10 清空test_var页面 在服务编排编辑器页面右侧,选择,按照下图从全局上下文页面中拖拽参数到相应的入参和出参区域,设置服务编排的入参和出参。 图11 设置服务编排的入参和出参 按照下图连线,单击页面上方的,保存服务编排。 图12 连接图元 单击,在“输入参数”中输入参数后,运行服务编排。 在“输入参数”中,输入如下参数: { "TestList1": [ "1", "2", "3" ] } 检查输出页签的结果是否符合预期。 { "interviewId": "002N000000YfbbgBStmq", "outputs": { "TestList2": [ "1", "2", "3" ] } }
-
如何使用等待图元 在逻辑中,拖拽“等待”图元至画布中。 选中等待图元,单击,设置基本信息。 表1 基本信息参数说明 参数 说明 标签 设置图元的标签,用于在服务编排设计页面展示。系统会自动填入该值,格式为Wait序号,序号从“0”开始,表示同类型图元序号。 名称 设置图元的名称,名称为图元在服务编排中的标识,请确保在当前服务编排中唯一。命名要求如下: 长度范围为1~80个字符。 必须以英文字母开头,由英文字母,数字或单下划线组成,且不能以下划线结尾。 描述 请根据实际需求,在输入框中输入图元的描述信息。 取值范围:1~255个字符。 单击,在“等待”页面进行配置。 图1 Wait配置及Pass分支条件配置 图2 Unpass分支条件配置 图3 Timeout分支条件配置 表2 条件分支配置参数说明 参数 说明 可编辑的事件 所有的判断条件。 可通过单击“新增”,来增加判断条件分支。 默认:默认输出,当其他所有条件均不满足情况下,进入该分支。 例如,新增如下三个判断条件: Pass:应聘者被录用。应聘通过时,Boolean类型参数“result”赋值为全局常量“{!$GlobalConstant.True}”,表示结果为真,即应聘通过。 Unpass:应聘者没有被录用。应聘失败时,Boolean类型参数“result”赋值为全局常量“{!$GlobalConstant.False}”,表示结果为假,即应聘拒绝。 Timeout:超时事件。基于该服务编排执行时间,超时30分钟未返回是否录用。 事件/时间 当订阅的是自定义事件时,需要选择“事件”。 当订阅的是系统预置的标准事件“Absolute Time Alert”,即定时器发送的系统事件时,需要选择“时间”。 本示例中,需要配置如下: Pass:请选择“事件”。 Unpass:请选择“事件”。 Timeout:请选择“时间”。 事件 请选择需要订阅的事件,当订阅的是自定义事件时,该参数才会显示。 事件条件 该分支的条件。单击“新增行”,可进行添加。当订阅的是自定义事件时,该参数才会显示。 分支条件中的字段,为创建该事件时设置的自定义参数,值可从右侧全局上下文中选择拖入。 定义需要满足的其他条件 勾选“定义需要满足的其他条件”后,可根据事件变量外的其他变量设置追加条件。 可视 勾选“定义需要满足的其他条件”后,该参数才会显示。当选择“可视”时,可配置追加条件的判断条件。单击“新增”,可新增判断条件。条件显示为“资源”、“比较符”、“值”。 默认选择“可视”。 公式 勾选“定义需要满足的其他条件”后,该参数才会显示。可采用公式设置追加条件。 选择连接条件 当选择“可视”并设置多条判断条件时,需要设置选择连接条件“或”或者“且”。 或:表示满足多条判断条件的其中一条,便可进入该分支。 且:表示必须同时满足多条判断条件,才可进入该分支。 输出 如果需要在服务编排中,使用事件的参数,将其参数赋值到事件变量中方便服务编排引用。 当订阅的是自定义事件时,该参数才会显示。 默认不需要。 基准时间 当订阅的是系统预置的定时器发送事件时,该参数才会显示。 可从全局上下文拖拽日期/时间类型变量,也可设置为某个具体时间,或者设置为本服务编排执行时间。 例如,在本节中设置为本服务编排执行时间,即{!$Flow.CurrentDateTime}。 偏移时间 偏移时间,例如“30”。当订阅的是系统预置的定时器发送事件时,该参数才会显示。
-
如何使用记录删除图元 在基本中,拖拽“记录删除”图元至画布中。 选中记录删除图元,单击,设置基本信息。 表1 基本信息参数说明 参数 说明 标签 设置图元的标签,用于在服务编排设计页面展示。系统会自动填入该值,格式为RecordDelete序号,序号从“0”开始,表示同类型图元序号。 名称 设置图元的名称,名称为图元在服务编排中的标识,请确保在当前服务编排中唯一。命名要求如下: 长度范围为1~80个字符。 必须以英文字母开头,由英文字母,数字或单下划线组成,且不能以下划线结尾。 描述 请根据实际需求,在输入框中输入图元的描述信息。 取值范围:1~255个字符。 使用快速删除模式 是否启用快速删除模式。 如果勾选该参数,表示为快速模式。 根据对象变量中的记录ID,删除对应的记录。当配置的对象变量为数组时,则从数据库中删除对象变量数组中的包含的所有记录(按照记录ID进行删除)。 不勾选,表示为普通模式。 按照条件删除指定对象中的记录,需要配置待删除记录对应的对象名,删除条件。 默认不勾选。 单击,在“记录删除”页面进行配置。 如果上一步勾选“使用快速删除模式”,则需要指定一个预先定义的对象变量或者对象变量数组,并将该对象变量或对象变量数组拖拽到“变量”输入框中,使用该对象变量或对象变量数组的记录ID删除对应的对象记录。如图1,使用“accountDelete”对象变量的记录ID删除对象记录。 图1 快速删除模式 表2 快速删除模式参数说明 参数 说明 对象 预先定义的对象变量,使用该对象变量或对象变量数组中的记录ID删除对象记录。 从全局上下文拖拽或直接输入对象变量/对象变量数组。 当前流程出现错误时回滚 当前服务编排出现错误时,回滚到上一个流程。 默认为勾选。如果无特殊要求,请不要更改设置。 如果上一步未勾选“使用快速删除模式”,则需要指定对象并在条件中设置指定对象部分字段的值,根据条件删除符合条件的对象记录。如图2所示,删除“Account”对象“name”为“Lily”的记录。 图2 普通删除模式 表3 普通删除模式参数说明 参数 说明 对象 指定具体的对象,直接在下拉框中选择。 当前流程出现错误时回滚 当前服务编排出现错误时,回滚到上一个流程。 默认为勾选。如果无特殊要求,请不要更改设置。 条件 选中对象后,该条件区域“字段”列会出现该对象的字段。单击“新增行”,可设置删除数据的条件。 在“字段”中选择要进行判断的对象字段,在“比较符”中选择相应的比较符,“值”则可从全局上下文拖拽变量或者直接输入“{!变量名}”。
-
如何使用发送邮件图元 在基本中,拖拽“发送邮件”图元至画布中。 选中发送邮件图元,单击,设置基本信息。 表1 基本信息参数说明 参数 说明 标签 设置图元的标签,用于在服务编排设计页面展示。系统会自动填入该值,格式为Email序号,序号从“0”开始,表示同类型图元序号。 名称 设置图元的名称,名称为图元在服务编排中的标识,请确保在当前服务编排中唯一。命名要求如下: 长度范围为1~80个字符。 必须以英文字母开头,由英文字母,数字和单下划线组成,且不能以下划线结尾。 描述 请根据实际需求,在输入框中输入图元的描述信息。 取值范围:1~255个字符。 单击,在“发送邮件”页面进行配置。 图1 配置直接编辑邮件 图2 配置基于模板邮件 表2 发送邮件图元配置参数说明 参数 说明 直接编辑 手动设置邮件信息。 基于模板 基于同一租户或基线里已有的邮件模板,设置邮件主题和内容。 模板 当选中“基于模板”时,需要选择邮件模板。如何新建邮件模板,请参见邮件模板。 主题 邮件标题。 当选中“直接编辑”时,需要配置邮件标题。 当选中“基于模板”时,该参数配置区域置灰。 内容 邮件内容。 当选中“直接编辑”时,需要配置邮件内容。 当选中“基于模板”时,该参数配置区域置灰。 自定义变量 当选中“基于模板”时,需要配置模板中的参数,在“值”中进行赋值。 地址 接收人的邮箱地址。 文本:直接输入邮箱地址,多个地址请用分号分隔,或者从全局上下文拖拽变量代表一个接收人的邮箱地址。 集合:表示可以从全局上下文拖拽集合变量,集合变量即数组型变量,表示多个接收人的邮箱地址。在定义变量时勾选“是否为数组”,则该变量被定义为集合变量。 抄送 抄送人员的邮箱地址,直接输入分号分隔的字符串或者从全局上下文拖拽变量。 密送 秘密发送人员的邮箱地址,直接输入分号分隔的字符串或者从全局上下文拖拽变量。 是否同步发送 是否开启同步发送功能。
-
如何使用跳出循环图元 在逻辑中,拖拽“跳出循环”图元至画布中。 选中跳出循环图元,单击,设置基本信息。 表1 基本信息参数说明 参数 说明 标签 设置图元的标签,用于在服务编排设计页面展示。系统会自动填入该值,格式为Break序号,序号从“0”开始,表示同类型图元序号。 名称 设置图元的名称,名称为图元在服务编排中的标识,请确保在当前服务编排中唯一。命名要求如下: 长度范围为1~80个字符。 必须以英文字母开头,由英文字母,数字或单下划线组成,且不能以下划线结尾。 描述 请根据实际需求,在输入框中输入图元的描述信息。 取值范围:1~255个字符。 单击,在“跳出循环”页面的“循环”下拉框中,选择当前服务编排中需要中断的循环。 图1 配置跳出循环图元
-
如何使用发送事件图元 在基本中,拖拽“发送事件”图元至画布中。 选中发送事件图元,单击,设置基本信息。 表1 基本信息参数说明 参数 说明 标签 设置图元的标签,用于在服务编排设计页面展示。系统会自动填入该值,格式为Event序号,序号从“0”开始,表示同类型图元序号。 名称 设置图元的名称,名称为图元在服务编排中的标识,请确保在当前服务编排中唯一。命名要求如下: 长度范围为1~80个字符。 必须以英文字母开头,由英文字母,数字或单下划线组成,且不能以下划线结尾。 描述 请根据实际需求,在输入框中输入图元的描述信息。 取值范围:1~255个字符。 单击,在“发送事件”页面进行配置。 图1 配置发送事件图元 表2 发送事件图元配置参数说明 参数 说明 事件 选择待发送的事件,直接在下拉框中选择。 分区字段 从事件中选择一个自定义参数用作Kafka的分区字段,则根据该字段值进行路由,相同的值将路由到同一个Kafka分区;如果不指定,则默认随机路由到不同Kafka分区,从而提升并发处理性能。 须知: 建议选择有区分度的关键字段,该字段必须是事件的自定义字段。 发送到外部 系统内部有配置与华为云Astro轻应用相连Kafka的固定Topic“__BINGO_SYS_TOPIC”。 如果不勾选“发送到外部”,表示将事件数据发到默认的Topic上。 如果勾选“发送到外部”,表示将事件数据发送到与华为云Astro轻应用相连Kafka的其他Topic上,此时需要配置其他的Topic。 默认不勾选。 延迟到事务结束(提交或回滚)后才发送 是否延迟到该服务编排事务结束后,才发送事件。 默认不勾选,表示流程执行到该图元时立即发送事件。 主题 当勾选“发送到外部”时,该参数才会显示,表示非系统配置的默认Topic。 需要从与华为云Astro轻应用相连Kafka处,获取其他主题Topic。 目标/源 配置事件数据,为该事件自定义参数赋值,将“源”取值赋值到“目标”中。单击“新增行”,可添加并进行赋值。 目标:从下拉框中,选择事件的自定义参数。 源:从全局上下文拖拽变量或直接输入“{!变量名}”,给目标赋值。
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- ...
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333