华为云用户手册
-
背景说明 账户欠费进入保留期后,华为云CDN会下线您的加速 域名 。 表1 下线策略说明 策略 说明 解析回源 域名被下线时,您的域名会解析回主源站,最终域名状态调整为“停用”,停止 CDN加速 服务。解析回源后域名配置信息仍会保留(仅限保留期内),待您的域名恢复正常后,CDN会重新将域名解析回CDN节点并提供加速服务。 说明: 加速域名被执行下线策略30天后,华为云CDN将不再提供“解析回源”服务,您的加速域名将无法被访问。 解析回源将把您的源站域名或IP暴露给用户,如果您不希望暴露源站域名或者IP,请选择“停用域名”。 解析回源后业务是否能正常提供服务,依赖于您的源站。 停用域名 域名被下线时,CDN会将您的域名状态调整为“停用”,停止CDN加速服务。域名停用后将无法正常访问,但域名配置信息仍会保留(仅限保留期内),待您的账号核销欠款后,CDN会为您重新启用加速域名。 域名下线后,CDN会给您预留的电话或者邮箱发送短信或者邮件提示,您可以及时充值,恢复CDN加速服务。 超过保留期还没有缴清欠费,CDN的域名和配置将会被删除,保留期时长详见保留期。 域名备案过期、违规、遭受攻击被封禁后将停用域名,不会触发域名下线策略。
-
审计服务支持的CDN操作列表 表1 云审计 服务支持的CDN操作列表 操作名称 说明 createDomain 创建加速域名 updateDomain 更新加速域名 Range回源 回源跟随 IP黑白名单 设置回源Host 设置源站 OBS私有桶回源 配置HTTPS证书 创建缓存规则 HTTP header配置 域名批量配置 批量HTTPS配置 创建资源标签 删除资源标签 deleteDomain 删除加速域名 enableDomain 启用加速域名 disableDomain 停用加速域名 updateOrigin 设置源站 updateOriginHost 设置回源Host createRefer 创建Referer规则 createCertificate 设置加速域名证书 createCacheRule 创建缓存规则 createRefreshTask 创建刷新缓存任务 createPreheatingTask 创建预热任务
-
停用加速域名 对处于“已开启”或“配置失败”状态的域名,您可以对其进行“停用”操作。停用后,CDN将不再为域名提供加速服务,但域名的配置不会改变,如果想恢复CDN加速服务请重新启用CDN。 单域名停用 进入CDN控制台的“域名管理”页面,在需要停用的加速域名对应的“操作”列单击“更多”,选择“停用”。 图2 停用域名 确认需要停用的域名信息,单击“确定”完成域名停用操作。 批量停用域名 进入CDN控制台的“域名管理”页面,勾选需要停用的加速域名,单击域名列表上方“停用”。 图3 批量停用域名
-
协议优势 目前,互联网使用的HTTP协议版本是HTTP1.1,HTTP/2在HTTP1.1的基础上对性能进行了很大的优化,并且兼容了HTTP1.1的语义。 HTTP/2和HTTP1.1比较主要有如下几大优势: 二进制分帧 HTTP/2采用二进制格式传输数据,而HTTP1.1采用文本格式传输数据。二进制格式传输在协议的解析和优化扩展上更具优势,提升了数据传输效率。 头部压缩 HTTP/2对消息头采用HPACK格式进行压缩传输,并在客户端和服务端通过“头部表”来跟踪和存储消息头,相同的消息头只需通过索引从“头部表”中获取并使用之前已经请求发送过的消息头。 HTTP/2通过头部压缩, 解决了HTTP1.1每次请求都会携带大量的头部冗余信息而浪费带宽资源的问题,节省了消息头占用的网络和流量。 多路复用 在HTTP/2中,多个请求或者响应可以通过一个TCP连接并发完成,而HTTP1.1中每个请求或者响应都需要按照先后顺序建立一个TCP链接。HTTP/2通过有效地并发请求,减少了服务器链接压力,缓解了网络阻塞状况。
-
注意事项 运营报表中最多可支持添加100个加速域名。 定制的运营报表有效期最长为1年。 可查询的时间跨度最长为31天,支持查看最近90天的历史数据。 最小统计粒度以天为单位。 统计时延和算法误差可能导致统计数据与日志中的数据有差异,请以日志数据为准。 您需要定制运营报表后才能查看对应的数据,受日志完整性时延的影响,当天定制的报表会在次日生成。例如2023.08.02日定制的报表,会在2023.08.03日生成。
-
排查步骤 检查域名是否接入CDN加速 如果您刚在控制台添加加速域名,正在做配置CNAME前的本地测试加速域名工作,请忽略本步骤,参照快速入门流程配置即可。 您需要检查域名是否解析到CDN,以Windows操作系统为例,打开cmd程序,输入如下指令: nslookup -qt=cname 加速域名 如果返回结果显示CNAME,则表示CNAME配置已经生效,如下图: 如果查询出的域名解析中没有上图红框中所示,后缀为.c.cdnhwc1.com的CNAME解析记录,则说明您添加的域名的CDN加速未生效。此种情况下CDN加速未生效的可能原因是您没有在域名DNS服务商处配置CNAME记录,请根据配置CNAME内容指导前往您的域名DNS服务商处配置CNAME记录。 如果您确认已正确配置CNAME记录,请检查同一解析线路下该域名的上一记录类型的TTL时间,TTL时间决定了解析记录在本地DNS服务器的缓存时间。您新添加的CNAME记录在上一记录类型的本地TTL缓存时间过期后才会正式生效。 查看是否命中CDN缓存 在浏览器Chrome上,按F12,选择“Network”。查看指定URL的响应头,查看头部信息,进行如下判断: 如果有“x-hcs-proxy-type”头部,值为“1”即命中缓存,值为“0”即未命中缓存,不再查看其它头部; 如果无“x-hcs-proxy-type”头部,而有“X-Cache-Lookup”头部,值为“Hit From MemCache”、“Hit From Disktank”或“Hit From Upstream”即为命中缓存,其它值表示未命中缓存,不再查看其它头部; 如果同时无“x-hcs-proxy-type”、“X-Cache-Lookup”头部,有“age”头部,则值大于“0”即命中缓存,值为“0”即未命中缓存。 如果未命中缓存,请跳到4. 检查缓存规则设置查看缓存规则设置。 如果命中缓存,请进入下一步分析。 是否跨运营商和跨省 如果用户访问跨省和跨运营商,可能会影响访问速度,请按照以下步骤排查: 在客户端打开华为云CDN用户诊断系统,输入您的加速域名,单击“检测”,获得客户端IP、LDNS。 根据客户端IP和LDNS分析是否跨运营商和跨省。如果使用了代理,可能会出现跨运营商和跨省,影响访问效果。 示例1:用户在河北使用广电网络访问,但IP是北京联通,LDNS又是石家庄电信,访问速度就会较慢,跨运营商对网速的影响很大。 示例2:用户在北京使用广电网络访问,但IP是北京联通,LDNS又是广东电信,用户访问加速域名时CDN调度系统会根据LDNS匹配最近的广东节点,导致访问速度较慢。 华为云CDN目前支持的运营商有电信、联通、移动、铁通、教育网、鹏博士等。 检查缓存规则设置 检查所访问的资源对应的缓存规则,是否存在配置的缓存过期时间为0或者缓存过期时间过短的情况。CDN不缓存或者缓存过期时间过短会导致请求回源,无法达到加速效果。 检查您的源站缓存设置,如果源站设置了no-cache、private、no-store,CDN侧同时开启了“缓存遵循源站”功能(此功能默认关闭),CDN将无法缓存源站资源,导致所有请求回源,无法达到加速效果。 检查您设置缓存规则的优先级,数值越大优先级越大,系统会优先匹配。 如果您的URL携带了参数,并且参数不断变化,当使用不同的URL去访问的时候,CDN会认为这是一个新请求(即使这两个不同的URL访问的是同一个文件,并且该文件已经缓存在节点上),依然会回源请求该资源。如果携带不同的参数的URL访问的是同一个资源,建议开启忽略URL参数功能,请参见URL参数。 更多缓存设置请参考如何设置缓存过期时间。 检查资源是否预热 如果您是首次访问某资源,且之前未对该资源做过预热处理,CDN节点会回源请求资源,首次访问速度慢属于正常。 首次接入CDN后,建议您预热大文件或者视频,图片、小文件等不建议预热。 检查客户端网络 ping CDN加速后访问依然较慢的域名,检查网络时延和丢包。如果网络时延大或者丢包严重,需要检查客户端网络接入问题。 检查是否存在跨境访问 仅开通了中国大陆境内加速:如果域名的服务范围为中国大陆,此时所有客户端请求均会调度到中国大陆的节点,此时中国大陆境外用户访问域名时,受跨境网络影响,加速效果不太明显,甚至无法访问。 源站位置和服务范围不一致: 如果域名的源站地址在中国大陆境外,服务范围为中国大陆,此时客户端请求回源时受跨境网络影响,加速效果不太明显,甚至无法访问。 如果域名的源站地址在中国大陆境外,服务范围为全球,那么中国大陆用户访问该域名下的资源时,将调度到中国大陆的节点,如果节点未缓存该资源,此时客户端请求回源时受跨境网络影响,加速效果不太明显,甚至无法访问。 如果排除以上几点后问题仍然存在,请联系客服或提交工单处理。
-
缓存预热失败怎么办? 您可以前往刷新预热历史记录查看失败原因,缓存预热失败的可能原因是: 执行大批量文件的集中预热时,可能会导致您的源站带宽资源被占满。预热时请尽量分批次执行,您也可以通过扩充源站带宽来提升预热效率。 检查资源对应的缓存过期时间是否为0,如果为0,不允许缓存会导致预热失败; 排查源站的cache-control配置,源站配置private、no-cache、no-store而CDN侧同时开启了“缓存遵循源站”功能,将导致CDN不能缓存引起预热失败。 目前不支持预热目录、动态文件。 请检查您的源站资源是否能正常访问(例如网络问题或源站有防火墙、黑/白名单等安全限制),如不能正常访问也将造成预热失败。 父主题: 刷新预热
-
入门实践 当您完成了数据上传、交换以及管理数据等基本操作后,可以根据自身的业务需求使用EDS提供的一系列常用实践。 表1 常用最佳实践 实践 描述 数据交换 用户建立EDS与第三方内网环境的数据库/FTP服务器的连接 很多企业会把关键数据源建设在内网,例如数据库、文件服务器等。由于EDS运行在云上,所以需要创建EDS与第三方内网数据源的连接,以便更加安全、可靠的交换和管理数据资源。 数据交换 健康医疗数据通过EDS共享和安全管控实践 本实践以xx医疗集团和某慢病院交换“风湿病患者医疗数据”为例,指导用户在医疗场景中如何安全的进行数据交换。
-
到期后影响 图4描述了包年/包月EDS资源各个阶段的状态。购买后,在计费周期内资源正常运行,此阶段为有效期;资源到期而未续费时,将陆续进入宽限期和保留期。 图4 包年/包月EDS资源生命周期 到期预警 包年/包月资源在到期前第7天内,系统将向用户推送到期预警消息。预警消息将通过邮件、短信和站内信的方式通知到华为账号的创建者。 到期后影响 当您的包年/包月资源到期未续费,首先会进入宽限期,资源状态变为“已过期”。宽限期内您可以正常访问空间实例和连接器,但扩容数据存储容量将受到限制。 如果您在宽限期内仍未续费包年/包月资源,那么就会进入保留期,资源状态变为“已冻结”,您将无法对处于保留期的包年/包月资源执行任何操作。 保留期到期后,若包年/包月资源仍未续费,那么DMAP数小二实例、空间实例、连接器和数据存储都将被释放,数据无法恢复。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 关于续费的详细介绍请参见续费概述。
-
连接器计费示例 假设您在2023/07/08 16:50:04购买了一个包年/包月的连接器,计费资源包括连接器、结构化数据存储容量、非结构化数据存储容量。购买时长为一个月,并在到期前手动续费1个月,则: 第一个计费周期为:2023/07/08 16:50:04 ~ 2023/08/08 23:59:59 第二个计费周期为:2023/08/08 23:59:59 ~ 2023/09/08 23:59:59 您需要为每个计费周期预先付费,各项连接器资源单独计费,计费公式如表3所示。 表3 计费公式 资源类型 计费公式 连接器规格 规格单价 * 购买时长 结构化数据存储容量 数据存储容量 * 存储量单价 * 购买时长 非结构化数据存储容量 数据存储容量 * 存储量单价 * 购买时长 本章描述图中价格仅供参考,实际计算请以华为云官网发布的实际价格为准。
-
DMAP数小二计费示例 假设您在2024/09/01 16:50:07购买了一个包年/包月DMAP数小二实例(规格:基础共享版),购买时长为一年,并在到期前手动续费一年,则: 第一个计费周期为:2024/09/01 16:50:07 ~ 2025/09/01 23:59:59 第二个计费周期为:2025/09/01 23:59:59 ~ 2026/09/01 23:59:59 您需要为每个计费周期预先付费,该资源单独计费。
-
交换数据空间 适用计费项 交换数据空间实例和连接器配合数据存储容量,才可以实现交换数据。以下计费项支持包年/包月。 表1 适用计费项 计费项 说明 交换数据空间实例 根据实例规格和购买时长计费。 连接器 根据连接器规格和购买时长计费,建议购买周期与空间实例一致。 结构化数据存储容量(必选) 默认结构化数据存储容量10G(需购买),计费模式为“包年/包月”。 非结构化数据存储容量(必选) 默认非结构化数据存储容量20G(需购买),计费模式为“包年/包月”。 假设您计划购买一个交换数据空间实例,在购买交换数据空间实例的地方,您将看到该费用,如图1所示。 图1 配置空间实例费用示例 假设您计划购买一个连接器,并同时选择了数据存储容量。在购买连接器页面底部,您将看到所需费用明细,如图2所示。 图2 配置连接器费用示例 配置费用将包括以下部分: 交换数据空间实例:根据所选规格和购买时长计费。 连接器:根据所选规格和购买时长计费。 非结构化存储:根据所选容量大小计算的费用。 结构化存储:根据所选容量大小计算的费用。
-
空间实例计费示例 假设您在2023/07/08 15:50:04购买了一个包年/包月交换数据空间实例(规格:基础版),购买时长为一年,并在到期前手动续费一年,则: 第一个计费周期为:2023/07/08 15:50:04 ~ 2024/07/08 23:59:59 第二个计费周期为:2024/07/08 23:59:59 ~ 2025/07/08 23:59:59 您需要为每个计费周期预先付费,该资源单独计费。
-
计费周期 包年/包月资源的计费周期是根据您购买的时长来确定的(以UTC+8时间为准)。一个计费周期的起点是您开通或续费资源的时间(精确到秒),终点则是到期日的23:59:59。 例如,如果您在2023/07/08 15:50:04购买了一个时长为一年的交换数据空间,那么其计费周期为:2023/07/08 15:50:04 ~ 2024/07/08 23:59:59。 如果您在2023/07/08 16:50:05购买了一个时长为一个月的连接器,那么其计费周期为:2023/07/08 16:50:05 ~ 2023/08/08 23:59:59。
-
变更配置后对计费的影响 当前包年/包月连接器中的数据存储容量不满足您的业务需要时,您可以在连接器的控制台发起扩容操作,变更时系统将按照如下规则为您计算变更费用: 资源扩容:新配置价格高于老配置价格,此时您需要支付新老配置的差价。 本服务暂不支持降低存储数据容量。这里以资源扩容且无任何优惠的场景为例,假设您在2023/07/08购买了一个连接器(结构化数据存储50G),购买时长为1个月,计划在2023/07/18变更规格为70G的结构化数据存储。旧配置价格为300元/月,新配置价格为420元/月。计算公式如下: 升配费用=(新规格配置价格-旧规格配置价格)*剩余周期 公式中的剩余周期为每个自然月的剩余天数/对应自然月的最大天数。本示例中,剩余周期=13(7月份剩余天数)/ 31(7月份最大天数)+ 8(8月份剩余天数)/ 31(8月份最大天数),代入公式可得升配费用=(420-300)*(13/31+8/31)=81.29(元) 更多信息请参见变更资源规格费用说明。
-
数据资产运营 现状问题 组织内存在数据不可见、查找困难、标准不统一,无法理解、权限管控难等问题。 数据资源无法有效转化成数据资产,业务与IT之间存在巨大屏障,阻碍数据价值的具体发挥。 方案收益 实现数据资产的全域盘点,支持语义搜索,帮助用户一键查找所需。 支持360度资产刻画,实现数据集、逻辑数据实体、隐私密级的详情查看,帮助用户全面理解数据,洞悉数据资产的流通全局,提升可信度。 基于AppID开展数据隐私及密级管理,加强对数据资产的安全可控。
-
数字化报告可视化 现状问题 业务、应用、数据和技术架构的变更通过线下方式进行,没有通过统一的系统来发布和承载。 企业的数字化转型过程中的大量投入及工作成果无法快速准确、直观的体现出来。 方案收益 元模型驱动40+数字化报告模板生成,开箱即用,分钟级构建数字化报告。 基于AppID开发的数字化报告,让CXO洞察数字化变革进展。 EA元模型,将数字资产像七巧板一样自由组合,形成利益相关人关心的、多维度的、能辅助决策的数字化报告。
-
调用API示例 在工程中引入sdk(signer.go)。 import "apig-sdk/go/core" 生成一个新的Signer,输入AppKey和AppSecret。 // 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 ak = os.Getenv("SDK_AK"); sk = os.Getenv("SDK_SK"); s := core.Signer{ Key: ak, Secret: sk, } 生成一个新的Request,指定域名、方法名、请求url、query和body。 r, _ := http.NewRequest("POST", "http:/c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/api?a=1&b=2", ioutil.NopCloser(bytes.NewBuffer([]byte("foo=bar")))) 给请求添加header头,内容为具体参数数据。如有需要,添加需要签名的其他头域。 r.Header.Add("x-stage", "RELEASE") r.Header.Add("name","value") 进行签名,执行此函数会在请求中添加用于签名的X-Sdk-Date头和Authorization头。然后为请求添加x-Authorization头,值与Authorization头相同。 s.Sign(r) authorization := r.Header.Get("Authorization") r.Header.Add("x-Authorization", authorization) 访问API,查看访问结果。 resp, err := http.DefaultClient.Do(r) body, err := ioutil.ReadAll(resp.Body)
-
准备环境 已获取API的域名、请求url、请求方法、AppKey和AppSecret等信息,具体参见认证前准备。 获取并安装Nodejs安装包,如果未安装,请至Nodejs官方网站下载。 Nodejs安装后,在命令行中,用npm安装“moment”和“moment-timezone”模块。 npm install moment --save npm install moment-timezone --save 获取并安装IntelliJ IDEA,如果未安装,请至IntelliJ IDEA官方网站下载。 已在IntelliJ IDEA中安装NodeJS插件,如果未安装,请按照图1所示安装。 图1 安装NodeJS插件
-
调用API(Node.js)示例 在工程中引入signer.js。 1 2 var signer = require('./signer') var http = require('http') 生成一个新的Signer,填入AppKey和AppSecret。 1 2 3 4 5 6 7 8 // 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 var ak = process.env.SDK_AK; var sk = process.env.SDK_SK; var sig = new signer.Signer(); sig.Key = ak; sig.Secret = sk; 生成一个Request对象,指定方法名、请求uri和body。 1 2 var r = new signer.HttpRequest("POST", "c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/app1?a=1"); r.body = '{"a":1}' 给请求添加header头,内容为具体参数数据。如有需要,添加需要签名的其他头域。 1 r.headers = { "x-stage":"RELEASE", "name":"value"} 进行签名,执行此函数会生成请求参数,用于创建http(s)请求,请求参数中添加了用于签名的X-Sdk-Date头和Authorization头。然后为请求参数添加x-Authorization头,值与Authorization头相同。 1 2 var opt = sig.Sign(r) opt.headers["x-Authorization"] = opt.headers["Authorization"] 访问API,查看访问结果。如果使用https访问,则将“http.request”改为“https.request”。 1 2 3 4 5 6 7 8 9 10 11 var req=http.request(opt, function(res){ console.log(res.statusCode) res.on("data", function(chunk){ console.log(chunk.toString()) }) }) req.on("error",function(err){ console.log(err.message) }) req.write(r.body) req.end()
-
调用API示例 使用JavaScript SDK生成curl命令。 获取“ApiGateway-javascript-sdk.zip”压缩包并解压。在浏览器中打开demo.html,页面如下图所示。 填入Key、Secret、方法名、请求协议、域名和url(认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全)。本示例从前端输入,仅用于演示,例如: 1 2 3 4 Key=4f5f626b-073f-402f-a1e0-e52171c6100c Secret=****** Method=POST Url=https://{apig-endpoint} 填入json格式的Query和Headers,填入Body。其中所访问API的ID为必填项,需要填入具体的ID信息,以参数"x-api-id"填入Headers中。 单击“Send request”,生成curl命令。 $ curl -X POST "https://{apig-endpoint}/" -H "X-Sdk-Date: 20180530T115847Z" -H "Authorization: SDK-HMAC-SHA256 Access=071fe245-9cf6-4d75-822d-c29945a1e06a, SignedHeaders=host;x-sdk-date, Signature=9e5314bd156d517******dd3e5765fdde4" -d "" 为命令添加x-Authorization头,值与Authorization头相同。将curl命令复制到命令行,访问API。 $ curl -X POST "https://{apig-endpoint}/" -H "X-Sdk-Date: 20180530T115847Z" -H "Authorization: SDK-HMAC-SHA256 Access=071fe245-9cf6-4d75-822d-c29945a1e06a, SignedHeaders=host;x-sdk-date, Signature=9e5314bd156d517******dd3e5765fdde4" -H "X-Authorization: SDK-HMAC-SHA256 Access=071fe245-9cf6-4d75-822d-c29945a1e06a, SignedHeaders=host;x-sdk-date, Signature=9e5314bd156d517******dd3e5765fdde4" -d "" Congratulations, sdk demo is running
-
调用API示例 在工程中引入sdk。 1 using APIGATEWAY_SDK; 生成一个新的Signer, 填入AppKey和AppSecret。 1 2 3 4 5 6 7 8 // 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 string ak = System.Environment.GetEnvironmentVariable("SDK_AK"); string sk = System.Environment.GetEnvironmentVariable("SDK_SK"); Signer signer = new Signer(); signer.Key = ak; signer.Secret = sk; 生成一个HttpRequest对象,指定域方法名、请求url和body。 1 2 3 HttpRequest r = new HttpRequest("POST", new Uri("https://c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/app1?query=value")); r.body = "{\"a\":1}"; 给请求添加header头,内容为具体参数数据。如有需要,添加需要签名的其他头域。 1 2 r.headers.Add("x-stage", "RELEASE"); r.headers.Add("name","value"); 进行签名,执行此函数会生成一个新的HttpWebRequest,并在请求参数中添加用于签名的X-Sdk-Date头和Authorization头。然后为请求添加x-Authorization头,值与Authorization头相同。 1 2 HttpWebRequest req = signer.Sign(r); req.Headers.Add("x-Authorization", string.Join(", ", req.Headers.GetValues("x-Authorization"))); 访问API,查看访问结果。 1 2 3 4 5 6 var writer = new StreamWriter(req.GetRequestStream()); writer.Write(r.body); writer.Flush(); HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); var reader = newStreamReader(resp.GetResponseStream()); Console.WriteLine(reader.ReadToEnd());
-
调用API示例 在Android工程中的“app/libs”目录下,加入SDK所需jar包。其中jar包必须包括: java-sdk-core-x.x.x.jar commons-logging-1.2.jar joda-time-2.9.9.jar 在“build.gradle”文件中加入okhttp库的依赖。 在“build.gradle”文件中的“dependencies”下加入“implementation 'com.squareup.okhttp3:okhttp:3.11.0'”。 1 2 3 4 5 dependencies { ... ... implementation 'com.squareup.okhttp3:okhttp:3.11.0' } 创建request,输入AppKey和AppSecret,并指定域名、方法名、请求uri和body。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Request request = new Request(); try { // 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 String ak = System.getenv("SDK_AK"); String sk = System.getenv("SDK_SK"); request.setKey(ak); request.setSecret(sk); request.setMethod("POST"); request.setUrl("https://c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/app1"); request.addQueryStringParam("name", "value"); request.addHeader("Content-Type", "text/plain"); request.addHeader("name", "value"); request.setBody("demo"); } catch (Exception e) { e.printStackTrace(); return; } 对请求进行签名,并为请求添加x-Authorization头,值与Authorization头相同。然后生成okhttp3.Request对象来访问API。 1 2 3 4 5 okhttp3.Request signedRequest = Client.signOkhttp(request); String authorization = signedRequest.header("Authorization"); signedRequest = signedRequest.newBuilder().addHeader("x-Authorization",authorization).build(); OkHttpClient client = new OkHttpClient.Builder().build(); Response response = client.newCall(signedRequest).execute();
-
SDK调用常见错误码/错误信息 表1 常见错误码/错误信息 错误码 错误信息 错误原因 解决方案 DLM.0 null 表示API调用成功。 表示调用成功,无需处理。 APIG.0101 The API does not exist or has not been published in the environment API未发布 url错误 发布API 确认请求的url和实际url是否相同 APIG.0106 Orchestration error: Invalid header parameter: x-Authorization, required SDK未添加x-Authorization。 SDK使用前准备步骤3。 APIG.0106 Orchestration error: Invalid ___ parameter: ___, required 未传指定参数。 调用时上传此参数。 APIG.0201 Backend timeout 后端超时(API网关请求维持50秒后未收到返回结果,会返回此错误信息。) 请先确认数据服务访问日志,如果访问日志中有数据(数据略有延迟),则说明数据源取数时间过长,请尽量优化取数sql逻辑。 如果访问日志中无数据,请确认(共享版:数据服务gateway/专享版:数据服务集群)是否运行中。 APIG.0303 Incorrect app authentication information: app not found 应用不存在。 确认请求的key和secret是否准确。 APIG.0304 The app is not authorized to access the API 应用无权访问当前API。 确认API已授权给应用。 确认请求的key和secret是否准确。 APIG.0308 The throttling threshold has been reached: policy domain over ratelimit, limit:1000, time:1 day 域名的请求次数达到了给定的上限:1天1000次。 建议:去API网关,为分组绑定域名。 临时规避:切换分组。域名以分组为单位,每个分组限制独立计算。 DLM.4018 Api is not exist API不存在。 20200630版本前发布的API: 请确认调用时参数x-api-id的值,是否正确(该值为所访问API的ID,请向此API的提供者获取) 20200630版本后发布的API: 确认请求的url和实际url是否相同。 若为专享版刚发布的API,请稍作等待,API下发至集群存在短暂的延时。 其他(数据同步异常): 停用/下线对应API,然后恢复/发布。 尝试重启集群(逐个节点重启可避免业务影响)。 DLM.4094 Call api failed. 调用API失败。 确认调用所执行的SQL正确,可以正常使用(所执行SQL详见访问日志,仅API方可见)。 CDM 中代理异常,错误原因详见返回的DLG错误信息。 调用超时,若为DWS数据库,建议API采用自定义分页。 调用超时,请优化查询语句,确保数据库中能短时间内完成执行。 DLM.4211 Token invalid token校验不通过。 确认token是否正确。 确认token所属租户,是否已授权或已位于白名单中。 DLM.4312 Missing parameters: ___ 缺少指定参数。 调用时上传此参数。 400 App does not have permission to access API. 应用无权访问当前API。 确认API已授权给应用。 确认请求的key和secret是否准确。 确认API和APP的授权关系仍在有效期内。 401 Authorization not found. 签名信息未找到。 应用认证:SDK使用前准备步骤3。 发布到网关的专享版 IAM 认证:IAM认证的API发布到网关后,不支持直接访问集群的token认证形式。 401 Authorization format incorrect. 签名格式错误。 建议使用SDK生成签名。 401 Signing key not found. 签名密钥未找到。 确认请求的key和secret是否准确。 401 Signed header ___ not found. 签名头未找到。 请确认用于签名的header头参数在调用时上传了。 401 Header x-sdk-date not found. 签名头x-sdk-date未找到。 此参数为签名时自动生成,若通过其他方式调用,请将SDK签名后的此参数在调用时也进行上传。 401 Signature expired. 签名过期。 签名具有一定的有效期,当前签名已过期,请重新生成签名。 请确认本地时间和实际时间是否一致。 如果本地时间是准确的,请联系相关人员确认集群节点时间,可能节点时间存在异常。 401 Verify authroization failed. 签名校验失败。 请确认进行签名的所有参数,均已上传且和签名时相同,包括且不限于url、path、header、query、body等。 说明: 如果自行对接了第三方网关等,请求地址和数据服务展示的地址不一致,需要在请求头中补充参数x-forwarded-host,值为签名时使用的请求地址。 如果使用get请求,不要定义body体。 DLG.0902 Fail to call the agent. For details about No matching constant for [-1], see the CDM logs. CDM上的代理拒绝服务。 SQL执行时间过长 CDM资源不足了 确认SQL执行时长,如果时间过长,建议优化SQL(默认分页的话则建议使用自定义分页)。 如果SQL执行时间较短,当前没有其他服务正在作业的话,重启CDM。 DAYU.1088 Failed to process the request sent by the agent. CDM无响应。 尝试重启CDM。 可能是CDM升级引起,考虑新买一个CDM。 父主题: 数据服务SDK参考
-
准备环境 已获取API的域名、请求url、请求方法、AppKey和AppSecret等信息,具体参见认证前准备。 获取并安装IntelliJ IDEA,如果未安装,请至IntelliJ IDEA官方网站下载。 获取并安装PHP安装包,如果未安装,请至PHP官方下载页面下载。 将PHP安装目录中的“php.ini-production”文件复制到“C:\windows”,改名为“php.ini”,并在文件中增加如下内容。 1 2 3 extension_dir = "php安装目录/ext" extension=openssl extension=curl 已在IntelliJ IDEA中安装PHP插件,如果未安装,请按照图1所示安装。 图1 安装PHP插件
-
数据服务SDK使用场景 数据API是否必须通过数据服务SDK代码才能调用,与数据API的认证方式有关。只有当通过数据服务创建数据API使用推荐的APP认证方式时,才能通过SDK方式进行数据API调用;当使用其他认证方式时,可以通过API调用工具或浏览器调用。 APP认证:将APP认证方式的API授权给应用后,使用应用的密钥对(AppKey和AppSecret)进行安全认证,支持通过SDK或API调用工具调用,安全级别高,推荐使用。 IAM认证:将IAM认证方式的API授权给当前账号或其他账号后,借助从IAM服务获取的用户Token进行安全认证。支持通过API调用工具调用,安全级别中等。 无认证:不需要认证,所有用户均可访问,建议仅在测试接口时使用,不推荐正式使用。使用无认证方式时,无需鉴权认证信息,安全级别低,通过API调用工具或浏览器即可直接调用。
-
准备环境 已获取API的域名、请求url、请求方法、AppKey和AppSecret等信息,具体参见认证前准备。 获取并安装Python安装包(可使用2.7.9+或3.X),如果未安装,请至Python官方下载页面下载。 Python安装完成后,在命令行中使用pip安装“requests”库。 pip install requests 如果pip安装requests遇到证书错误,请下载并使用Python执行此文件,升级pip,然后再执行以上命令安装。 获取并安装IntelliJ IDEA,如果未安装,请至IntelliJ IDEA官方网站下载。 已在IntelliJ IDEA中安装Python插件,如果未安装,请按照图1所示安装。 图1 安装Python插件
-
调用API示例 在工程中引入apig_sdk。 1 2 3 from apig_sdk import signer import requests import os 生成一个新的Signer,填入AppKey和AppSecret。 1 2 3 4 5 6 7 8 # 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 ak = os.environ("SDK_AK"); sk = os.environ("SDK_SK"); sig = signer.Signer() sig.Key = ak sig.Secret = sk 生成一个Request对象,指定方法名、请求uri、header和body。 1 2 3 4 r = signer.HttpRequest("POST", "https://c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/app1?a=1", {"x-stage": "RELEASE", "name": "value"}, "body") 进行签名,执行此函数会在请求参数中添加用于签名的X-Sdk-Date头和Authorization头。然后为请求添加x-Authorization头,值与Authorization头相同。 1 2 sig.Sign(r) r.headers["x-Authorization"] = r.headers["Authorization"] 访问API,查看访问结果。 1 2 3 resp = requests.request(r.method, r.scheme + "://" + r.host + r.uri, headers=r.headers, data=r.body) print(resp.status_code, resp.reason) print(resp.content)
-
参考示例2:根据关键字出现的次数设置告警 如果您希望在一定时间范围内日志关键字出现的次数达到指定次数时,才触发告警,则您可以参考本示例设置查询分析语句和SQL告警规则。以下示例仅供参考,请以实际业务为准。 使用“SELECT count(*) as Error”在目标日志流查询当前Error总共出现90次。 图4 查询结果 查询语句:选择查询时间范围为5分钟,然后执行如下语句“SELECT count(*) as Error”,统计5分钟内出现Error关键字的次数。更多搜索语法请参考SQL分析语法介绍。 图5 查询语句 告警通知:创建上述告警规则后,只要日志中出现Error关键字超过2次,您就可以在“告警列表”收到告警通知。您还可以单击告警名称,查看告警详情,进行溯源。 图6 告警报错
-
SDK列表 表1提供了E CS 服务支持的SDK列表,您可以在GitHub仓库查看SDK更新历史、获取安装包以及查看指导文档。 表1 SDK列表 编程语言 Github地址 参考文档 Java huaweicloud-sdk-java-v3 Java SDK使用指导 Python huaweicloud-sdk-python-v3 Python SDK使用指导 Go huaweicloud-sdk-go-v3 Go SDK使用指导 NodeJs huaweicloud-sdk-nodejs-v3 NodeJs SDK使用指导 .NET huaweicloud-sdk-net-v3 .Net SDK使用指导 PHP huaweicloud-sdk-php-v3 PHP SDK使用指导 C++ huaweicloud-sdk-cpp-v3 C++ SDK使用指导
共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
推荐文章