华为云用户手册
-
方式一:使用Python语言发送预测请求 下载Python SDK并在开发工具中完成SDK配置。具体操作请参见在Python环境中集成API请求签名的SDK。 创建请求体,进行预测请求。 输入为文件格式 # coding=utf-8 import requests import os from apig_sdk import signer if __name__ == '__main__': # Config url, ak, sk and file path. url = "在线服务的调用地址" # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak = os.environ["HUAWEICLOUD_SDK_AK"] sk = os.environ["HUAWEICLOUD_SDK_SK"] file_path = "预测文件的本地路径" # Create request, set method, url, headers and body. method = 'POST' headers = {"x-sdk-content-sha256": "UNSIGNED-PAYLOAD"} request = signer.HttpRequest(method, url, headers) # Create sign, set the AK/SK to sign and authenticate the request. sig = signer.Signer() sig.Key = ak sig.Secret = sk sig.Sign(request) # Send request files = {'images': open(file_path, 'rb')} resp = requests.request(request.method, request.scheme + "://" + request.host + request.uri, headers=request.headers, files=files) # Print result print(resp.status_code) print(resp.text) “file_path”为预测文件的本地路径,既可使用绝对路径(如Windows格式"D:/test.png",Linux格式"/opt/data/test.png"),也可以使用相对路径(如"./test.png")。 “files”参数的请求体样式为“files={"请求参数":("文件路径",文件内容,“文件类型”)}”,参数填写可以参考表1。 表1 files参数说明 参数 是否必填 说明 请求参数 是 在线服务输入参数名称。 文件路径 否 上传文件的路径。 文件内容 是 上传文件的内容。 文件类型 否 上传文件类型。当前支持以下类型: txt类型:text/plain jpg/jpeg类型:image/jpeg png类型:image/png 输入为文本格式(json类型) 读取本地预测文件并进行base64编码的请求体示例如下: # coding=utf-8 import base64 import json import os import requests from apig_sdk import signer if __name__ == '__main__': # Config url, ak, sk and file path. url = "在线服务的调用地址" # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak = os.environ["HUAWEICLOUD_SDK_AK"] sk = os.environ["HUAWEICLOUD_SDK_SK"] file_path = "预测文件的本地路径" with open(file_path, "rb") as file: base64_data = base64.b64encode(file.read()).decode("utf-8") # Create request, set method, url, headers and body. method = 'POST' headers = { 'Content-Type': 'application/json' } body = { 'image': base64_data } request = signer.HttpRequest(method, url, headers, json.dumps(body)) # Create sign, set the AK/SK to sign and authenticate the request. sig = signer.Signer() sig.Key = ak sig.Secret = sk sig.Sign(request) # Send request resp = requests.request(request.method, request.scheme + "://" + request.host + request.uri, headers=request.headers, data=request.body) # Print result print(resp.status_code) print(resp.text) “body”中的参数名由在线服务的输入参数决定,需要和“类型”为“string”的输入参数“名称”保持一致。此处以“image”为例。“body”中的base64_data值为string类型。
-
方式三:使用Python语言发送预测请求 下载Python SDK并在开发工具中完成SDK配置。具体操作请参见在Python环境中集成API请求签名的SDK。 创建请求体,进行预测请求。 输入为文件格式 # coding=utf-8 import requests if __name__ == '__main__': # Config url, token and file path. url = "在线服务的调用地址" token = "用户Token" file_path = "预测文件的本地路径" # Send request. headers = { 'X-Auth-Token': token } files = { 'images': open(file_path, 'rb') } resp = requests.post(url, headers=headers, files=files) # Print result. print(resp.status_code) print(resp.text) “files”中的参数名由在线服务的输入参数决定,需要和“类型”为“file”的输入参数“名称”保持一致。以前提条件里获取的文件预测输入参数“images”为例。 输入为文本格式(json类型) 读取本地预测文件并进行base64编码的请求体示例如下: # coding=utf-8 import base64 import requests if __name__ == '__main__': # Config url, token and file path url = "在线服务的调用地址" token = "用户Token" file_path = "预测文件的本地路径" with open(file_path, "rb") as file: base64_data = base64.b64encode(file.read()).decode("utf-8") # Set body,then send request headers = { 'Content-Type': 'application/json', 'X-Auth-Token': token } body = { 'image': base64_data } resp = requests.post(url, headers=headers, json=body) # Print result print(resp.status_code) print(resp.text) “body”中的参数名由在线服务的输入参数决定,需要和“类型”为“string”的输入参数“名称”保持一致。以前提条件里获取的文本预测输入参数“image”为例。“body”中的base64_data值为string类型。
-
方式一:使用图形界面的软件进行预测(以Postman为例) 下载Postman软件并安装,您也可以直接在Chrome浏览器添加Postman扩展程序(也可使用其他支持发送post请求的软件)。Postman推荐使用7.24.0版本。 打开Postman,如图3所示。 图3 Postman界面 在Postman界面填写参数,以图像分类举例说明。 选择POST任务,将在线服务的调用地址复制到POST后面的方框。Headers页签的Key值填写为“X-Auth-Token”,Value值为用户Token。 您也可以通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求,具体可参见用户AK-SK认证模式。 图4 参数填写 在Body页签,根据AI应用的输入参数不同,可分为2种类型:文件输入、文本输入。 文件输入 选择“form-data”。在“KEY”值填写AI应用的入参,和在线服务的输入参数对应,比如本例中预测图片的参数为“images”。然后在“VALUE”值,选择文件,上传一张待预测图片(当前仅支持单张图片预测),如图5所示。 图5 填写Body 文本输入 选择“raw”,选择JSON(application/json)类型,在下方文本框中填写请求体,请求体样例如下: { "meta": { "uuid": "10eb0091-887f-4839-9929-cbc884f1e20e" }, "data": { "req_data": [ { "sepal_length": 3, "sepal_width": 1, "petal_length": 2.2, "petal_width": 4 } ] } } 其中,“meta”中可携带“uuid”,调用时传入一个“uuid”,返回预测结果时回传此“uuid”用于跟踪请求,如无此需要可不填写meta。“data”包含了一个“req_data”的数组,可传入单条或多条请求数据,其中每个数据的参数由AI应用决定,比如本例中的“sepal_length”、“sepal_width”等。 参数填写完成,单击“send”发送请求,结果会在“Response”下的对话框里显示。 文件输入形式的预测结果样例如图6所示,返回结果的字段值根据不同AI应用可能有所不同。 文本输入形式的预测结果样例如图7所示,请求体包含“meta”及“data”。如输入请求中包含“uuid”,则输出结果中回传此“uuid”。如未输入,则为空。“data”包含了一个“resp_data”的数组,返回单条或多条输入数据的预测结果,其中每个结果的参数由AI应用决定,比如本例中的“sepal_length”、“predictresult”等。 图6 文件输入预测结果 图7 文本输入预测结果
-
了解服务的输入参数 针对您部署上线的服务,您可以在服务详情页面的“调用指南”中,了解本服务的输入参数,即上文提到的输入请求类型。 图1 查看服务的调用指南 调用指南中的输入参数取决于您选择的AI应用来源: 如果您的元模型来源于自动学习或预置算法,其输入输出参数由ModelArts官方定义,请直接参考“调用指南”中的说明,并在预测页签中输入对应的JSON文本或文件进行服务测试。 如果您的元模型是自定义的,即推理代码和配置文件是自行编写的(配置文件编写说明),“调用指南”只是将您编写的配置文件进行了可视化展示。调用指南的输入参数与配置文件对应关系如下所示。 图2 配置文件与调用指南的对应关系 如果您的元模型是采用模型模板导入,不同的模板指定了其对应的输入输出模式,请参见模型模板简介的相关说明。
-
发布至AI云商店 华为云云商店有完整的售前、交易、售后的保障体系,用户无需担忧交易,省心省力。在您完成模型的训练和导入之后,您可以将自己的模型发布至AI云商店进行商品售卖。请在首次发布商品前入驻华为云商店成为企业级卖家。 登录ModelArts管理控制台,在左侧导航栏中选择“AI应用”,进入AI应用列表页面。 单击AI应用的“版本数量”,在展开的版本列表中,单击“操作”列的“发布”进入发布页面。 在发布弹出框中,单击“前往AI 云商店”进入商店。 图2 前往云商店 进入云商店后,请参考发布AI资产类商品操作指导。
-
发布至AI Gallery ModelArts提供了“AI Gallery”功能,方便将个人的模型等共享给所有ModelArts用户,您也可以从“AI Gallery”获取他人共享的内容,快速完成构建。在您完成模型的训练和导入之后,您可以将自己的模型分享至“AI Gallery”,进行知识共享。 登录ModelArts管理控制台,在左侧导航栏中选择“AI应用”,进入AI应用列表页面。 单击AI应用的“版本数量”,在展开的版本列表中,单击“操作”列的“发布”进入发布页面。 在发布弹出框中,单击“前往AI Gallery”进入AI Gallery。 图1 前往AI Gallery 进入AI Gallery后,请参考发布免费模型。
-
修改配额 针对“正常”的AI应用,如果您需要更改此AI应用的配额,可以执行修改操作。 在“订阅列表”页面,选择“正常”状态的AI应用,单击操作列的“修改”。 在“修改页面”页面,可以看到“配额类别”、“配额名称”、“值”三个标签,在“值”标签下方填入需要修改的配额值点击“下一步”。 确认修改的AI应用相关配额信息无误后点击“下一步”。 确认修改配额需要支付的金额后点击去支付,完成支付后确认支付成功即完成AI应用配额修改。
-
退订 针对“正常”的AI应用,如果您不再需要订阅此AI应用,可以执行退订操作。如果AI应用已部署至边缘服务,不支持退订操作。如果需要执行退订,请先删除使用此AI应用部署的边缘服务。 在“订阅列表”页面,选择“正常”状态的AI应用,单击操作列的“退订”。 在“退订资源”页面,选择退订原因,然后单击“退订”。 在弹出的对话框中,确认信息无误后,单击“是”,完成退订操作。 退订操作提交成功后,您可以通过界面提示链接,查看退订的处理进度。
-
创建AI应用操作步骤 登录ModelArts管理控制台,在左侧导航栏中选择“AI应用”,进入AI应用列表页面。 单击左上角的“创建应用”,进入“创建应用”页面。 在“创建应用”页面,填写相关参数。 填写AI应用基本信息,详细参数说明请参见表1。 表1 AI应用基本信息参数说明 参数名称 说明 名称 AI应用名称。支持1~64位可见字符(含中文),名称可以包含字母、中文、数字、中划线、下划线。 版本 设置所创建AI应用的版本。第一次导入时,默认为0.0.1。 说明: AI应用创建完成后,可以通过创建新版本,导入不同的元模型进行调优。 描述 AI应用的简要描述。 填写元模型来源及其相关参数。当“元模型来源”选择“从模板中选择”时,其相关的参数配置请参见表2。 图1 从模板中选择元模型 表2 元模型来源参数说明 参数 说明 “模型模板” 从已有的ModelArts模板列表中选择模板。例如,“TensorFlow图像分类模板”。 ModelArts还提供“类型”、“引擎”、“环境”三个筛选条件,帮助您更快找到想要的模板。如果这个三个筛选条件不能满足您的要求,可以使用关键词搜索,找到目标模板。支持的模板请参见支持的模板。 “模型目录” 指定模型存储的OBS路径。请根据您选择的“模型模板”,按照模板的模型输入要求,选择对应的模型存储的OBS路径。 OBS路径不能含有空格,否则创建AI应用会失败。 说明: 选择加密桶或者加密文件,会导入失败。 当训练作业执行多次时,将基于V001、V002等规则生成不同的版本目录,且生成的模型将存储在不同版本目录下的model文件夹。此处选择模型文件时,需指定对应版本目录下的model文件夹。 “动态加载” 用于实现快速部署和快速更新模型。若勾选“动态加载”,则模型文件和运行时依赖仅在实际部署时拉取。单个模型文件大小超过5GB,需要配置“动态加载”。 “输入输出模式” 如果您选择的模板允许覆盖其中的默认输入输出模式,您可以根据AI应用功能或业务场景在“输入输出模式”中,选择相应的输入输出模式。“输入输出模式”是对“config.json”中API(apis)的抽象,描述AI应用对外提供推理的接口。一个“输入输出模式”描述一个或多个API接口,每个模板对应于一个“输入输出模式”。 例如,“TensorFlow图像分类模板”,其支持的“输入输出模式”为“预置图像处理模式”,但该模板不允许修改其中的输入输出模式,所以您在页面上只能看到模板默认的输入输出模式,而不能选择其他模式。 支持的输入输出模式请参见支持的输入输出模式。 “AI应用说明” 为了帮助其他AI应用开发者更好的理解及使用您的AI应用,建议您提供AI应用的说明文档。单击“添加AI应用说明”,设置“文档名称”及其“URL”。AI应用说明支持增加3条。 “部署类型” 选择此AI应用支持部署服务的类型,部署上线时只支持部署为此处选择的部署类型,例如此处只选择在线服务导入后只能部署为在线服务。当前支持“在线服务”、“批量服务”和“边缘服务”。 确认信息填写无误,单击“立即创建”,完成AI应用导入。 在AI应用列表中,您可以查看刚创建的AI应用及其对应的版本。当AI应用状态变更为“正常”时,表示AI应用创建成功。在此页面,您还可以创建新版本、快速部署服务、发布AI应用等操作。
-
创建AI应用操作步骤 登录ModelArts管理控制台,在左侧导航栏中选择“AI应用”,进入AI应用列表页面。 单击左上角的“创建应用”,进入“创建应用”页面。 在“创建应用”页面,填写相关参数。 填写AI应用基本信息,详细参数说明请参见表1。 表1 AI应用基本信息参数说明 参数名称 说明 名称 AI应用名称。支持1~64位可见字符(含中文),名称可以包含字母、中文、数字、中划线、下划线。 版本 设置所创建AI应用的版本。第一次导入时,默认为0.0.1。 说明: AI应用创建完成后,可以通过创建新版本,导入不同的元模型进行调优。 描述 AI应用的简要描述。 填写元模型来源及其相关参数。当“元模型来源”选择“从训练中选择”时,其相关的参数配置请参见表2。 图1 从训练中选择元模型 表2 元模型来源参数说明 参数 说明 “元模型来源” 选择“从训练中选择”。 在“选择训练作业”右侧下拉框中选择当前账号下已完成运行的训练作业。 “动态加载”:用于实现快速部署和快速更新模型。若勾选动态加载,则模型文件和运行时依赖仅在实际部署时拉取。当单个模型文件大小超过5GB时,必须配置“动态加载”。 “AI引擎” 元模型使用的推理引擎,选择训练作业后会自动匹配。 “推理代码” 推理代码自定义AI应用的推理处理逻辑。显示推理代码URL,您可以直接复制此URL使用。 “运行时依赖” 罗列选中模型对环境的依赖。例如依赖“tensorflow”,安装方式为“pip”,其版本必须为1.8.0及以上版本。 “AI应用说明” 为了帮助其他AI应用开发者更好的理解及使用您的AI应用,建议您提供AI应用的说明文档。单击“添加AI应用说明”,设置“文档名称”及其“URL”。AI应用说明最多支持3条。 “部署类型” 选择此AI应用支持部署服务的类型,部署上线时只支持部署为此处选择的部署类型,例如此处只选择在线服务,那您导入后只能部署为在线服务。当前支持“在线服务”、“批量服务”和“边缘服务”。 确认信息填写无误,单击“立即创建”,完成AI应用的创建。 在AI应用列表中,您可以查看刚创建的AI应用及其对应的版本。当AI应用状态变更为“正常”时,表示AI应用导入成功。在此页面,您还可以创建新版本、快速部署服务、发布AI应用等操作。
-
查看AI应用详情 当AI应用创建成功后,您可以进入AI应用详情页查看AI应用的信息。 登录ModelArts管理控制台,在左侧菜单栏中选择“AI应用”,进入“自定义应用”列表页面。 单击目标AI应用名称,进入AI应用详情页面。 您可以查看AI应用的基本信息、模型精度,以及切换页签查看更多信息。 表1 AI应用基本信息 参数 说明 名称 AI应用的名称。 状态 AI应用当前状态。 版本 AI应用当前版本。 ID AI应用的ID。 描述 单击编辑按钮,可以添加AI应用的描述。 部署类型 AI应用支持部署的服务类型。 元模型来源 显示元模型的来源,主要有从训练中选择、从 对象存储服务 (OBS)中选择、从容器镜像中选择。不同来源的元模型,AI应用显示的参数会不同。 训练作业名称 若元模型来源于训练作业,则显示关联的训练作业,单击训练作业名称可以直接跳转到训练作业详情页面。 训练作业版本 若元模型来源于训练作业且为旧版训练作业,显示训练作业版本。 元模型存储路径 若元模型来源于对象存储服务,显示元模型的存放路径。 容器镜像存储路径 若元模型来源于容器镜像,显示容器镜像存储路径。 AI引擎 若元模型来源于训练作业/对象存储服务,显示AI应用使用的AI引擎。 引擎包地址 若元模型来源于对象存储服务(AI引擎为Custom),显示引擎包地址。 运行环境 若元模型来源于训练作业/对象存储服务(AI引擎为预置引擎),显示元模型依赖的运行环境。 容器调用接口 若元模型来源于对象存储服务(AI引擎为Custom)/容器镜像,显示AI应用启动的协议和端口号。 推理代码 若元模型来源于训练作业且为旧版训练作业,则显示推理代码的存放路径。 镜像复制 若元模型来源于对象存储服务/容器镜像,显示镜像复制功能状态。 动态加载 若元模型来源于训练作业/对象存储服务,显示AI应用是否支持动态加载。 大小 AI应用的大小。 健康检查 若元模型来源于对象存储服务/容器镜像,显示健康检查状态。当健康检查为开启时,会根据您启用的探针显示对应探针的参数设置情况。 启动探针:用于检测应用实例是否已经启动。如果提供了启动探针(startup probe),则禁用所有其他探针,直到它成功为止。如果启动探针失败,将会重启实例。如果没有提供启动探针,则默认状态为成功Success。 就绪探针:用于检测应用实例是否已经准备好接收流量。如果就绪探针失败,即实例未准备好,会从服务负载均衡的池中剔除该实例,不会将流量路由到该实例,直到探测成功。 存活探针:用于检测应用实例内应用程序的健康状态。如果存活探针失败,即应用程序不健康,将会自动重启实例。 每种探针下会显示以下字段:检查方式、健康检查URL(检查方式为“HTTP请求检查”时显示)、健康检查命令(检查方式为“执行命令检查”时显示)、健康检查周期、延迟时间、超时时间、最大失败次数。 AI应用说明 显示创建AI应用时添加的AI应用说明文档信息。 系统运行架构 显示系统运行架构。 推理加速卡类型 显示推理加速卡类型。 表2 AI应用页签详情 参数 说明 模型精度 显示该AI应用的模型召回率、精准率、准确率和F1值。 参数配置 可以查看AI应用的apis定义详情,以及AI应用的入参和出参。 运行时依赖 查看模型对环境的依赖。当构建任务失败后可以编辑运行时依赖,保存修改后将触发镜像重新构建。 事件 展示AI应用创建过程中的关键操作进展。 事件保存周期为3个月,3个月后自动清理数据。 查看AI应用的事件类型和事件信息,请参见查看AI应用的事件 使用约束 根据创建AI应用时的设置,显示部署服务的使用约束,如请求模式、启动命令、模型加密等。对于异步请求模式的AI应用,可显示输入模式、输出模式、服务启动参数和作业配置参数等参数。 关联服务 展示使用该AI应用部署的服务列表,单击服务名称可以直接跳转到服务详情页面。 父主题: 管理AI应用
-
创建AI应用的几种场景 从训练中选择:在ModelArts中创建训练作业,并完成模型训练,在得到满意的模型后,可以将训练后得到的模型创建为AI应用,用于部署服务。 从对象存储服务(OBS)中选择:如果您使用常用框架在本地完成模型开发和训练,可以将本地的模型按照模型包规范上传至OBS桶中,从OBS将模型导入至ModelArts中,创建为AI应用,直接用于部署服务。 从容器镜像中选择:针对ModelArts目前不支持的AI引擎,可以通过 自定义镜像 的方式将编写的模型镜像导入ModelArts,创建为AI应用,用于部署服务。 从模板中选择:相同功能的模型配置信息重复率高,将相同功能的配置整合成一个通用的模板,通过使用该模板,可以方便快捷的导入模型,创建为AI应用,而不用编写config.json配置文件。
-
解析DNS内网 域名 您需要提前创建VPC和DNS内网域名,再按照如下步骤操作。 内网域名关联VPC并添加记录集 登录云解析服务控制台,将内网域名关联VPC。 图1 关联VPC 点击进入域名并添加记录集,类型选择A。 图2 添加记录集 创建函数 创建一个运行时语言为Python 2.7版本的函数,代码示例如下: # -*- coding:utf-8 -*- import json import os def handler(event, context): os.system("curl -iv www.test.com") 为函数配置DNS与VPC委托 在 IAM 页面,为 函数工作流 服务配置“DNS ReadOnlyAccess”以及“VPC Administrator”权限的委托。 图3 创建DNS与VPC委托 在进行解析域名时,函数需要查看云解析服务资源,所以必须要配置DNS资源数据读取权限,否则在执行函数时,会提示如下错误,获取不成功。 2020/08/20 10:37:12 GMT+08:00 Start invoke request 'a2f105b4-2e72-4fda-94a5-86d3837e961d', version: latest [GET /v2/zones/{zone_id}/recordsets] failed, response: {"code":"DNS.1802","message":"Policy doesn't allow dns:recordset:list to be performed."} 2020/08/20 10:37:13 GMT+08:00 Finish invoke request 'a2f105b4-2e72-4fda-94a5-86d3837e961d', duration: 1030.072ms, billing duration: 1100ms, memory used: 77.039MB. 配置函数 进入2创建的函数详情页面,在“设置”页签下,执行以下配置。 “权限”选择3创建的委托。 打开VPC访问开关,配置上述操作中创建的VPC、子网、域名,详情参考图4。 图4 配置函数 验证结果 保存后执行函数时,就能在代码中解析该域名中配置的所有IPV4类型的域名。 图5 执行函数 用户配置了VPC域名解析后,如果在DNS云解析服务中修改域名对应的IP,10min后稳定生效。
-
查询Redis实例运行日志 登录分布式缓存服务管理控制台。 在管理控制台左上角单击,选择实例所在的区域。 单击左侧菜单栏的“缓存管理”,进入实例信息页面。 单击需要查看运行日志的D CS 缓存实例名称,进入该实例的基本信息页面。 单击“运行日志”页签。 单击“采集日志文件”,选择采集时长后,单击“确定”。 如果是主备、读写分离和集群实例,支持根据分片和副本进行日志采集,您需要选择指定分片和副本。如果是单机实例,实例只有一个节点,默认采集该节点的日志。 采集的日志文件以一个自然天为单位,例如选择采集的时长为前3天,则会根据日期生成为3个不同的日志文件。 采集日志文件成功后,单击运行日志文件后的“下载”,可以下载并查看该文件。 Redis内核产生日志较少,您选择的时段内可能日志为空。
-
什么是区域、可用区? 我们用区域和可用区来描述数据中心的位置,您可以在特定的区域、可用区创建资源。 区域(Region):从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 可用区(AZ,Availability Zone):一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 图1阐明了区域和可用区之间的关系。 图1 区域和可用区 目前,华为云已在全球多个地域开放云服务,您可以根据需求选择适合自己的区域和可用区。
-
如何选择区域? 选择区域时,您需要考虑以下几个因素: 地理位置 一般情况下,建议就近选择靠近您或者您的目标用户的区域,这样可以减少网络时延,提高访问速度。不过,在基础设施、BGP网络品质、资源的操作与配置等方面,中国大陆各个区域间区别不大,如果您或者您的目标用户在中国大陆,可以不用考虑不同区域造成的网络时延问题。 中国-香港、曼谷等其他地区和国家提供国际带宽,主要面向非中国大陆地区的用户。如果您或者您的目标用户在中国大陆,使用这些区域会有较长的访问时延,不建议使用。 在除中国大陆以外的亚太地区有业务的用户,可以选择“中国-香港”、“亚太-曼谷”或“亚太-新加坡”区域。 在非洲地区有业务的用户,可以选择“南非-约翰内斯堡”区域。 在欧洲地区有业务的用户,可以选择“欧洲-巴黎”区域。 云服务之间的关系 如果多个云服务一起搭配使用,需要注意: 不同区域的弹性云服务器、关系型数据库、对象存储服务内网不互通。 不同区域的弹性云服务器不支持跨区域部署在同一负载均衡器下。 资源的价格 不同区域的资源价格可能有差异,请参见华为云服务价格详情。
-
步骤3:调用服务 获取Token 。 单击左侧导航栏“IAM/获取Token”,选中“Body”配置项,填写用户的iam用户名,密码,domain用户名。 单击右上角“Send”按钮发送请求,在返回的请求头中获取Token值。 注:Token作为调用OptVerse服务的临时凭证,有效期为24h 调用二维切割服务。 单击左侧导航栏“Task/方形件/创建任务”,选中“Headers”配置项,复制获取到的ProjectId值到URL处,复制获取的Token值到“X-Auth-Token”。 图10 复制Token 单击“Body”,查看已有的简单的输入数据,也可以根据API说明,填入自己的数据。 单击右上角“Send”按钮发送请求,返回异步计算的任务标识task_id,如图11所示。 图11 获取task_id 若输入数据错误则会提示错误原因,如图12所示。 图12 获取task_id失败 单击左侧导航栏“Task/方形件/查询任务”,选中“Headers”配置项,复制获取的Token值到“X-Auth-Token”。 图13 查询任务 复制步骤c获取的task_id到API路径的末尾,如图11所示。 单击右上角“Send”按钮发送请求,若计算已完成,则返回任务结果,否则返回任务状态。 图14 发送请求 调用求解器服务。 单击左侧导航栏“Task/求解器/CreateSolverTask”,选中“Headers”配置项,复制获取到的ProjectId值到URL处,复制获取的Token值到“X-Auth-Token”。 图15 复制Token 单击“Body”,在input['data']对象内的content参数填入base64文件编码。 图16 上传文件 单击右上角“Send”发送请求,返回异步计算的任务标识task_id。 图17 获取task_id 若请求失败,则返回错误码及对应的错误信息说明,详细错误码信息请参见《天筹求解器OptVerse常见问题》中的“调用OptVerse的API失败时怎么处理?” 图18 请求失败 查询求解器任务,单击左侧导航栏“Task/求解器/查询任务”,选中“Headers”配置项,复制Token值到“X-Auth-Token”,复制步骤9获取的task_id到API路径的末尾。 图19 查询任务 单击右上角“Send”按钮发送请求,返回任务结果: 图20 获取结果
-
前提条件 使用OptVerse服务之前,必须先申请华为云账号并进行实名认证。通过此账号,您可以使用所有华为云服务,并且只需为您所使用的服务付费。具体申请信息请见账号注册和实名认证。 使用Postman调用OptVerse服务的具体步骤如下: 步骤1:申请服务:用户在OptVerse管理控制台页面“服务列表”栏选择二维切割服务申请开通。 步骤2:配置环境:下载并安装Postman环境。 步骤3:调用服务:使用Postman调用API接口,查看返回结果或状态码与错误码。
-
步骤1:申请服务 登录 a. 使用Chrome浏览器访问系统,打开登录页面。用户需要选择要 图1 登录页 b. 输入华为云账号,用户名和密码 ,点击“登录”按钮, 登录成功后,进入OptVerse首页界面,如下图所示: 图2 OptVerse首页 购买服务 a. 在使用OptVerse服务之前,用户需要进入我的购买页面点击立即购买,如下图所示: 图3 我的购买 b. 用户需要选择要使用的region(当前仅支持北京四),服务类型和购买时长(当前仅支持包周期模式),并选择并发数进行分配,点击立即购买进行支付。 图4 购买服务 授权 a. 用户支付成功之后,可以对已购买的服务进行授权(当前仅支持包周期模式,暂不支持按需计费) 图5 服务授权 用户对账号下的iam子账户分配并发数来使用 图6 分配并发数 获取ProjectId a. 调用服务需要获取用户所在节点的ProjectId,鼠标移动至右上角用户名处,之后在弹框中选在我的凭证跳转至用户API凭证页,复制用户所需项目的ProjectId,如下图所示: 图7 基本信息 图8 项目列表
-
事件单处理说明 事件单不同处理方式说明如表1所示。 表1 事件单处理类型说明 处理类型 说明 标记处理 标记事件单,标记处理后事件单状态会变为“待验证”,并走给提单人进行验证,验证操作如下: 验证通过:验证通过后事件单处理完成,事件单关闭。 验证不通过:重新走给处理人进行处理。 移交处理 将事件单移交给其他人处理。 退回申请 将事件单退回给提单人,提交人可以处理后重新提交。 暂停申请 将事件单暂停,暂停申请后事件单状态会变为“待暂停”,并走给提单人确认,确认操作如下: 同意暂停:事件单暂停。暂停后可以取消暂停,重新走给处理人进行处理。 不同意暂停:重新走给处理人进行处理。 关闭 关闭事件单。
-
创建事件单 进入运维中心工作台。 将鼠标悬停在右上角的账号,选择下拉列表中的“工单管理”,默认显示“变更单管理”页面。 单击左侧导航栏的“事件单管理”,进入“事件单管理”页面。 单击“新建”。 配置事件单参数,参数说明如表1所示。 表1 事件单参数说明 参数名称 参数说明 产品 选择产生事件的产品。 服务 选择产生事件的服务。 服务环境 选择产生事件的服务环境。 事件来源 选择事件来源,支持选择配置问题、版本问题、第三方问题、客户报障、告警、变更引入、其他。 事件级别 选择事件所属级别,级别分为P1~P5。 事件名称 输入事件名称。 处理人 选择事件的处理人。 可以参考事件排班表的值班人进行处理。 描述 输入事件的详细描述。 单击“提交”,提交事件单。 提交后事件会进入处理人的待处理事件列表中,并且会根据设置的通知方式通知处理人进行处理。
-
设置事件单 进入运维中心工作台。 将鼠标悬停在右上角的账号,选择下拉列表中的“工单管理”,默认显示“变更单管理”页面。 单击左侧导航栏的“设置”,进入“设置”页面。 设置事件单。 设置解决时限:单击“编辑”,设置解决时限后单击“确定”,如图1所示。 图1 设置解决时限 设置通知方式:勾选事件通知方式,支持Welink和手机短信。 如需使用Welink通知,需要先配置运维中心对接华为云 WeLink ,配置后显示该选项。 设置排班表:选择需要配置的服务,双击排班表的具体时间表格,显示“编辑排班表”页面,如图2所示,默认为双击的时间,设置值班人,也可以值班时间,然后单击“确定”。将排班表设置完成后单击“保存”。 图2 设置排班表
-
新增黑白名单 黑名单规则会直接流控满足规则的请求,白名单规则会放通满足规则的请求。 在流控服务详情页面,选择“黑白名单”页签,单击“新增黑白名单”。 配置黑白名单相关参数,参数说明如表6所示。配置完成后单击“保存”。 表6 新增黑白名单参数说明 参数 说明 资源名称 选择全局黑白名单或具体资源,全局黑白名单不限制微服务/接口,资源黑白名单则限制特定的微服务/接口。 参数名称 参数级规则的参数名。 字符长度0~50,可以由字母、数字、下划线、短横线、点组成,不能包含特殊字符,例:black_rule-001。 名单类型 白名单 黑名单 每个资源或全局黑白名单下,同一参数名称只支持添加黑白名单各一条。 开启黑白名单 选择是否开启黑白名单。 名单列表 黑白名单列表。如果存在多个,使用英文逗号分隔,不允许存在空格。 在弹出框中单击“确认”。
-
新增流控规则 流控规则支持针对微服务/接口的资源流控、不区分微服务接口的全局参数流控和节点级动态流控规则。 在流控服务详情页面,选择“流控规则”页签,单击“新增流控规则”。 配置流控规则相关参数,配置完成后单击“保存”。 资源流控 表3 资源流控参数说明 参数 说明 限流控制类型 选择资源流控,针对微服务/接口资源进行流控。 资源名称 选择新增资源中创建的资源名称,与微服务/接口绑定,每个资源最多创建4条规则,规则的限流控制类型和是否集群流控不能重复。 流控类别 QPS:每秒速率流控。 配额:特定时间的请求阈值。 限流阈值 流控阈值,整个微服务/接口调用总量的阈值,如果请求总量超过该阈值,后续请求会被流控;0表示不流控。 禁用时间 当限流控制类型为QPS时,显示该参数。 流控后禁用时间内的所有请求不再判断请求量,直接全部流控。 允许的突增量 当限流控制类型为QPS时,显示该参数。 流控突发量,该参数可以调整令牌桶的大小,令牌桶大小为(阈值+突增量)/时间窗口,时间窗口单位为s。 是否集群限流 选择“是”或“否”。开启后对集群内此资源的调用总量进行限制。 集群限流阈值模式 当流控类别为QPS,开启集群限流时,显示该参数。 单机均摊 总体阈值 本地配额缓存数 当流控类别为配额,开启集群限流时,显示该参数。 防止DCS热点key的参数,可以减少DCS的访问,默认值为5。 该参数需要合理配置,配置过小容易造成热点key问题,配置过大可能导致部分节点放通部分节点流控的问题。 时间窗口 填写时间,单位为秒,表示间隔多少秒允许一个请求通过。默认为1秒,取值范围为1~86400。 是否开启流控规则 选择是否开启流控规则。 新增参数 单击“新增参数”,可以根据需要新增多条流控规则。 参数名称:参数级规则的参数名。 限流阈值:默认的参数阈值,如果没有指定参数值,都按该阈值进行流控。 单击新增参数列表前的,单击“新增参数值”,可以为参数配置多条参数值。 参数值:参数级规则的参数值。 参数阈值:指定的参数值按该阈值进行流控。 全局参数流控 全局参数流控规则与资源流控的参数级规则含义类似,仅不对微服务/接口做限制。 表4 全局参数流控参数说明 参数 说明 限流控制类型 选择全局参数 参数名称 填写参数名称。 流控类别 QPS:每秒速率流控。 配额:特定时间的请求阈值。 限流阈值 流控阈值,默认的参数阈值,如果没有指定参数值,都按该阈值进行流控。 禁用时间 当限流控制类型为QPS时,显示该参数。 流控后禁用时间内的所有请求不再判断请求量,直接全部流控。 允许的突增量 当限流控制类型为QPS时,显示该参数。 流控突发量,该参数可以调整令牌桶的大小,令牌桶大小为(阈值+突增量)/时间窗口,时间窗口单位为s。 是否集群限流 选择“是”或“否”。开启后对集群内此资源的调用总量进行限制。 集群限流阈值模式 当流控类别为QPS,开启集群限流时,显示该参数。 单机均摊 总体阈值 本地配额缓存数 当流控类别为配额,开启集群限流时,显示该参数。 防止DCS热点key的参数,可以减少DCS的访问,默认值为5。 该参数需要合理配置,配置过小容易造成热点key问题,配置过大可能导致部分节点放通部分节点流控的问题。 时间窗口 填写时间,单位为秒,表示间隔多少秒允许一个请求通过。默认为1秒,取值范围为1~86400。 是否开启流控规则 选择是否开启流控规则。 新增参数 单击“新增参数值”,配置多条参数值。 参数值:参数级规则的参数值。 参数阈值:指定的参数值按该阈值进行流控。 节点级动态流控 表5 节点级动态流控参数说明 参数 说明 限流控制类型 选择节点级动态流控。 是否开启流控规则 选择是否开启流控规则。 CPU过载阈值 CPU利用率超过该值时,接口的放通比例开始降低,直到降低至最低放通比例;CPU利用率越高,接口放通比例下降越快。该阈值要求为小数,范围为0~1,支持精度为小数点后四位。 CPU恢复阈值 CPU利用率小于该值时,接口的放通比例开始恢复,直到恢复至100%;CPU利用率越低,接口放通比例恢复越快。该阈值要求为小数,范围为0~1,支持精度为小数点后四位,并且小于CPU过载阈值。 最低放通比例 配置各个接口等级对应的最低放通比例,在CPU始终处于过载状态时,仍然能放通该比例的请求。 范围为0~1,支持精度为小数点后四位。 在弹出框中单击“确认”。
-
运维中心使用前准备 使用运维中心前,需要先准备如表1所示内容。 表1 准备事项 准备事项 说明 购买AppStage运维中心 首次使用需要先购买运维中心专业版,具体操作请参见购买AppStage。 配置服务授权 购买运维中心后,系统将自动识别并弹框提示进行服务授权,同意服务授权后,AppStage将在 统一身份认证 服务IAM中为账号创建名称为appstage_admin_agency的委托。 关联组织 首次购买AppStage后,其账号需创建并关联使用AppStage的组织(仅可关联一个组织),才能使用AppStage服务及后续购买AppStage相关产品套餐或增量包等,具体操作请参见关联组织。关联组织完成后,该华为云账号会自动成为组织管理员,拥有该组织的所有管理权限,同时可以审批其他组织管理员角色的申请。 添加部门/成员信息 为已关联的组织添加部门及成员,完善组织架构,具体操作请参见组织管理。 录入产品/服务/微服务信息 企业资源接入AppStage前,需要先将企业产品/服务/微服务信息录入AppStage系统中,信息录入成功后,AppStage将同步产品/服务/微服务信息至运维中心,具体操作请参见产品与服务管理。 申请权限 已添加成员在使用运维中心前需要先申请运维中心权限,具体操作请参见申请权限。 说明: 运维中心操作指导基于已获取服务研发岗位权限进行介绍,如果部分具体功能需要其他权限会单独说明。 父主题: 运维中心
-
fs 插件类型 OS 功能说明 统计主机文件系统使用情况,采集数据内容和df -lh命令一致。 当主机上的分区名称为/dev或/dev/shm时,无法采集该分区的数据。 当主机上的分区名称包含/media/或/mnt/时,无法采集该分区的数据 参数配置 配置样例:“_filter_mounted_name:^/shm,/dev,/opt”,其中带"^"前缀的为反向筛选关键字(/shm),其余为正向筛选关键字(/dev、/opt),每条消息在最终生成之前,插件会先执行一次正向筛选(若mounted_name的值包含/dev或/opt任一字段,则保留这条消息;反之则删掉。若没有配置正向筛选关键字,则跳过这步筛选,保留消息。)若该条消息得以保留,插件会继续执行一次反向筛选(若mounted_name的值包含/shm字段,则删掉这条消息;反之则保留。若没有配置反向筛选关键字,则跳过这步筛选,保留消息。) 假设某台服务器执行df -lh命令结果如图2所示,共4行数据,按照_filter_mounted_name:^/shm,/dev,/opt”配置正反向过滤后,仅生成第2、4行对应的消息。/dev/shm由于包含/shm,对应的消息将被剔除。 图2 示例2 消息样例及含义说明 { "plugin_id": "fs", "metric": { "node": "host-10-33-0-188", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp": 1482161028000, #单位: | 类型:long long | 说明:UTC时间戳 "fs_name": "/dev/mapper/vg1-lv1", #单位: | 类型:string | 说明:文件系统(= df命令的Filesystem列) "free": " 8707.9", #单位:mb | 类型:double | 说明:分区可用空间大小(= df命令的Avail列) "total": " 90710.0", #单位:mb | 类型:double | 说明:分区总大小(= df命令的Size列) "usage": "90.0", #单位:% | 类型:double | 说明:分区使用率(= df命令的Use%列) "used": " 80988.4", #单位:mb | 类型:double | 说明:分区已使用大小(= df命令的Used列) "mounted_name":"/opt", #单位: | 类型:string | 说明:分区挂载点(= df命令的Mounted on列) "index_node_use_util": " 3.00000 " #单位:% | 类型:double | 说明:inode使用率(= df -i命令的IUse%列) }
-
tcp 插件类型 APP 功能说明 检测本机或者指定主机端口是否可连通,并将结果返回HCW。 参数配置 配置样例: _filter_ip_id:xxx.0.0.1 # 检测IP,检测本机指定端口是否可达,配置值为127.0.0.1,检测指定主机端口是否可达,配置值为指定主机IP;当检测本机端口是否可达时,会检测127.0.0.1+端口和本机公网IP+端口是否可达,若有一项可达则表明本机端口可达。 _filter_port_id:80 # 检测端口。 TCP为多实例插件,即TCP插件可以配置多组参数,但需要每组参数均不相同。 消息样例及含义说明 { "plugin_id":"tcp", #单位: | 类型:string | 说明:插件名 "metric":[{ "node": " host-10-33-0-188", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp": "1518078026000", #单位: | 类型:string | 说明:字符类型时间戳 "port_status":"1", #单位: | 类型:string | 说明:端口状态,端口可达值为1,不可达值为0 "ip_id":"xxx.0.0.1", #单位: | 类型:string | 说明:检测IP "port_id":"80", #单位: | 类型:string | 说明:检测端口 }] }
-
scriptcollet 插件类型 APP 功能说明 执行脚本命令或者读取指定文件内容,并将结果上报给HCW。 参数配置 配置样例: type:script # 采集方式,可选填 script(采集脚本)或者 path(采集文件)。 ex_path:/opt/huawei/monitor/disk.sh # 脚本执行路径或者采集文件路径。 _filter_key_id:/opt/huawei/monitor/disk.sh # 多实例插件的key,此参数是为了支持多实例插件上报使用,只需要保证多个实例中该值均不同,建议与ex_path值保持一致。 scriptcollect为多实例插件,即scriptcollect插件可以配置多组参数,但需要每组参数均不相同。 消息样例及含义说明 { "plugin_id":"scriptcollect", #单位: | 类型:string | 说明:插件名 "metric":[{ "node": " host-10-22-0-170", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp": "1518078026000", #单位: | 类型:string | 说明:字符类型时间戳 "key_id":"/opt/huawei/monitor/disk.sh", #单位: | 类型:string | 说明:对应模板配置的key值 "collect_value":"80", #单位: | 类型:string | 说明:执行脚本命令或者读取指定文件内容上报的值 }] }
-
gpu 插件类型 OS 功能说明 采集GPU信息,每次采集都为每个GPU,以及总GPU维度分别生成消息,并上报给HCW。 执行nvidia-smi命令,分别获取每个GPU的GPU-Util、Bus-Id、mem_used、mem_total、mem_util信息,并整合总GPU信息上报给HCW。 参数配置 不需要配置。 消息样例及含义说明 { "plugin_id":"gpu", #单位: | 类型:string | 说明:插件名 "metric":{ "node": "bj-xen-pdc-241-202", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp": "1518078026000", #单位: | 类型:string | 说明:字符类型时间戳 "_id":"GPU-0", #单位: | 类型:string | 说明:GPU编号,总GPU编号为GPU-ALL "_name":"Tesla P100-PCIE", #单位: | 类型:string | 说明:GPU型号 "bus_id":"0000:04:00.0", #单位: | 类型:string | 说明:GPU的Bus-Id "util":"61", #单位: | 类型:string | 说明:GPU使用率 "mem_used":"1385", #单位: | 类型:string | 说明:GPU已使用显存 "mem_total":"16276", #单位: | 类型:string | 说明:GPU显存总量 "mem_util":"8.50" #单位: | 类型:string | 说明:GPU显存使用率 } }
-
logalarm 插件类型 ALARM 功能说明 监控指定日志文件,配置日志匹配关键字,并按照配置参数的要求,生成告警并上报到HCW。 参数配置 collect_file_path #定义日志采集配置,按照以下字段,使用json格式数据单行填入。 字段ID 字段名 必填 类型 范围 备注 id 告警定义ID 是 String 1~128 告警ID,由数字、字母、下划线组成。 alarm_name 告警名称 是 String 1~128 支持配置变量{{$log_info}},上报告警时会替换成匹配到的最后一条ERROR日志;支持配置变量{{$all_matching_log}},上报告警时会替换成匹配到的所有ERROR日志,当alarm_name配置了变量{{$all_matching_log}}时,若产生告警且后续周期又匹配到了告警,新匹配到的告警会在原告警ID的基础上,产生一个新的告警,并上报到监控系统,告警清除时会清除当前告警和后续产生的告警;当alarm_name配置为空时,会读取文件中的所有内容,逐行检测并上报告警。 alarm_level 告警级别 是 String 枚举 致命critical、严重major、一般minor、提示notice。 不区分大小写。 key_word 日志匹配关键字 是 String NA 日志匹配关键字,支持正则表达式。 match_file 日志文件绝对路径 是 String NA 支持变量、通配符,配置多个地址时需要使用逗号分隔。 matches 最大匹配次数 是 long NA - number_of_match_period 匹配周期数 是 long NA 与matches和key_word组合使用。 number_of_nodata_period 无数据上报的周期数 否 long NA 单独使用,与matches和key_word无关联。 description 告警详情 是 String NA 进一步丰富告警信息。 参数配置样例 [{"id":"alert20240627","alarm_name":"test20240627","alarm_level":"major","key_word":"usr/bin/sudo","match_file":"/var/log/messages","matches":2,"number_of_match_period":"30","number_of_nodata_period":"10","description":"test20240627"}] # 30个周期内匹配2次以上,则产生告警;30个周期内匹配2次或者2次以下,则清除告警。 # 10个周期内有数据则产生告警,10个周期内无数据上报则清除告警。
共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
推荐文章