华为云用户手册
-
编排流水线阶段 访问CodeArts Pipeline首页。 在流水线列表页搜索目标流水线,单击操作列,选择“编辑”。 进入流水线“任务编排”页面,单击或“新建阶段”,可以为流水线添加新的阶段,添加完阶段后,可根据实际需要编辑、复制、删除、移动阶段、配置阶段准入类型。 表1 管理阶段 操作项 说明 编辑阶段 单击,弹出“编辑阶段”侧滑框,可以配置阶段名称和阶段是否总是运行。 总是运行:选择“是”,表示流水线执行时,该阶段下的任务默认选中必须执行且不可取消。 总是运行:选择“否”,表示流水线执行时,该阶段下的任务默认选中但可以取消。 复制阶段 单击,可以复制流水线阶段。 删除阶段 单击,根据删除提示确认是否删除阶段。 排序阶段 单击不松开,可以移动阶段调整阶段顺序。 阶段准入 通过阶段准入校验,控制流水线阶段的执行。单击,弹出“准入设置”窗口,可以配置阶段准入类型。 自动:默认执行方式,流水线执行时自动进入下一阶段继续运行。 手动:流水线执行时需手动确认后才能进入下一阶段继续运行。 时间窗:流水线执行时需在配置好的时间段才能进入下一阶段继续执行。 准出条件 流水线服务提供基于规则和策略的准出条件管理能力,是指在流水线阶段中配置的用于自动化看护的质量指标卡点,通过配置规则和策略,来实现阶段准出校验,并最终控制流水线的执行。 规则:基于扩展插件的输出阈值,设置比较关系和阈值条件,供策略使用,并最终应用到流水线准出条件中,作为准出条件的判断依据。配置方法请参考配置流水线规则。 策略:策略是一系列规则的集合,每个规则对应了一个步骤插件的输出指标值的条件模板,通过预定义策略,可以很方便地在多条不同流水线中应用同样的准出条件。策略实行分层管理,可分为租户级策略和项目级策略。用户可根据需要将策略资源应用到流水线作为准出条件来控制流水线的执行,保障产品交付质量。 说明: 当前仅支持“标准策略准出条件”,可以选择当前项目或租户下创建好的策略。 流水线可以在各阶段单独设置准出条件,准出条件只对当前阶段有效。 同一阶段中可以配置多个不同的准出条件。 单击阶段下方“准出条件”,弹出“准出条件”侧滑框,将鼠标移动到准出条件卡片,单击“添加”。 填写准出条件名称,选择策略。 单击“确定”,即可添加一个准出条件。 阶段编排完成后,保存流水线。
-
流水线扩展插件使用场景 使用者可通过扩展插件对接使用各类云服务。如使用CodeArts Pipeline提供的官方插件,如Kubernetes发布。 开发者利用官方工具镜像进行插件开发,自行实现业务逻辑。当前支持开发者使用主流多语言进行业务脚本编写,如:shell/nodejs/python/java等。针对业务的特殊环境要求,支持使用自定义执行机配合基础插件(执行容器镜像)提供更加多样的执行方式。 使用者可开发扩展插件对接已有的第三方CI/CD工具。
-
Step2 在Notebook中调试模型 打开一个新的Terminal终端,进入“/home/ma-user/infer/”目录,运行启动脚本run.sh,并预测模型。基础镜像中默认提供了run.sh作为启动脚本。启动命令如下: sh run.sh 图1 运行启动脚本 上传一张预测图片(手写数字图片)到Notebook中。 图2 手写数字图片 图3 上传预测图片 重新打开一个新的Terminal终端,执行如下命令进行预测。 curl -kv -F 'images=@/home/ma-user/work/test.png' -X POST http://127.0.0.1:8080/ 图4 预测 在调试过程中,如果有修改模型文件或者推理脚本文件,需要重启run.sh脚本。执行如下命令先停止nginx服务,再运行run.sh脚本。 #查询nginx进程 ps -ef |grep nginx #关闭所有nginx相关进程 kill -9 {进程ID} #运行run.sh脚本 sh run.sh 也可以执行pkill nginx命令直接关闭所有nginx进程。 #关闭所有nginx进程 pkill nginx #运行run.sh脚本 sh run.sh 图5 重启run.sh脚本 父主题: 无需构建直接在开发环境中调试并保存镜像用于推理
-
大数据组件日志采集场景 场景描述:有些用户会使用 MRS /Flink/Spark等大数据组件做数据处理,希望采集自定义的日志到LTS,但是不希望采集大数据组件的运行日志(对于业务分析价值小)。 使用建议: 日志采集方式:推荐用户使用JAVA SDK或者GO SDK上报日志。常见的大数据组件不太方便指定个性化的日志文件路径去只打印自己的业务日志,因此使用SDK上报日志是比较好的选择。 日志结构化解析方式:LTS支持iOS SDK、Android SDK、百度小程序SDK、微信小程序SDK等端侧SDK,使用端侧SDK上报的日志不支持云端结构化解析,因此建议您上报已经结构化的JSON格式日志。
-
容器应用日志场景 场景描述:适用于用户将应用系统部署在K8S集群上,使用LTS统一采集和搜索日志的场景。用户的应用系统一般由多个工作负载组成,每个工作负载至少部署2个实例。 使用建议: 日志采集方式: 建议使用采集器ICAgent采集日志,您可以使用CCE接入配置日志采集路径。不建议使用SDK、API上报日志。使用ICAgent的好处是与应用系统完全解耦,无侵入,无需更改代码,使用SDK/API等方式步骤相对复杂,如果代码编写不当容易对应用系统的稳定性造成影响。 采集容器应用日志的方式有:容器标准输出、容器文件、节点文件、K8S事件,建议优先使用容器文件。对比容器标准输出,容器文件的优点是可以持久化挂载到主机上,且输出的内容用户自主控制性更强。对比节点文件,容器文件的优点是采集的日志有命名空间、工作负载、POD等元数据信息,在搜索日志的时候更加便捷。 日志组规划:将一个CCE集群的所有日志放在一个日志组中,日志组的别名(支持修改)可以使用CCE集群的名称,日志组的原始名称(不支持修改)建议使用k8s-log-{集群ID}。 日志流规划: 如果您的日志是没有固定规则的日志,可以将类似组件的日志采集到同一个日志流,例如java组件、php组件、python组件。类似组件的日志采集到一个日志流的好处是日志流的数量不至于太多而难以管理,如果您的组件数量比较少(例如小于20个),您可以将每个组件的日志采集到不同的日志流。 如果您的日志是类似NGINX网关这种可以结构化解析的日志,建议您将相同格式的日志采集到同一个日志流。因为统一的日志格式才能方便您后续统一使用SQL分析功能,实现可视化图表分析。 权限隔离: 云日志 服务的日志流支持企业项目隔离,通过为日志流设定不同的企业项目可以实现不同 IAM 用户有不同日志流的访问权限。
-
应用监控告警场景 场景描述:适用于使用日志来实时监控应用系统是否正常,提前发现系统故障的场景。 SQL告警仅支持全部用户使用的局点有:华南-广州、华北-北京四、华北-乌兰察布二零一、华北-乌兰察布一、华东-上海一、中国-香港、西南-贵阳一、亚太-新加坡、华南-深圳,支持部分白名单用户使用的局点有:亚太-曼谷、华北-北京一、华东-上海二、华北-乌兰察布二零二,其他局点暂不支持该功能。 使用建议: 告警统计方式:LTS有两种告警配置方式:关键词告警和SQL告警。如果您的日志是无规则的,那么适用关键词告警,例如java程序的运行日志;如果您的日志是有规则的,例如NGINX网关日志,那么适用SQL统计告警,您可以使用SQL语句对结构化的日志做统计分析,获取您想要的指标配置告警。 告警规则配置:告警触发一般需要越快越好,您的告警规则统计周期建议使用1分钟。您可以使用LTS提供的默认消息模板来发送告警。如果您有个性化的诉求,您可以在系统提供的默认模板的基础上做一些修改保存为消息模板,然后发送告警。 配置ELB/APIG等关键云服务日志告警:ELB经常用来作为应用系统的对外的入口,您可以打开ELB日志对接到LTS,然后配置ELB 5XX状态码告警,这样就可以及时发现系统是否有故障。同时您可以借助开箱即用的ELB仪表盘模板,观察应用系统整体的成功率。
-
等保安全合规场景 场景描述:国家网络安全法要求上市公司、金融企业需要保存关键系统日志至少180天,用户可以将这些日志采集到LTS后统一存储。 使用建议: 日志采集方式:DSL加工 云主机和容器日志,建议优先使用采集器ICAgent采集,使用ECS向导或者CCE向导。 云服务日志例如ELB/VPC日志,您可以在云服务界面打开开关将日志采集到LTS。 如果您的某些设备必须要以Syslog协议上报日志,您可以参考如何搭建Syslog服务器收集日志并采集到LTS。 日志存储方式: LTS默认支持用户存储365天,您可以修改日志存储时长。如果您需要更多的存储时长,请提交工单申请开通3年存储时长。 降低存储成本: 使用LTS在23年1130公测的冷存储特性,冷存储的日志存储单价比OBS仅贵25%,但是可以支持搜索,在易用性和成本上是最佳选择。 转储至OBS,优点是成本低,缺点是不支持搜索历史日志的内容,使用不便利。
-
云主机应用日志场景 场景描述:适用于用户将应用系统部署在云主机上,使用LTS统一采集和搜索日志的场景。用户的应用系统一般由多个组件(也称微服务)组成,每个组件部署在至少2台云主机上。 使用建议: 日志采集方式:建议使用采集器ICAgent采集日志,您需要在云主机上安装ICAgent,然后使用ECS接入配置日志采集路径。不建议使用SDK、API上报日志。使用ICAgent的好处是与应用系统完全解耦,无侵入,无需更改代码,使用SDK/API等方式步骤相对复杂,如果代码编写不当容易对应用系统的稳定性造成影响。 日志组规划建议:将一个应用系统的日志放在一个日志组中,日志组的名称可以使用应用系统的名称。 日志流规划建议: 如果您的日志是没有固定规则的日志,可以将类似组件的日志采集到同一个日志流,例如java组件、php组件、python组件。类似组件的日志采集到一个日志流的好处是日志流的数量不至于太多而难以管理,如果您的组件数量比较少(例如小于20个),您可以将每个组件的日志采集到不同的日志流。 如果您的日志是类似NGINX网关这种可以结构化解析的日志,建议您将有相同格式的日志采集到同一个日志流。因为统一的日志格式才能方便您后续统一使用SQL分析功能,实现可视化图表分析。 权限隔离建议:云日志服务的日志流支持企业项目隔离,通过为日志流设定不同的企业项目可以实现不同IAM用户有不同日志流的访问权限。
-
业务运营分析场景 场景描述:适用于在应用系统中打印业务日志,例如交易额、客户、产品等信息,然后使用LTS的SQL分析功能,输出可视化图表和仪表盘的场景。 使用建议: 日志采集方式:建议使用采集器ICAgent采集日志,将日志打印到单独的日志文件中,不要与应用程序的运行日志混在一起。不建议使用SDK、API上报日志。 日志结构化解析方式:建议您打印的业务日志使用空格分割或者JSON格式,这样方便快速配置日志结构化解析规则。 日志可视化呈现: 您可以创建自定义的仪表盘,使用类SQL语法分析已经结构化处理好的业务日志。自定义的仪表盘中,你可以添加多个图表,也可以添加过滤器,使用LTS做业务分析,可以减少采购 数据仓库 ,没有额外成本,上手更简单。 日志加工:想要分析的业务日志混在运行日志中,或者业务日志中有些敏感数据需要删除,或者有些数据缺少维度数据,建议使用DSL加工功能对日志进行规整、富化、流转、脱敏、过滤等操作。详细请参考DSL加工。
-
创建rf_admin_trust委托(可选) 进入华为云官网,打开控制台管理界面,鼠标移动至个人账号处,打开“ 统一身份认证 ”菜单。 图1 控制台管理界面 图2 统一身份认证菜单 进入“委托”菜单,搜索“rf_admin_trust”委托。 图3 委托列表 如果委托存在,则不用执行接下来的创建委托的步骤。 如果委托不存在时执行接下来的步骤创建委托。 单击步骤2界面中的“创建委托”按钮,在委托名称中输入“rf_admin_trust”,委托类型选择“云服务”,选择“ RFS ”,单击“下一步”。 图4 创建委托 在搜索框中输入“Tenant Administrator”权限,并勾选搜索结果,单击“下一步”。 图5 选择策略 选择“所有资源”,并单击下一步完成配置。 图6 设置授权范围 “委托”列表中出现“rf_admin_trust”委托则创建成功。 图7 委托列表
-
附录 名词解释 基本概念、云服务简介、专有名词解释 弹性 云服务器ECS :是一种可随时自助获取、可弹性伸缩的云服务器,可帮助您打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率。 华为云Flexus云服务器X实例:Flexus云服务器X实例是新一代面向中小企业和开发者打造的柔性算力云服务器。Flexus云服务器X实例功能接近ECS, 同时还具备独有特点,例如Flexus云服务器X实例具有更灵活的vCPU内存配比、支持热变配不中断业务变更规格、支持性能模式等。 弹性公网IP:提供独立的公网IP资源,包括公网IP地址与公网出口带宽服务。可以与弹性云服务器、裸金属服务器、虚拟IP、弹性负载均衡、NAT网关等资源灵活地绑定及解绑。 弹性文件服务SFS Turbo:为用户提供一个完全托管的共享文件存储,能够弹性伸缩至320TB规模,具备高可用性和持久性,为海量的小文件、低延迟高IOPS型应用提供有力支持。 Gearbox: Gearbox是一个华为云自研开源的资源协同系统。Gearbox系统与调度平台(Slurm)协同,协调云下、云上资源使用。支持自定义业务负载指标,提供基于指标的自动扩容能力,感知业务任务状态,闲置自动释放,提供无损的弹性伸缩能力。 Slurm:是一个开源,高度可扩展的集群管理工具和作业调度系统,用于各种规模的Linux集群。 主要提供如下集中关键的特性: 资源分配 分配独占或者非独占的资源给用户,可以控制分配的时长,供用户运行作业。 作业管理框架 提供一个框架,可以帮助用户控制并行作业在所分配资源上的启动、运行和监控。 队列 提交的作业资源需求超出了可用资源,将作业放入队列。 不同的作业调度策略 提供资源预留,公平分享,回填等高级作业调度策略供使用。 其他工具 提供作业信息统计,作业状态诊断等工具。
-
快速部署 本章节主要帮助用户快速部署“快速构建基因测序环境”解决方案。 表1 参数说明 参数名称 类型 是否可选 参数解释 默认值 vpc_name string 必填 虚拟私有云名称,该模板新建VPC,不允许重名。取值范围:1-54个字符,支持数字、字母、_(下划线)、-(中划线)、.(点) gene-sequencing-environment-demo security_group_name string 必填 安全组名称,该模板新建安全组。取值范围:1-64个字符,支持数字、字母、_(下划线)、-(中划线)、.(点) gene-sequencing-environment-demo ecs_name string 必填 云服务器名称,命名方式为{ecs_name}-[0X],不允许重名。取值范围:1-59个字符组成,包括字母、数字、下划线 (_)、连字符 (-) 和句点 (.) gene-sequencing-environment-demo ecs_worker_count number 必填 云服务器计算节点数量,默认3台云服务器:1台调度节点、2台计算节点。取值范围:大于等于2台,上限由用户配额决定。具体请登录华为云官网我的配额查看。 2 ecs_password string 必填 云服务器初始化密码,创建完成后,请参及时登录ECS控制台修改密码。取值范围:长度为8-26个字符,密码至少包含大写字母、小写字母、数字和特殊字符($!@%-_=+[]:./^,{}?)中的三种,密码不能包含用户名或用户名的逆序。管理员账户默认为root。重置密码请参考3.3开始使用步骤1。 空 ecs_image string 必填 云服务器的公共操作系统镜像,具体请参考弹性云服务器类型与支持的操作系统版本,请使用Linux操作系统。 CentOS 7.6 64bit ecs_master_flavor string 必填 云服务器调度节点规格,支持弹性云服务器 ECS及华为云Flexus 云服务器X实例。Flexus 云服务器X实例规格ID命名规则为x1.?u.?g,例如2vCPUs4GiB规格ID为x1.2u.4g,具体华为云Flexus 云服务器X实例规格请参考控制台。弹性云服务器 ECS规格请参考官网弹性云服务器规格清单。 x1.4u.8g ecs_worker_flavor string 必填 云服务器计算节点规格,支持弹性云服务器 ECS及华为云Flexus 云服务器X实例。Flexus 云服务器X实例性能版规格ID命名规则为x1e.?u.?g,例如2vCPUs4GiB规格ID为x1e.2u.4g,具体华为云Flexus 云服务器X实例规格请参考控制台。弹性云服务器 ECS规格请参考官网弹性云服务器规格清单。 x1e.32u.64g system_disk_type string 必填 云服务器系统盘规格,有关磁盘类型的详细信息,请参见磁盘类型及性能介绍。可用选项有:SAS(高I/O磁盘类型)、SSD(超高I/O磁盘类型)、GPSSD(通用SSD磁盘类型)、ESSD(极端SSD类型)。 SAS system_disk_size number 必填 云服务器系统盘大小,取值范围:40-1024GB,不支持缩盘。 100 bandwidth_size number 必填 带宽大小,取值范围:1-2,000Mbit/s。 5 sfs_turbo_name string 必填 弹性服务文名称,取值范围:4-64字符,必须以字母开头,可以包含字母、数字、中划线和下划线,不能包含其他的特殊字符,不区分大小写。 sfs_turbo_size number 必填 弹性服务共享文件系统大小,取值范围:500~32768GB。 10240 charging_mode string 必填 计费模式,默认自动扣费,取值为prePaid(包年包月)或postPaid(按需计费)。 postPaid charging_unit string 必填 计费周期单位,当计费方式设置为prePaid时,此参数为必填项;当计费方式设置为postPaid时,此参数失效。有效值为:month(包月)和year(包年)。 month charging_period number 必填 云服务器ECS订购周期,仅当charging_mode为prePaid(包年/包月)生效,此时该参数为必填参数。取值范围:charging_unit=month(周期类型为月)时,取值为1-9;charging_unit=year(周期类型为年)时,取值为1-3。默认订购1月。 1 keypair_name string 必填 已有SSH登录密钥对名称,请参考3.1准备工作创建密钥对获取。 空 as_name string 必填 弹性伸缩资源名称,该模板使用新建弹性伸缩组,为集群提供弹性伸缩功能,不支持重名。取值范围:1-50个字符组成,只能由英文字母、数字、中划线(-)组成。 gene-sequencing-environment-demo AK string 必填 访问密钥AK,请参考部署文档3.1准备工作配置访问密钥获取。 空 SK string 必填 访问密钥SK,请参考部署文档3.1准备工作配置访问密钥获取。 空 project_id string 必填 用户方案部署所在区域的项目ID,请参考统一身份认证--项目获取。 空 登录华为云解决方案实践,选择“快速构建基因测序环境”。 图1 解决方案实施库 单击“一键部署”,跳转至该解决方案创建资源栈部署界面。 图2 一键部署 单击“下一步”,参考表1完成自定义参数填写。。 图3 配置参数 在配置确认页面中,单击“创建执行计划”。 图4 配置确认 单击“创建执行计划”,根据提示输入执行计划名称等,单击“确定”。 图5 创建执行计划 单击“部署”,并且在弹出的执行计划确认框中单击“执行”。 图6 部署执行计划 图7 执行计划确认 (可选)如果计费模式选择“包年包月”,在余额不充足的情况下(所需总费用请参考表2)请及时登录费用中心,手动完成待支付订单的费用支付。 待出现“Apply required resource success”,表示该解决方案所有资源已经部署完成,等待30分钟集群内环境部署完成即可使用。 图8 执行完成 注:集群内环境部署完成前请不要登录ECS进行其他操作,否则可能导致环境部署失败。 父主题: 实施步骤
-
资源和成本规划 该解决方案主要部署如下资源,不同产品的花费仅供参考,具体请参考华为云官网价格详情,实际收费以账单为准。 表1 资源和成本规划(按需计费) 华为云服务 配置示例 每月预估花费 华为云Flexus 云服务器X实例(调度节点) 按需计费:0.50元/小时 区域:华北-北京四 计费模式:按需计费 规格:Flexus云服务器X实例 | 性能模式(关闭)| x1.4u.8g | 4核 | 8 GB 镜像:CentOS 7.6 64bit 系统盘:高IO | 100GB 购买量:1 360.00 元 华为云Flexus 云服务器X实例(计算节点) 按需计费:5.44元/小时 区域:华北-北京四 计费模式:按需计费 规格:Flexus云服务器X实例 | 性能模式(开启)| x1.32u.64g | 32核 | 64 GB 镜像:CentOS 7.6 64bit 系统盘:高IO | 100GB 购买量:2 7833.60元 SFS Turbo标准型 按需计费:6.4元/小时 区域:华北-北京四 计费模式:按需计费 SFS Turbo 标准型 | 10TB 4608.00 元 弹性公网IP EIP 按需计费:0.34元/小时 区域:华北-北京四 计费模式:按需计费 线路:动态BGP 公网带宽:按带宽计费 带宽大小:5Mbit/s 购买量:1 244.80 元 合计 - 13046.40 元 表2 资源和成本规划(包年包月) 华为云服务 配置示例 每月预估花费 华为云Flexus 云服务器X实例(调度节点) 区域:华北-北京四 计费模式:包年包月 规格:Flexus云服务器X实例 | 性能模式(关闭)| x1.4u.8g | 4核 | 8 GB 镜像:CentOS 7.6 64bit 系统盘:高IO | 100GB 购买量:1 251.00 元 华为云Flexus 云服务器X实例(计算节点) 区域:华北-北京四 计费模式:包年包月 规格:Flexus云服务器X实例 | 性能模式(开启)| x1.32u.64g | 32核 | 64 GB 镜像:CentOS 7.6 64bit 系统盘:高IO | 100GB 购买量:2 5254.00 元 SFS Turbo标准型 按需计费:6.4元/小时 区域:华北-北京四 计费模式:按需计费 SFS Turbo 标准型 | 10TB 4608.00 元 弹性公网IP EIP 区域:华北-北京四 计费模式:包年包月 线路:动态BGP 公网带宽:按带宽计费 带宽大小:5Mbit/s 购买量:1 115.00 元 合计 - 10228.00 元
-
方案优势 高性能 提供C6(通用计算增强型)、M6(内存优化型)等计算密集型ECS实例,搭载第二代英特尔® 至强® 可扩展处理器 ,计算性能强劲稳定,配套华为自研智能高速网卡,提供超高带宽和超低时延的网络体验。 降本增效 多种规格的计算资源和存储资源按需使用,精准匹配不同流程的IT资源需求,相同流程的成本最高可节省30%。 一键部署 一键轻松部署,即可完成资源的快速发放以及基因测序HPC环境的部署。
-
条件(Condition) 条件键(Condition)是SCP生效的特定条件,包括条件键和运算符。 条件键表示SCP的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,组织将自动获取并鉴权。详情请参见:全局条件键。 服务级条件键(前缀通常为服务缩写,如DEW:)仅适用于对应服务的操作,详情请参见表 DEW支持的服务级条件键。 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个 VPC终端节点 发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见:运算符。 DEW定义了以下可以在SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。 KPS服务不支持在身份策略中的条件键中配置服务级的条件键。 表9 DEW支持的服务级条件键 服务级条件键 类型 单值/多值 说明 kms:EncryptionAlgorithm string 单值 根据请求中的加解密算法的值过滤对加解密操作的访问。 kms:GranteePrincipalType string 单值 根据请求中的授权主体类型约束过滤对CreateGrant操作的访问。 kms:GrantOperations string 多值 根据需要授权的操作过滤对CreateGrant操作的访问权限。 kms:GranteePrincipal string 单值 根据授权中的被授权方主体过滤对CreateGrant操作的访问权限。 kms:KeyOrigin string 单值 根据创建或使用操作KMS密钥的origin属性过滤对API操作的访问。 kms:KeySpec string 单值 根据创建或使用操作KMS密钥的key_spec属性过滤对API操作的访问。 kms:KeyUsage string 单值 根据创建或使用操作KMS密钥的key_usage属性过滤对API操作的访问。 kms:MessageType string 单值 根据请求中的message_type参数的值过滤对签名和验证签名操作的访问。 kms:RetiringPrincipal string 单值 根据授权中的retiring_principal筛选对CreateGrant操作的访问。 kms:SigningAlgorithm string 单值 根据请求中的signing_algorithm过滤对签名和验证操作的访问。 kms:ExpirationTime date 单值 根据请求中的expiration_time参数的值过滤对ImportKeyMaterial操作的访问。 kms:WrappingAlgorithm string 单值 根据请求中的wrapping_algorithm参数的值过滤对CreateParametersForImport操作的访问。 kms:RecipientAttestation string 单值 根据请求中证明文档的平台配置寄存器(PCR)值控制CreateDatakey、DecryptData、DecryptDatakey和CreateRandom操作的访问。 kms:MacAlgorithm string 单值 根据请求中的mac_algorithm过滤对生成/校验消息验证码操作的访问。 csms:Type string 单值 根据凭据的类型筛选访问权限。
-
条件(Condition) 条件(Condition)是SCP生效的特定条件,包括条件键和运算符。 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:全局条件键。 服务级条件键(前缀通常为服务缩写,如gaussdb:)仅适用于对应服务的操作,详情请参见表4。 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个VPC终端节点发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见运算符。 GaussDB 定义了以下可以在SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。 表13 GaussDB支持的服务级条件键 服务级条件键 类型 单值/多值 说明 gaussdb:BackupEnabled boolean 单值 按照请求参数中传递的是否开启备份策略标签键筛选访问权限。限定词选择“默认”。 gaussdb:Encrypted boolean 单值 按照请求参数中传递的是否开启磁盘加密标签键筛选访问权限。限定词选择“默认”。
-
操作(Action) 操作(Action)即为SCP中支持的授权项。 “访问级别”列描述如何对操作进行分类(list、read和write等)。此分类可帮助您了解在SCP中相应操作对应的访问级别。 “资源类型”列指每个操作是否支持资源级权限。 资源类型支持通配符号*表示所有。如果此列没有值(-),则必须在SCP语句的Resource元素中指定所有资源类型(“*”)。 如果该列包含资源类型,则必须在具有该操作的语句中指定该资源的URN。 资源类型列中必需资源在表中用星号(*)标识,表示使用此操作必须指定该资源类型。 关于GaussDB定义的资源类型的详细信息请参见资源类型(Resource)。 “条件键”列包括了可以在SCP语句的Condition元素中GaussDB支持指定的键值。 如果该授权项资源类型列存在值,则表示条件键仅对列举的资源类型生效。 如果该授权项资源类型列没有值(-),则表示条件键对整个授权项生效。 如果此列没有值(-),表示此操作不支持指定条件键。 关于GaussDB定义的条件键的详细信息请参见条件(Condition)。 您可以在SCP语句的Action元素中指定以下GaussDB的相关操作。 表1 GaussDB支持的授权项 授权项 描述 访问级别 资源类型(*为必须) 条件键 gaussdb:backup:createBackup 授予创建数据库实例手动备份的权限。 write instance - gaussdb:backup:deleteBackup 授予删除备份的权限。 write instance - gaussdb:backup:listAll 授予查询备份列表的权限。 list instance - gaussdb:instance:updateBackupPolicy 授予设置备份策略的权限。 write instance gaussdb:BackupEnabled gaussdb:param:applyParam 授予应用参数模板的权限。 write instance - gaussdb:tag:create 授予添加资源标签的权限。 tagging instance - gaussdb:instance:bindEIP 授予绑定弹性公网IP的权限。 write instance - gaussdb:instance:check 授予校验实例相关信息的权限。 read instance - gaussdb:instance:createInstance 授予创建数据库实例的权限。 write instance gaussdb:BackupEnabled gaussdb:Encrypted gaussdb:instance:createDatabase 授予创建数据库的权限。 write instance - gaussdb:instance:createDatabaseSchema 授予创建数据库Schema的权限。 write instance - gaussdb:instance:createDatabaseUser 授予创建数据库用户的权限。 write instance - gaussdb:instance:deleteInstance 授予删除数据库实例的权限。 write instance - gaussdb:instance:get 授予查询实例详情的权限。 read instance - gaussdb:instance:getBackupPolicy 授予查询自动备份策略的权限。 read instance - gaussdb:instance:getBalanceStatus 授予查询实例主备平衡状态的权限。 read instance - gaussdb:instance:getDiskUsage 授予查询磁盘使用率的权限。 read instance - gaussdb:instance:getRecyclePolicy 授予查看实例回收备份策略的权限。 read instance - gaussdb:instance:downloadSslCert 授予下载实例SSL证书的权限。 read instance - gaussdb:instance:grantDatabasePrivilege 授予授权数据库账号的权限。 write instance - gaussdb:instance:listAll 授予查询数据库实例列表的权限。 list instance - gaussdb:instance:listPublicIps 授予查询实例已绑定EIP列表的权限。 list instance - gaussdb:instance:listComponents 授予查询实例组件列表的权限。 list instance - gaussdb:instance:listDatabases 授予查询数据库列表的权限。 list instance - gaussdb:instance:listDatabaseUsers 授予查询数据库用户列表的权限。 list instance - gaussdb:tag:listAll 授予查询资源标签列表的权限。 list instance - gaussdb:quota:listAll 授予查询配额列表的权限。 list instance - gaussdb:instance:listRecoverableTimes 授予查询备份可恢复时间段的权限。 list instance - gaussdb:instance:listSchemas 授予查询数据库Schema列表的权限。 list instance - gaussdb:instance:renameInstance 授予重置实例名称的权限。 write instance - gaussdb:instance:resetPassword 授予重置数据库密码的权限。 write instance - gaussdb:instance:resizeFlavor 授予变更实例规格的权限。 write instance - gaussdb:instance:restartInstance 授予重启数据库实例的权限。 write instance - gaussdb:instance:setRecyclePolicy 授予设置实例回收备份策略的权限。 write instance - gaussdb:instance:switchShard 授予分片节点主备切换的权限。 write instance - gaussdb:instance:extend 授予扩容相关操作的权限。 write instance - gaussdb:param:update 授予修改参数组的权限。 write instance - gaussdb:param:check 授予校验参数组的权限。 read instance - gaussdb:param:copy 授予复制参数模板的权限。 write instance - gaussdb:param:createParam 授予创建参数组的权限。 write instance - gaussdb:param:deleteParam 授予删除参数组的权限。 write instance - gaussdb:param:get 授予查询参数配置详情的权限。 read instance - gaussdb:param:compare 授予比较两个参数模板之间差异的权限。 read instance - gaussdb:param:listAll 授予查询参数组列表的权限。 list instance - gaussdb:param:reset 授予重置参数模板的权限。 write instance - gaussdb:quota:update 授予修改配额的权限。 write instance - gaussdb:task:listAll 授予查询任务列表的权限。 list instance - gaussdb:task:delete 授予删除任务记录的权限。 write instance - gaussdb:task:get 授予查询任务详情的权限。 read instance - GaussDB的API通常对应着一个或多个授权项。如下表展示了API与授权项的关系,以及该API需要依赖的授权项。 表2 实例管理 权限 API 对应的授权项 依赖的授权项 创建数据库实例 POST /v3/{project_id}/instances gaussdb:instance:createInstance - 扩容数据库实例的磁盘空间 POST /v3/{project_id}/instances/{instance_id}/action gaussdb:instance:extend - 删除数据库实例 DELETE /v3/{project_id}/instances/{instance_id} gaussdb:instance:delete - 查询数据库实例列表 GET /v3/{project_id}/instances gaussdb:instance:listAll - 重置数据库密码 POST /v3/{project_id}/instances/{instance_id}/password gaussdb:instance:resetPassword - 修改实例名称 PUT /v3/{project_id}/instances/{instance_id}/name gaussdb:instance:rename - 重启数据库实例 POST /v3/{project_id}/instances/{instance_id}/restart gaussdb:instance:restart - 分片节点主备切换 POST /v3/{project_id}/instances/{instance_id}/switch-shard gaussdb:instance:switchShard - 查询实例的组件列表 GET /v3/{project_id}/instances/{instance_id}/components gaussdb:instance:listComponents - 规格变更 PUT /v3/{project_id}/instance/{instance_id}/flavor gaussdb:instance:resizeFlavor - 查询实例主备平衡状态 GET /v3/{project_id}/instances/{instance_id}/balance gaussdb:instance:getBalanceStatus - 查询解决方案模板配置 GET /v3/{project_id}/deployment-form gaussdb:instance:listAll - 查询已绑定的EIP列表 GET /v3/{project_id}/instances/{instance_id}/public-ips?offset={offset}&limit={limit} gaussdb:instance:listPublicIps - 弱密码校验 POST /v3/{project_id}/weak-password-verification gaussdb:instance:check - 绑定/解绑弹性公网IP POST /v3/{project_id}/instances/{instance_id}/nodes/{node_id}/public-ip gaussdb:instance:bindPublicIp - 查询实例SSL证书下载地址 GET /v3/{project_id}/instances/{instance_id}/ssl-cert/download-link gaussdb:instance:downloadSslCert - 查询租户的实例配额 GET /v3/{project_id}/project-quotas?type={type} gaussdb:quota:listAll - 表3 参数配置 权限 API 对应的授权项 依赖的授权项 获取参数模板列表 GET /v3/{project_id}/configurations?offset={offset}&limit={limit} gaussdb:param:listAll - 获取指定实例的参数 GET /v3/{project_id}/instances/{instance_id}/configurations gaussdb:instance:get - 修改指定实例的参数 PUT /v3/{project_id}/instances/{instance_id}/configurations gaussdb:param:update - 创建参数模板 POST /v3/{project_id}/configurations gaussdb:param:createParam - 删除参数模板 DELETE /v3/{project_id}/configurations/{config_id} gaussdb:param:delete - 查询参数模板详情 GET /v3/{project_id}/configurations/{config_id} gaussdb:param:get - 复制参数模板 POST /v3/{project_id}/configurations/{config_id}/copy gaussdb:param:copy - 重置参数组 POST /v3/{project_id}/configurations/{config_id}/reset gaussdb:param:reset - 比较两个参数组模板之间的差异 POST /v3/{project_id}/configurations/comparison gaussdb:param:compare - 查询可应用实例列表 GET /v3/{project_id}/configurations/{config_id}/applicable-instances gaussdb:instance:listAll - 校验参数组名称是否存在 GET /v3/{project_id}/configurations/name-validation?name={name} gaussdb:param:check - 应用参数模板 PUT /v3/{project_id}/configurations/{config_id}/apply gaussdb:param:apply - 查询参数模板的应用记录 GET /v3/{project_id}/configurations/{config_id}/applied-histories gaussdb:param:listAll - 查询参数模板的修改历史 GET /v3/{project_id}/configurations/{config_id}/histories gaussdb:param:listAll - 表4 备份管理 权限 API 对应的授权项 依赖的授权项 设置自动备份策略 PUT /v3/{project_id}/instances/{instance_id}/backups/policy gaussdb:instance:updateBackupPolicy - 查询自动备份策略 GET /v3/{project_id}/instances/{instance_id}/backups/policy gaussdb:instance:getBackupPolicy - 查询备份列表 GET /v3/{project_id}/backups?instance_id={instance_id}&backup_id={backup_id}&backup_type={backup_type}&offset={offset}&limit={limit}&begin_time={begin_time}&end_time={end_time} gaussdb:backup:listAll - 创建手动备份 POST /v3/{project_id}/backups gaussdb:backup:create - 删除手动备份 DELETE /v3/{project_id}/backups/{backup_id} gaussdb:backup:delete - 查询可恢复时间段 GET /v3/{project_id}/instances/{instance_id}/restore-time?date={date} gaussdb:instance:listRecoverableTimes - 恢复到新实例 POST /v3/{project_id}/instances gaussdb:instance:createInstance - 查询可用于备份恢复的实例列表 GET /v3/{project_id}/restorable-instances gaussdb:instance:listAll - 根据时间点或者备份文件查询原实例信息 GET /v3/{project_id}/instance-snapshot?instance_id={instance_id}&backup_id={backup_id}&restore_time={restore_time} gaussdb:instance:get - 表5 引擎版本和规格 权限 API 对应的授权项 依赖的授权项 查询数据库引擎的版本 GET /v3/{project_id}/datastore/versions gaussdb:instance:listAll - 查询数据库规格 GET /v3/{project_id}/flavors?limit={limit}&offset={offset}&ha_mode={ha_mode}&version={version}&spec_code={spec_code} gaussdb:instance:listAll - 查询引擎列表 GET /v3/{project_id}/datastores gaussdb:instance:listAll - 查询实例可变更规格 GET /v3/{project_id}/instances/{instance_id}/available-flavors gaussdb:instance:listAll - 表6 管理数据库和用户 权限 API 对应的授权项 依赖的授权项 创建数据库 POST /v3/{project_id}/instances/{instance_id}/database gaussdb:instance:createDatabase - 创建数据库用户 POST /v3/{project_id}/instances/{instance_id}/db-user gaussdb:instance:createDatabaseUser - 创建数据库SCHEMA POST /v3/{project_id}/instances/{instance_id}/schema gaussdb:instance:createDatabaseSchema - 授权数据库账号 POST /v3/{project_id}/instances/{instance_id}/db-privilege gaussdb:instance:grantDatabasePrivilege - 重置数据库账号密码 PUT /v3/{project_id}/instances/{instance_id}/db-user/password gaussdb:instance:resetPassword - 查询数据库列表 GET /v3/{project_id}/instances/{instance_id}/databases gaussdb:instance:listDatabases - 查询数据库用户列表 GET /v3/{project_id}/instances/{instance_id}/db-users gaussdb:instance:listDatabaseUsers - 查询数据库SCHEMA列表 GET /v3/{project_id}/instances/{instance_id}/schemas gaussdb:instance:listSchemas - 表7 标签管理 权限 API 对应的授权项 依赖的授权项 查询实例标签 GET /v3/{project_id}/instances/{instance_id}/tags gaussdb:tag:listAll - 查询项目标签 GET /v3/{project_id}/tags gaussdb:tag:listAll - 查询预定义标签 GET /v3/{project_id}/predefined-tags gaussdb:tag:listAll - 添加实例标签 POST /v3/{project_id}/instances/{instance_id}/tags gaussdb:tag:create - 表8 磁盘管理 权限 API 对应的授权项 依赖的授权项 查询实例存储空间使用信息 GET /v3/{project_id}/instances/{instance_id}/volume-usage gaussdb:instance:getDiskUsage - 查询数据库磁盘类型 GET /v3/{project_id}/storage-type?version={version}&ha_mode={ha_mode} gaussdb:instance:listAll - 表9 配额管理 权限 API 对应的授权项 依赖的授权项 修改企业项目配额 PUT /v3/{project_id}/enterprise-projects/quotas gaussdb:quota:update - 查询企业项目配额组 GET /v3/{project_id}/enterprise-projects/quotas gaussdb:quota:listAll - 表10 任务管理 权限 API 对应的授权项 依赖的授权项 获取任务信息 GET /v3/{project_id}/jobs?id={id} gaussdb:task:get - 查询任务列表 GET /v3/{project_id}/tasks gaussdb:task:listAll - 删除任务记录 DELETE /v3/{project_id}/jobs/{job_id} gaussdb:task:delete - 表11 回收站 权限 API 对应的授权项 依赖的授权项 设置回收站策略 PUT /v3/{project_id}/recycle-policy gaussdb:instance:setRecyclePolicy - 查看回收站策略 GET /v3/{project_id}/recycle-policy gaussdb:instance:getRecyclePolicy - 查询回收站所有引擎实例列表 GET /v3/{project_id}/recycle-instances gaussdb:instance:listAll -
-
操作(Action) 操作(Action)即为身份策略中支持的授权项。 “访问级别”列描述如何对操作进行分类(list、read和write等)。此分类可帮助您了解在身份策略中相应操作对应的访问级别。 “资源类型”列指每个操作是否支持资源级权限。 资源类型支持通配符号*表示所有。如果此列没有值(-),则必须在身份策略语句的Resource元素中指定所有资源类型(“*”)。 如果该列包含资源类型,则必须在具有该操作的语句中指定该资源的URN。 资源类型列中必需资源在表中用星号(*)标识,表示使用此操作必须指定该资源类型。 关于GaussDB(for MySQL)定义的资源类型的详细信息请参见资源类型(Resource)。 “条件键”列包括了可以在身份策略语句的Condition元素中支持指定的键值。 如果该授权项资源类型列存在值,则表示条件键仅对列举的资源类型生效。 如果该授权项资源类型列没有值(-),则表示条件键对整个授权项生效。 如果此列条件键没有值(-),表示此操作不支持指定条件键。 关于GaussDB(for MySQL)定义的条件键的详细信息请参见条件(Condition)。 您可以在SCP语句的Action元素中指定以下GaussDB(for MySQL)的相关操作。 表1 GaussDB(for MySQL)支持的授权项 授权项 描述 访问级别 资源类型(*为必须) 条件键 gaussdbformysql:backup:modifyPolicy 授予设置自动备份策略的权限。 permission_management - - gaussdbformysql:param:delete 授予删除参数组的权限。 permission_management - - gaussdbformysql:instance:switchover 授予手动主备切换的权限。 permission_management instance * g:EnterpriseProjectId gaussdbformysql:auditlog:list 授予实例获取审计日志列表的权限。 list instance * g:EnterpriseProjectId gaussdbformysql:backup:create 授予创建手动备份权限。 write - - gaussdbformysql:backup:delete 授予删除备份的权限。 write - - gaussdbformysql:backup:getRestoreTime 授予获取实例可恢复时间点的权限。 read instance * g:EnterpriseProjectId gaussdbformysql:backup:list 授予获取备份列表的权限。 list - - gaussdbformysql:backup:listPolicy 授予获取备份策略的权限。 list instance * g:EnterpriseProjectId gaussdbformysql:database:create 授予实例创建数据库的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:database:delete 授予实例删除数据库的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:database:list 授予实例查询数据库列表的权限。 list instance * g:EnterpriseProjectId gaussdbformysql:database:modify 授予修改数据库相关信息的权限。 permission_management instance * g:EnterpriseProjectId gaussdbformysql:instance:getSecondLevelMonitoringConfig 授予查询秒级监控配置的权限。 read instance * g:EnterpriseProjectId gaussdbformysql:instance:addReadOnlyNodes 授予添加只读节点的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:create 授予创建实例的权限。 write - g:EnterpriseProjectId gaussdbformysql:instance:delete 授予删除实例的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:deleteSqlFilterRules 授予删除Sql限流规则的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:get 授予获取实例详情的权限。 read instance * g:EnterpriseProjectId gaussdbformysql:instance:getDcc 授予获取专属资源池详情的权限。 read - - gaussdbformysql:instance:getSqlFilterRule 授予获取SQL限流规则的权限。 read instance * g:EnterpriseProjectId gaussdbformysql:instance:getSqlFilterStatus 授予获取SQL限流开关状态的权限。 read instance * g:EnterpriseProjectId gaussdbformysql:instance:list 授予获取实例列表的权限。 list - - gaussdbformysql:proxy:list 授予获取数据库代理列表的权限。 list instance * g:EnterpriseProjectId gaussdbformysql:proxy:listSpec 授予获取数据库代理规格列表的权限。 list - - gaussdbformysql:instance:listDcc 授予获取专属资源列表的权限。 list - - gaussdbformysql:instance:listEngine 授予查询引擎信息的权限。 list - - gaussdbformysql:instance:listSpec 授予查询规格列表的权限。 list - - gaussdbformysql:auditlog:operate 授予开启关闭审计日志的权限。 permission_management instance * g:EnterpriseProjectId gaussdbformysql:instance:bindPublicIp 授予实例绑定公网IP的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:deleteReadOnlyNodes 授予实例删除只读节点的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:modifyVip 授予实例修改读写内网地址的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:modifyMaintenanceWindow 授予修改实例运维时间窗的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:modifySecondLevelMonitorPolicy 授予修改实例秒级监控频率的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:modifyPassword 授予修改实例密码的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:modifyPort 授予修改实例端口的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:modifySecurityGroup 授予修改实例安全组的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:modifySSL 授予修改SSL开关的权限。 permission_management instance * g:EnterpriseProjectId gaussdbformysql:instance:modifyStorageSize 授予实例磁盘扩缩容的权限。 permission_management instance * g:EnterpriseProjectId gaussdbformysql:instance:rename 授予修改实例名称的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:unbindPublicIp 授予实例解绑公网IP的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:upgrade 授予实例升级内核版本的权限。 permission_management instance * g:EnterpriseProjectId gaussdbformysql:user:create 授予实例创建数据库用户的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:proxy:addNodes 授予数据库代理节点扩容的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:proxy:create 授予开启数据库代理的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:proxy:delete 授予关闭数据库代理的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:proxy:modifySpec 授予数据库代理规格变更的权限。 permission_management instance * g:EnterpriseProjectId gaussdbformysql:proxy:modifyWeight 授予修改数据库代理权重的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:modifySpec 授予变更实例规格的权限。 permission_management instance * g:EnterpriseProjectId gaussdbformysql:instance:restart 授予重启实例的权限。 permission_management instance * g:EnterpriseProjectId gaussdbformysql:instance:restoreInPlace 授予备份恢复到已有实例的权限。 permission_management - - gaussdbformysql:instance:setSqlFilterRules 授予设置SQL限流规则的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:instance:setSqlFilterStatus 授予开启/关闭SQL限流的权限。 permission_management instance * g:EnterpriseProjectId gaussdbformysql:instance:tableRestore 授予PITR库表级恢复的权限。 permission_management instance * g:EnterpriseProjectId gaussdbformysql:tag:deal 授予添加/删除资源标签的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:log:getErrorLogs 授予获取错误日志的权限。 read instance * g:EnterpriseProjectId gaussdbformysql:log:getSlowLogs 授予获取慢日志的权限。 read instance * g:EnterpriseProjectId gaussdbformysql:param:apply 授予应用参数组的权限。 permission_management - - gaussdbformysql:param:create 授予创建参数组的权限。 write - - gaussdbformysql:param:get 授予获取参数组详情的权限。 read - - gaussdbformysql:param:list 授予获取参数组列表的权限。 list - - gaussdbformysql:param:update 授予修改参数组的权限。 write - - gaussdbformysql:proxy:modifyConsistency 授予修改数据库代理会话一致性的权限。 permission_management instance * g:EnterpriseProjectId gaussdbformysql:proxy:modifyTransactionSplit 授予开启/关闭数据库代理事务拆分的权限。 permission_management instance * g:EnterpriseProjectId gaussdbformysql:quota:list 授予查询配额的权限。 read - - gaussdbformysql:quota:modify 授予修改配额的权限。 write - - gaussdbformysql:tag:list 授予查询标签列表的权限。 list - - gaussdbformysql:task:delete 授予删除任务的权限。 write - - gaussdbformysql:task:list 授予获取任务列表的权限。 list - - gaussdbformysql:user:delete 授予删除数据库用户的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:user:grantPrivilege 授予修改数据库用户的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:user:list 授予查询数据库用户列表的权限。 list instance * g:EnterpriseProjectId gaussdbformysql:user:modify 授予查询数据库用户备注的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:user:revokePrivilege 授予删除数据库用户权限的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:user:updatePassWord 授予修改数据库用户密码的权限。 write instance * g:EnterpriseProjectId gaussdbformysql:proxy:switchConnectionPoolType 授予更改数据库代理连接池类型的权限。 permission_management instance * g:EnterpriseProjectId GaussDB(for MySQL)的API通常对应着一个或多个授权项。表2展示了API与授权项的关系,以及该API需要依赖的授权项。 表2 API与授权项的关系 API 对应的授权项 依赖的授权项 GET /v3/{project_id}/datastores/{database_name} gaussdbformysql:instance:listEngine - GET /v3/{project_id}/flavors/{database_name} gaussdbformysql:instance:listSpec - POST /v3/{project_id}/instances gaussdbformysql:instance:create - GET /v3.1/{project_id}/instances gaussdbformysql:instance:list - POST /v3/{project_id}/instances/{instance_id}/restart gaussdbformysql:instance:restart - DELETE /v3/{project_id}/instances/{instance_id} gaussdbformysql:instance:delete - GET /v3.1/{project_id}/instances/{instance_id} gaussdbformysql:instance:get - GET /v3.1/{project_id}/instances/details gaussdbformysql:instance:get - POST /v3/{project_id}/instances/{instance_id}/nodes/enlarge gaussdbformysql:instance:addReadOnlyNodes - DELETE /v3/{project_id}/instances/{instance_id}/nodes/{node_id} gaussdbformysql:instance:deleteReadOnlyNodes - POST /v3/{project_id}/instances/{instance_id}/volume/extend gaussdbformysql:instance:modifyStorageSize - PUT /v3/{project_id}/instances/{instance_id}/backups/policy/update gaussdbformysql:backup:modifyPolicy - PUT /v3/{project_id}/instances/{instance_id}/name gaussdbformysql:instance:rename - POST /v3/{project_id}/instances/{instance_id}/password gaussdbformysql:instance:modifyPassword - POST /v3/{project_id}/instances/{instance_id}/action gaussdbformysql:instance:modifySpec - GET /v3/{project_id}/dedicated-resources gaussdbformysql:instance:listDcc - GET /v3/{project_id}/dedicated-resource/{dedicated_resource_id} gaussdbformysql:instance:getDcc - POST /v3/{project_id}/instances/{instance_id}/proxy gaussdbformysql:proxy:create - DELETE /v3/{project_id}/instances/{instance_id}/proxy gaussdbformysql:proxy:delete - GET /v3/{project_id}/instances/{instance_id}/proxies gaussdbformysql:proxy:list - GET /v3/{project_id}/instances/{instance_id}/proxy/flavors gaussdbformysql:proxy:listSpec - POST /v3/{project_id}/instances/{instance_id}/proxy/enlarge gaussdbformysql:proxy:addNodes - PUT /v3/{project_id}/instances/{instance_id}/proxy/{proxy_id}/flavor gaussdbformysql:proxy:modifySpec - PUT /v3/{project_id}/instances/{instance_id}/proxy/{proxy_id}/weight gaussdbformysql:proxy:modifyWeight - POST /v3/{project_id}/instances/{instance_id}/proxy/transaction-split gaussdbformysql:proxy:modifyTransactionSplit - POST /v3.1/{project_id}/instances/{instance_id}/error-logs gaussdbformysql:log:getErrorLogs - POST /v3.1/{project_id}/instances/{instance_id}/slow-logs gaussdbformysql:log:getSlowLogs - GET /v3/{project_id}/project-quotas gaussdbformysql:quota:list - GET /v3/{project_id}/quotas gaussdbformysql:quota:list - POST /v3/{project_id}/quotas gaussdbformysql:quota:modify - PUT /v3/{project_id}/quotas gaussdbformysql:quota:modify - POST /v3/{project_id}/backups/create gaussdbformysql:backup:create - GET /v3/{project_id}/backups gaussdbformysql:backup:list - GET /v3/{project_id}/instances/{instance_id}/backups/policy gaussdbformysql:backup:listPolicy - GET /v3/{project_id}/configurations gaussdbformysql:param:list - POST /v3/{project_id}/configurations gaussdbformysql:param:create - DELETE /v3/{project_id}/configurations/{configuration_id} gaussdbformysql:param:delete - GET /v3/{project_id}/configurations/{configuration_id} gaussdbformysql:param:get - PUT /v3/{project_id}/configurations/{configuration_id} gaussdbformysql:param:update - PUT /v3/{project_id}/configurations/{configuration_id}/apply gaussdbformysql:param:apply - GET /v3/{project_id}/instances/{instance_id}/tags gaussdbformysql:tag:list - GET /v3/{project_id}/tags gaussdbformysql:tag:list - POST /v3/{project_id}/instances/{instance_id}/tags/action gaussdbformysql:tag:deal - PUT /v3/{project_id}/instances/{instance_id}/monitor-policy gaussdbformysql:instance:modifySecondLevelMonitorPolicy - GET /v3/{project_id}/instances/{instance_id}/monitor-policy gaussdbformysql:instance:getSecondLevelMonitoringConfig - POST /v3/{project_id}/instances/{instance_id}/nodes/{node_id}/restart gaussdbformysql:instance:restart - POST /v3/{project_id}/instance/{instance_id}/audit-log/switch gaussdbformysql:auditlog:operate - GET /v3/{project_id}/instance/{instance_id}/audit-log/switch-status gaussdbformysql:auditlog:list - GET /v3/{project_id}/jobs gaussdbformysql:task:list - POST /v3/{project_id}/instances/{instance_id}/db-users gaussdbformysql:user:create - GET /v3/{project_id}/instances/{instance_id}/db-users gaussdbformysql:user:list - DELETE /v3/{project_id}/instances/{instance_id}/db-users gaussdbformysql:user:delete - PUT /v3/{project_id}/instances/{instance_id}/db-users/comment gaussdbformysql:user:modify - PUT /v3/{project_id}/instances/{instance_id}/db-users/password gaussdbformysql:user:updatePassWord - POST /v3/{project_id}/instances/{instance_id}/db-users/privilege gaussdbformysql:user:grantPrivilege - DELETE /v3/{project_id}/instances/{instance_id}/db-users/privilege gaussdbformysql:user:revokePrivilege - GET /v3/{project_id}/instances/{instance_id}/databases/charsets gaussdbformysql:database:list - POST /v3/{project_id}/instances/{instance_id}/databases gaussdbformysql:database:create - GET /v3/{project_id}/instances/{instance_id}/databases gaussdbformysql:database:list - DELETE /v3/{project_id}/instances/{instance_id}/databases gaussdbformysql:database:delete - PUT /v3/{project_id}/instances/{instance_id}/databases/comment gaussdbformysql:database:modify - POST /v3/{project_id}/instances/{instance_id}/sql-filter/switch gaussdbformysql:instance:setSqlFilterStatus - GET /v3/{project_id}/instances/{instance_id}/sql-filter/switch gaussdbformysql:instance:getSqlFilterStatus - PUT /v3/{project_id}/instances/{instance_id}/sql-filter/rules gaussdbformysql:instance:setSqlFilterRules - GET /v3/{project_id}/instances/{instance_id}/sql-filter/rules gaussdbformysql:instance:getSqlFilterRule - DELETE /v3/{project_id}/instances/{instance_id}/sql-filter/rules gaussdbformysql:instance:deleteSqlFilterRules - PUT /v3/{project_id}/instances/{instance_id}/proxy/{proxy_id}/session-consistence gaussdbformysql:proxy:modifyConsistency - GET /v3/{project_id}/immediate-jobs gaussdbformysql:task:list - GET /v3/{project_id}/scheduled-jobs gaussdbformysql:task:list - DELETE /v3/{project_id}/scheduled-jobs gaussdbformysql:task:delete - DELETE /v3/{project_id}/jobs/{job_id} gaussdbformysql:task:delete - POST /v3/{project_id}/instances/{instance_id}/db-upgrade gaussdbformysql:instance:upgrade - PUT /v3/{project_id}/instances/{instance_id}/ssl-option gaussdbformysql:instance:modifySSL - PUT /v3/{project_id}/instances/{instance_id}/public-ips/bind gaussdbformysql:instance:bindPublicIp - PUT /v3/{project_id}/instances/{instance_id}/public-ips/unbind gaussdbformysql:instance:unbindPublicIp - PUT /v3/{project_id}/instances/{instance_id}/switchover gaussdbformysql:instance:switchover - PUT /v3/{project_id}/instances/{instance_id}/ops-window gaussdbformysql:instance:modifyMaintenanceWindow - PUT /v3/{project_id}/instances/{instance_id}/security-group gaussdbformysql:instance:modifySecurityGroup - PUT /v3/{project_id}/instances/{instance_id}/internal-ip gaussdbformysql:instance:modifyVip - PUT /v3/{project_id}/instances/{instance_id}/port gaussdbformysql:instance:modifyPort - PUT /v3/{project_id}/instances/{instance_id}/alias gaussdbformysql:instance:rename - DELETE /v3/{project_id}/backups/{backup_id} gaussdbformysql:backup:delete - POST /v3.1/{project_id}/instances/{instance_id}/restore/tables gaussdbformysql:instance:tableRestore - POST /v3/{project_id}/instances/restore gaussdbformysql:instance:restoreInPlace - GET /v3/{project_id}/instances/{instance_id}/restore-time gaussdbformysql:backup:getRestoreTime - PUT /v3/{project_id}/instances/{instance_id}/proxy/{proxy_id}/connection-pool-type gaussdbformysql:proxy:switchConnectionPoolType -
-
条件(Condition) 条件(Condition)是SCP生效的特定条件,包括条件键和运算符。 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:全局条件键。 服务级条件键(前缀通常为服务缩写,如dns:)仅适用于对应服务的操作,详情请参见表4。 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个VPC终端节点发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见:运算符。 DNS定义了以下可以在SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。 表4 DNS支持的服务级条件键 服务级条件键 类型 单值/多值 说明 dns:RecordSetNames string 多值 根据指定的记录集名称过滤访问。记录集名称所有字母必须为小写形式,不得带有结尾圆点。 dns:RecordSetTypes string 多值 根据指定的记录集类型过滤访问。取值范围:A、AAAA、MX、CNAME、TXT、NS、SRV、CAA。
-
条件(Condition) 条件(Condition)是SCP生效的特定条件,包括和运算符。 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:。 服务级条件键(前缀通常为服务缩写,如geminidb:)仅适用于对应服务的操作,详情请参见表4。 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个VPC终端节点发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见。 GeminiDB定义了以下可以在SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。 表4 GeminiDB支持的服务级条件键 服务级条件键 类型 单值/多值 说明 geminidb:BackupEnabled boolean 单值 按照请求参数中传递的是否开启备份策略标签键筛选访问权限。限定词选择“默认”。 geminidb:Encrypted boolean 单值 按照请求参数中传递的是否开启磁盘加密标签键筛选访问权限。限定词选择“默认”。
-
解决方案 检查安全组规则。 使用弹性公网IP连接数据库实例时,必须要将弹性公网IP和3306端口加入安全组“sg-default-smb”的入方向规则。具体操作,请参见添加安全组规则。 图1 添加入方向规则 检查“网络ACL”规则。 排查“网络ACL”是否放通。查看“网络ACL”状态,查看当前是开启状态还是关闭状态。 检查“弹性公网IP”绑定的网卡是否在“网络ACL”关联的子网下。 若“网络ACL”为“开启”状态,需要添加ICMP放通规则进行流量放通。 需要注意“网络ACL”的默认规则是丢弃所有出入方向的包,若关闭“网络ACL”后,其默认规则仍然生效。 相同区域主机进行ping测试。 用同一区域的其它Flexus云服务器X实例去ping该公网IP,如果可以ping通说明虚拟网络正常,请联系客服处理问题。
-
为什么FlexusRDS不支持MyISAM引擎 Flexus云数据库RDS目前不支持MyISAM引擎,主要原因如下: MyISAM引擎表不支持事务,仅支持表级别锁,导致读写操作相互冲突。 MyISAM对数据完整性的保护存在缺陷,且这些缺陷会导致数据库数据的损坏甚至丢失。 MyISAM在出现数据损害情况下,很多都需要手动修复,无法通过产品服务提供的恢复功能进行数据恢复。 MyISAM向InnoDB的迁移透明,大多数情况不需要改动建表的代码,云数据库自动转换InnoDB即可完成迁移。
-
FlexusRDS的root账号为什么没有super权限 Flexus云数据库RDS没有给root账号提供super权限。因为一旦用户拥有了super权限,就可以执行很多管理性的命令,比如reset master,set global…,kill线程,reset slave等,很有可能导致主备关系异常而出现故障。 对于客户要求super权限的场景,只能通过Flexus云数据库RDS提供的服务化能力处理,或者通过其他手段绕过super权限的限制。示例如下: 示例1:登录数据库执行 set global 参数名=参数值; 命令来修改参数,这在FlexusRDS是被禁止的,参数修改只能通过界面的参数修改功能来实现。 示例2:执行 create definer='root'@'%' trigger(procedure)… 命令出现报错,这也是因为没有super权限导致的,只需要去除definer='root'关键字即可。
-
FlexusRDS的备份策略是什么 当用户购买实例后,单击实例名称,然后选择“备份恢复”页签,提供手动备份和自动备份两种功能: 默认是开启自动备份,为了给您最大限度的节约备份空间和费用,自动备份数据保留7天,超过7天的自动备份数据会删除。如果需要更长的备份保留时间,请使用手动备份。 为了丰富用户选择,提供手动物理备份功能,您可以根据业务需要,进行手动备份,手动备份数据可以下载到本地保存。手动备份数据不受7天自动删除限制,建议您使用手动备份+恢复的方式,可以恢复7天之外的数据。 无论是自动备份还是手动备份都是存储在OBS上的,占用OBS赠送空间。 Flexus云数据库RDS备份使用的是开源软件extrabackup。
-
FlexusRDS的备份是如何收费的 Flexus云数据库RDS的全量备份和增量备份都是存储在OBS上。另外,FlexusRDS有100%的赠送空间。举个例子,假如用户购买实例套餐时,规格选择了2U4GB_120GB,那么用户会拥有一个2U4GB的实例、120GB存储空间、120GB OBS备份空间。所有的备份数据合计,只有超过120GB才开始计费。备份空间只能按需计费,收费标准参考云数据库备份空间计费规则。
-
FlexusRDS怎么扩CPU/内存规格 Flexus云数据库RDS提升了客户使用效率,简化了业务管理,节省的成本给客户进行让利,不提供规格变更直接服务。 建议客户购买前做好业务规划,可以提交工单,联系客服获取专业性建议。规划好业务后直接按套餐化购买,购买后按套餐的配置使用,不提供直接进行规格变更的功能。 针对客户CPU/内存不够使用的场景,我们通过备份恢复功能提供了灵活的解决方案。 例如,通过备份恢复到新实例,在新实例的选择过程中,您可以选择新的符合业务需要的规格。
-
计费项 FlexusRDS对您选择的数据库规格、备份存储(可选)和公网流量(可选)收费。 表1 计费项说明 计费项 计费说明 数据库规格 提供包年/包月计费方式。费用详情以实际界面为准。 备份存储(可选) FlexusRDS提供了部分免费存储空间,用于存放您的备份数据,其总容量约为您购买容量的100%。备份存储用量超过数据库存储空间的100%,开始计费。 公网流量(可选) FlexusRDS支持公网访问,公网访问会产生带宽流量费。
共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
推荐文章