华为云用户手册
-
步骤4:业务设计 步骤1:基本配置、步骤2:框架配置和步骤3:生成策略中参数,只需要用户根据自身业务直接在界面进行勾选配置。而业务设计需要用户根据实际的需求,进行业务模型的设计和配置。 例如,创建一个简单的订单系统,订单系统中包括用户(User)、订单(Order)和订单详情(OrderDetail)三个业务对象,且三个对象之间存在聚合关系,即用户存在时,订单才会存在,订单存在时,订单详情才会存在。同时一个用户可以关联多个订单,订单通过单号进行标识,一个订单又可以关联多个商品,例如手机、耳机等,商品可以记录数量。实现上述业务逻辑,需要进行如下设计: 在业务设计页面,拖拽所需的对象到设计区,并修改对象名称。 AstroPro提供了BO、Abstract BO和Value Object三种类型的对象,请根据业务需求进行选择。 BO:业务对象,业务对象映射到服务中的一个实体,对应数据库中的一张表。 Abstract BO:抽象对象,不能实例化,没有对应的数据库表,需要和业务对象有个继承的操作。例如,业务对象A继承一个抽象对象B,则B中的字段都会被A继承过来。 Value Object:值对象,不能单独存在,需要和业务对象建立聚合的关系。 本示例中,拖拽三个BO对象到设计区,选中对应的BO,修改对象名称为User、Order和OrderDetail。 图1 拖拽三个BO到设计区 设置对象属性。 本示例中,因为一个用户需要关联多个订单,订单通过单号进行标识,一个订单又可以关联多个商品,商品可以记录数量。所以需要为“User”添加“name(用户名)”字段,用于记录用户信息。为“Order”添加“orderNo(订单编号)”字段,用于记录订单的编号。为“OrderDetail”添加“product(商品)”、“amount(数量,integer类型)”字段,分别用于记录商品的详情和商品的数量。 图2 为User对象添加name 图3 为Order添加orderNo 图4 OrderDetail添加product和amount 建立对象之间的关系。 AstroPro提供了一对多、多对多、聚合、树递归和继承五大关系,请根据自身业务需求进行选择。各对象间关系详细介绍,请参见对象间关系。 本示例中的订单系统,当用户存在时,订单才会存在,订单存在时,订单详情才会存在,此时需要为三个对象之间建立聚合关系。聚合关系中,次要方必须依赖首要方,任何对于次要方的操作首先要经过首要方才能继续往下操作。在User和Order的聚合关系中,User为首要方,Order为次要方,即用户存在时,订单才会存在。在Order和OrderDetail的聚合关系中,Order为首要方,OrderDetail为次要方,即订单存在时,订单详情才会存在。 图5 设置对象间关系 设置完成后,单击“下一步”,进行服务依赖设置。 父主题: 编辑服务
-
步骤3:生成策略 生成策略和基本配置、框架配置一样,需要您根据实际情况进行勾选配置,不同的配置会呈现不同的效果。 API设置。 图1 API设置 Json序列化 小驼峰:序列化后的json属性名,采用驼峰格式。 下划线:序列化后的json属性名,采用下划线连接单词。 标准响应体:返回的响应体是否使用标准样式。 { "code": 200, "msg": "success", "data": { "name": "zhangsan", "birthday": "1990-01-01", "other_properties": "..." } } Web框架模型:生成基于spring-webmvc的API层。 关闭API中根对象前缀:设置为“是”时,sharding bo的API前面不需要添加root bo的路径。 关闭API中根对象前缀为Astro Pro专业版/企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。 查询参数阈值:设置查询参数阈值,值为“0”时不生效。当查询参数大于该阈值时,将多个查询参数转换为对象。 设置代码风格。 图2 设置代码风格 配置文件格式:配置spring boot properties文件格式。 yaml :配置文件使用yaml格式。 properties :配置文件使用properties格式。 Lombok插件:是否为DO、DTO或QO定义类自动生成Lombok注解。 工程目录:设置生成代码的工程目录样式,默认为DDD。 单Module:工程目录结构只有一个模块。 base/service:工程目录结构包含base和service两个模块。 DDD:和单Module一样,工程目录结构只有一个模块。 图3 工程目录不同类型设置效果 module添加服务名前缀:配置为“是”时,模块名称前会添加服务名前缀。 图4 开启前后效果 设置部署信息。 图5 设置部署信息 服务部署脚本 配置服务部署脚本为Astro Pro专业版/企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。 对接CCE部署和ServiceStage部署时,生成的代码中会包含如下内容: 根目录中会增加“ .cam”文件夹,包含“cam.yml”和“variables.yml”文件。 service模块的“application.yam”文件中,会增加“server.tomcat”配置参数。 dockerfile脚本会做相应的修改。 服务打包方式 jar:打成jar包。jar通常包含一些Java类文件、相关元数据和资源,在声明了Main_class后可使用java命令运行。 war:打成war包。war是Java Web应用程序的标准打包格式,war是一个Web模块,包括WEB-INF目录,可直接运行于Web容器中。 性能测试。 性能测试配置为Astro Pro专业版/企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。 图6 性能测试 CodeArts性能测试:是否使用CodeArts PerfTest进行性能测试。性能测试CodeArts PerfTest是一项为基于HTTP/HTTPS/TCP/UDP/HLS/RTMP/WEBSOCKET/HTTP-FLV等协议构建的云应用提供性能测试的服务,支持快速模拟大规模并发用户的业务高峰场景,可以很好的支持报文内容和时序自定义、多事务组合的复杂场景测试,测试完成后会为您提供专业的测试报告呈现您的服务质量。更多关于CodeArts PerfTest的介绍,请参见性能测试CodeArts PerfTest。 代码架构看护测试:是否启用看护代码架构,看护代码的分层调用、命名规范和注解规范等。“代码架构看护测试”设置为“是”时,在代码中会生成一个“test”目录。 图7 开启代码结构看护测试效果 租户配置。 租户配置为Astro Pro专业版/企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。 图8 租户配置 多租模型:是否支持多租户资源隔离。 Tenant:支持多租模式,BO级多租配置multiTenant生效,开启BO级多租的业务对象必须关联到租户,包含租户id字段,租户id字段可自定义名称。 否:无内置租户模型。 租户验证方式:设置租户ID资源获取方式。“多租模型”设置为“Tenant”时,才显示该配置。 Header:使用header头携带方式传入tenantId。 Token:使用token方式传入tenantId。 设置完成后,单击“下一步”,进入业务设计页面。 父主题: 编辑服务
-
步骤1:基本配置 基本信息中配置的内容会呈现在代码中,需用户根据实际情况进行勾选配置。 在服务列表中,单击新增一个服务中已创建服务后的“编辑”。 在基本配置中,按需进行设置。 图1 基本配置 基本配置:若本地已有配置好的服务元数据,可通过单击“导入元数据”,直接导入。 微服务名称:自动关联新增一个服务中创建的服务名称。 Group ID:服务所属项目中的组ID,会自动关联新建项目中Group的值。在Maven项目中用作工程组的标识,Group ID在一个组织或项目中通常是唯一的。 Package:设置生成代码的顶层包名,会自动关联新建项目中Package的值。 Artifact ID:在Maven项目中用作工程的标识,通常是工程的名称。 版本:在Maven项目中用作工程的版本号。 框架:选择微服务使用的开发框架,支持DEVSPORE(JDK 8 + SpringBoot 2)和DEVSPORE(JDK 17 + SpringBoot 3)。 DEVSPORE(JDK 8 + SpringBoot 2):生成JDK8+SpringBoot2的代码框架。 DEVSPORE(JDK 17 + SpringBoot 3):生成JDK17+SpringBoot3的代码框架。 在详细配置中,配置服务的详细信息。 图2 详细配置 服务类型:当前仅支持创建原子服务。原子服务是指对外提供业务对象管理API,有独立数据存储(一般为独立数据库)的服务。原子服务之间可以相互调用。 服务组:选择服务所属的分组。如何创建服务组,请参见新建服务组。 服务单元化策略:服务在子域内的单元化策略。服务单元化策略必须在一个子域内定义,不能跨子域。 SINGLE:即单库,无论子域是否进行单元化部署,该服务只在一个单元(一般以region为单元)内部署。 ROOTED:根服务,包含根业务对象的服务,每个子域最多有一个根服务。 SHARDING:分片服务,必须按照根服务的根业务对象的维度对数据进行分片,和根服务使用同样的数据单元化策略。只有子域中包含根服务的时候,才允许有分片服务;一个子域可以包含的分片服务数量为0..n。分片服务有两种方式和根服务建立关系:可以通过建立根维度映射表,其它sharding表外键引用它的方式。也可以直接为每个表加一个根维度表id字段。 API版本:服务的API版本,默认为新增一个服务时配置的版本,如果需要升级API的版本,请参见升级API版本。 是否启用扩展拦截:通过引入devspore-horizon插件,用户自定义继承抽象类Approve和添加配置,在请求进入和返回时增强处理。您可调用DevSpore预置的插件,也可以使用自己开发的插件,自定义插件可参考如何自定义devspore-horizon插件。 启用扩展拦截时,自动在pom文件中引入devspore-horizon插件,并在所有service实现类的方法上添加“@Extension”注解。同时在plugin目录下,生成“DefaultRequestPlugin.java”示例文件。 使用插件时,用户需要在配置文件中添加devspore.horizon.processors,即配置自己编写的扩展插件注入到spirng中的名称,多个插件之间使用英文逗号隔开,扩展插件需要继承com.huawei.devspore.horizon.approver.Approve抽象类,并重写其中的doApprove方法。 启用扩展拦截仅专业版及以上套餐支持,如果您需要使用此功能,请升级Astro Pro实例版本。 客户端配置。 客户端配置仅专业版及以上套餐支持,如果您需要使用此功能,请升级Astro Pro实例版本。 是否生成客户端:是否生成客户端的代码。开启后,会生成服务的客户端代码,如图3。 图3 生成客户端的代码 客户端类型:目前仅支持“OPEN_FEIGN” 设置完成后,单击“下一步”,进入框架配置页面。 父主题: 编辑服务
-
了解服务创建流程 在AstroPro中创建一个服务的流程,如图1所示。 图1 创建服务流程图 新增一个服务 创建一个空服务,并指定服务的版本。创建服务前,请确保已创建项目和服务组。 基本配置 设置服务框架、版本和单元化策略等信息,请根据实际业务直接在界面进行勾选。 框架配置 设置服务的架构、数据库、缓存和安全认证等信息,请根据实际业务直接在界面进行勾选。 生成策略 设置服务的API、代码风格、部署和性能测试等信息,请根据实际业务直接在界面进行勾选。 业务设计 基本配置、框架配置和生成策略需要用户根据自身业务的实际情况进行配置,配置不同生成的效果有所不同。业务设计是AstroPro的核心能力,是用户设计自己业务的基础。 服务依赖 通常情况下,一个应用不是一个单独的服务,可能由多个服务共同组成。这些服务之间可能存在一些跨服务的调用,此时就需要通过添加依赖服务,把这些服务的客户端集成过来。 生成服务代码 根据配置的业务模型,生成服务的代码。
-
了解构建流程 在AstroPro中,用户通过业务建模,可生成高可用、高可靠、以及安全稳定的企业级IT应用框架。业务建模是指通过业务设计,将实际业务涉及的对象和行为转换为元数据中的对象、对象关系、服务依赖等构成的模型,通过模型生成服务,实现业务需求。 使用AstroPro创建企业核心应用的流程,如图1所示。 图1 创建企业核心应用流程图 创建项目 项目是使用AstroPro核心业务的入口。在使用AstroPro前,需要先创建一个项目。 创建服务组 服务组用于对项目中的服务进行分组,一般一个分组对应一个研发团队。创建项目后,默认会创建一个和项目同名的服务组,所有新建服务默认在此分组下。 添加服务 在新增服务界面,通过简单的配置,完成服务框架的搭建。 编辑服务 添加服务的操作,相当于为服务搭建了一个框架。如果需要服务实现某些特定的功能,还需要您根据业务需求,对服务进行业务模型配置。 生成服务代码 基于配置的业务模型,生成服务的基本代码。代码生成后,会提供一个压缩包,供您直接使用。 父主题: 创建企业核心应用
-
购买实例 进入购买Astro企业应用实例页面。 “实例规格”选择“专业版”,其他参数按需进行设置,单击“立即购买”。 图1 选择购买规格 确认订单无误后,单击“去支付”。 以购买专业版一年为例,若为基础版,此处配置费用为“0”。 图2 确认订单 选择支付方式,单击“确认付款”,完成支付。 订单支付成功后,单击“返回Astro企业应用控制台”。 在Astro企业应用控制台中,可以查看到Astro企业应用的实例状态。当“实例状态”变为“运行中”时,说明实例已安装完成,可以正常使用Astro企业应用。 图3 查看实例状态
-
使用说明 在使用AstroPro前,您需要购买一个AstroPro实例。AstroPro实例是一个独立的资源空间,所有的操作都是在实例内进行,不同实例间的资源相互隔离。 相对于基础版实例,专业版实例提供了更多的应用及实体功能,可满足中大型企业的复杂管理需求。除此之外,购买专业版实例时或购买实例后,支持对资源进行扩容。专业版和基础版实例支持的特性差异,请参见产品规格差异。为了便于您更好的了解AstroPro,本指南中操作及截图均以专业版实例为例进行介绍。
-
购买扩容包 扩容包仅适用于在购买专业版的基础上使用,不可单独购买和退订。扩容包的使用截止时间与主资源的截止时间保持一致。 参考购买实例中操作,购买AstroPro专业版实例。 在已购买的实例中,单击“操作”,选择“扩容”。 图4 选择扩容 在购买扩容包页面,设置购买数量,单击“立即购买”。 一个资源扩容包,包含用户数50个、应用数20个、实体个数200个,请按需设置购买数量。 图5 购买扩容包 选择支付方式,单击“确认付款”,完成订单支付。 返回AstroPro服务控制台,在已购买的实例中,单击“进入首页”,查看扩容后的资源规格。 图6 查看扩容后规格
-
4、熟悉如何进行业务设计 在AstroPro中,用户通过业务设计,可生成高可用、高可靠、以及安全稳定的企业级IT应用框架。 对象:对象可以理解为数据库中创建的一个表。每个对象对应一张数据库表,用于保存业务系统需要的配置数据和业务数据。对象可以存储组织或业务特有的数据,您可以围绕对象这一核心,定义相关的字段、字段校验规则、界面样式、字段变更时的触发事件等。如果把待开发的业务系统比作一部电影,对象就是电影中的各个角色,需要勾勒角色的外貌、性格特点、人物关系和所经历的剧情。 AstroPro提供了BO、Abstract BO和Value Object三种类型的对象,请根据业务需求进行选择。 BO:业务对象,业务对象映射到服务中的一个实体,对应数据库中的一张表。 Abstract BO:抽象对象,不能实例化,没有对应的数据库表,需要和业务对象有个继承的操作。例如,业务对象A继承一个抽象对象B,则B中的字段都会被A继承过来。 Value Object:值对象,不能单独存在,需要和业务对象建立聚合的关系。 对象间关系:关系描述了不同元素之间的关联和联系,在AstroPro中您可以定义一对多、多对多、聚合和继承等关系。
-
3、了解AstroPro中的项目、服务组与服务之间的关系 项目是使用AstroPro核心业务的入口。服务组用于对项目中的服务进行分组,一般一个分组对应一个研发团队。服务组创建后,即可为项目添加服务。服务是业务概念,即提供某种服务的某个进程。每一个服务都具有自主运行的业务功能,对外开放不受语言限制的API,多个服务组成应用程序。 在AstroPro中,项目、服务组和服务之间的关系,如图1所示。 图1 项目、服务组与服务的关系
-
AstroPro权限 默认情况下,新建的 IAM 用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 AstroPro部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京4)对应的项目(cn-north-4)中设置相关权限,并且该权限仅对此项目生效。如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问AstroPro时,需要先切换至授权区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能,定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。 如表1所示,包括了AstroPro的所有系统权限。 表1 AstroPro系统权限 策略名称 描述 类别 策略内容 Astro Pro FullAccess Astro企业应用的管理员权限,拥有该权限的用户可以使用服务的所有功能。 系统策略 Astro Pro FullAccess策略内容 Astro Pro InstanceManagement Astro企业应用的实例管理权限,拥有该权限的用户可以创建和管理实例。 系统策略 Astro Pro InstanceManagement策略内容 表2列出了AstroPro常用操作与系统策略的授权关系,您可以参照该表选择合适的系统策略。 表2 AstroPro操作与系统策略关系 操作 Astro Pro FullAccess Astro Pro InstanceManagement 查询商品可售卖周期 √ √ 查询订单信息 √ √ 订购询价 √ √ 查询实例信息 √ √ 变更询价 √ √ 云服务到期查询 √ √ 购买实例 √ √ 购买扩容包 √ √ 实例升级 √ √ 实例冻结 √ √ 实例解冻 √ √ 删除实例 √ √
-
Astro Pro InstanceManagement策略内容 { "Version": "1.1", "Statement": [ { "Action": [ "astropro:instance:*" ], "Effect": "Allow" } ] }
-
新服务构建 应用场景 应用场景复杂,缺乏软件架构设计能力,以及微服务开发能力。 开发能力不足,缺乏编码规范和安全编码意识。 对云上数据库、中间件和存储等服务不了解,缺乏云上服务对接能力。 价值 根据用户的诉求,快速帮助用户生成满足DDD领域驱动设计的框架代码,并且内置稳定的安全防护能力和编码规范、API规范、数据规范,极大提升了用户开发效率和开发代码质量。 优势 生成满足DDD领域驱动设计的框架代码,开发人员更加专注于业务问题的解决,提高代码质量和开发效率,并且更好地支持不断演化的业务需求。 内置稳定的安全防护能力和编码规范、API规范、数据规范,极大提升了开发代码质量。 内置云服务对接能力,快速对接多种云服务。
-
平台预置云服务中间件接入、服务治理、通用基础能力提供 提供框架级内置组件,可结合建模业务使用和单独使用。 中间件&高可用增强 内置中间件增强能力,如容灾切换、消息高可靠等,兼容开源解决方案。 云服务接入 内置云服务对接能力,零码完成云服务的对接,助力服务低成本达成云原生、应用现代化等目标。 服务治理能力 开源服务治理能力基础上增强依赖降级、可观测等易用性强能力,大幅提升企业应用可治理能力。 应用通用基础能力 提供标准通用基础能力,包括标准三方件及依赖管理可快速解决版本漏洞、安全特性及日志跟踪等能力。
-
什么是Astro企业应用 Astro企业应用(Astro Pro,简称AstroPro)是Astro面向企业数字化转型提供的元数据驱动的企业应用一站式构建平台。为企业SaaS应用提供端到端开发管理平台,沉淀通用能力,加快应用构建,差异场景灵活扩展,助力业务创新。AstroPro通过元数据多租,高低代码协同等能力,快速构建企业核心业务应用,提高多层级/多分支企业的应用构建效率。 图1 AstroPro总体架构图
-
请求示例 批量添加镜像标签,其中,标签键为“key1”对应的值为“value1”、标签键为“key2”对应的值为“value2”。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 POST https://{Endpoint}/v2/fd73a4a14a4a4dfb9771a8475e5198ea/images/67e17426-359e-49fb-aa12-0bd1756ec240/tags/action { "tags": [{ "value": "value1", "key": "key1" }, { "value": "value2", "key": "key2" }, { "value": "", "key": "key3" }], "action": "create" } 批量删除镜像标签,其中,标签键为“key1”对应的值为“value1”、标签键为“key2”对应的值为“value2”。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 POST https://{Endpoint}/v2/fd73a4a14a4a4dfb9771a8475e5198ea/images/67e17426-359e-49fb-aa12-0bd1756ec240/tags/action { "tags": [{ "value": "value1", "key": "key1" }, { "value": "value2", "key": "key2" }, { "value": "", "key": "key3" }], "action": "delete" }
-
请求消息 请求参数 参数 是否必选 参数类型 描述 tags 是 Array of objects 要操作的标签列表。详情请参见表2。 action 是 String 要进行的标签操作,区分大小写。支持create、delete,分别用于批量地创建/更新、删除标签。 表2 tags数据结构说明 参数 是否必选 参数类型 描述 key 是 String 标签的键,键不能为空。 value 是 String 标签的值。
-
约束与限制 每个标签由键值对组成,标签的key的长度不超过36个字符,value的长度不超过43个字符。key不能为空或者空白字符串,value不能为空,但可以是空白字符串。 单个镜像最多添加10个标签。 请求体中的多个标签的key不允许重复。 此接口为幂等接口: 创建时,如果创建的标签已经存在,即key相同而value不同,则更新对应标签;如果创建的标签已经存在,key/value均相同,则不进行重复添加,视为添加成功。 删除时,如果指定的标签不存在,则默认视为删除成功。 批量删除时对key、value的限制: 删除时,对标签的key、value不做字符集范围校验,key不允许为空或空白字符串;value为可选,且不对value做校验。如果要删除的标签不存在,视为删除成功,不报错。删除时,对标签的key、value做长度校验,标签的key不超过127,value不超过255。
-
API概览 镜像服务 所提供的接口分为IMS接口与OpenStack原生接口。推荐您使用IMS接口。 通过配合使用镜像服务提供的接口和OpenStack原生接口,您可以完整地使用镜像服务的所有功能。例如制作私有镜像,可以使用OpenStack原生接口,也可以使用IMS接口进行操作。 表1 接口说明 类型 子类型 说明 IMS接口 镜像 可以实现镜像的制作、镜像列表查询、镜像导出等操作。 镜像标签 对私有镜像进行自定义标记。通过镜像标签,用户可以自由地对私有镜像分类管理。 镜像共享 用户可以将私有镜像共享给其他用户使用。通过镜像共享的接口完成镜像共享的相关操作。 镜像复制 通过Region内复制镜像实现加密镜像与非加密镜像的转换;通过跨Region复制镜像实现镜像在两个区域间复制,帮助用户实现区域间的业务迁移。 镜像配额 查询租户在当前Region的私有镜像的配额数量。 镜像任务 查询异步任务接口执行情况以及异步任务进度。 OpenStack原生接口 镜像 可以实现镜像的制作、镜像列表/详情查询、镜像导出等操作。 镜像标签 对私有镜像进行自定义标记。通过镜像标签,用户可以自由地对私有镜像分类管理。 镜像视图 镜像视图是提供给用户查询镜像属性详情的接口,比如属性的取值类型、用途等。通过镜像视图,用户可以从宏观上对镜像的基本情况进行了解。 镜像共享 用户可以将私有镜像共享给其他用户使用。通过镜像共享的接口完成镜像共享的相关操作。 查询API版本信息 查询镜像服务当前所用的API版本。
-
请求消息 请求参数 可以把name、container_format、disk_format、status、size_min、size_max、changes-since作为uri参数,过滤查询结果。 参数 是否必选 参数类型 描述 name 否 String 镜像名称。name参数说明请参考镜像属性。 container_format 否 String 镜像容器类型 disk_format 否 String 镜像文件格式 status 否 String 镜像状态 size_min 否 String 镜像不小于 size_max 否 String 镜像不大于 changes-since 否 String 镜像最后更新时间
-
响应消息 响应参数 参数 参数类型 描述 status String 镜像状态 virtual_size Integer 镜像虚拟大小 name String 镜像名称。name参数说明请参考镜像属性。 deleted Boolean 镜像是否已删除 container_format String 镜像容器类型 created_at String 镜像创建时间 disk_format String 镜像文件类型 updated_at String 镜像更新时间 properties Object 镜像属性 owner String 镜像所属租户 protected Boolean 镜像是否受保护 min_ram Integer 运行镜像所需最小内存,单位MB checksum String 镜像校验和,上传镜像文件后存在 min_disk Integer 运行镜像所需最小磁盘,单位GB is_public Boolean 是否为公共镜像 deleted_at String 镜像删除时间 id String 镜像UUID size Integer 镜像大小,上传镜像文件后存在 响应样例 HTTP/1.1 200 OK 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 Content-Type: application/json; charset=UTF-8 Content-Length: 495 X-Openstack-Request-Id: req-68327dda-8078-41fe-b091-01a09ec073da Date: Mon, 23 May 2016 02:32:28 GMT { "images": [ { "status": "active", "deleted_at": null, "name": "cirros", "deleted": false, "container_format": "bare", "created_at": "2016-05-22T06:04:20.425843", "disk_format": "qcow2", "updated_at": "2016-05-22T06:04:22.719791", "min_disk": 0, "protected": false, "id": "3c3d1d01-b48a-4639-8a88-08be3b9b5d78", "min_ram": 0, "checksum": "64d7c1cd2b6f60c92c14662941cb7913", "owner": "23f4cb75768d4febb39542ef6fe169f3", "is_public": true, "virtual_size": null, "properties": { }, "size": 13167616 } ] }
-
功能介绍 该接口用于上传用户本地的镜像文件到云平台。使用该接口上传镜像时,镜像文件大小需要小于2GB,超过2GB的镜像文件参考注册镜像进行操作。 了解更多关于使用外部文件创建镜像的相关内容,请参见“通过外部镜像文件创建Windows系统盘镜像”、“通过外部镜像文件创建Linux系统盘镜像”。 使用该接口上传镜像的具体步骤如下: 准备待上传的镜像,支持的镜像格式:QCOW2、VMDK、VHD、RAW、VHDX、QED、VDI、QCOW、ZVHD2和ZVHD。 使用创建镜像元数据(OpenStack原生)创建镜像元数据。调用成功后,保存该镜像的ID。 使用2得到的镜像ID,上传支持格式的镜像文件。
-
URI PUT /v2/images/{image_id}/file 参数说明请参见表1。 表1 参数说明 参数 是否必选 参数类型 描述 image_id 是 String 镜像ID。 image_id为用户调用创建镜像元数据接口所创建出来镜像的id,使用其他方式创建的镜像id会导致上传失败。 上传接口调用成功后,请根据镜像id查询镜像的状态。镜像状态变为active表示镜像上传成功。 AK/SK签名认证方式仅支持消息体大小在12MB以内,12MB以上的请求请使用Token认证。
-
请求示例 上传本地镜像文件。 PUT https://{Endpoint}/v2/images/84ac7f2b-bf19-4efb-86a0-b5be8771b476/file 如果使用curl命令方式调用接口,样例参考如下: curl -i --insecure 'https://IP/v2/images/84ac7f2b-bf19-4efb-86a0-b5be8771b476/file' -X PUT -H "X-Auth-Token: $mytoken" -H "Content-Type:application/octet-stream" -T /mnt/userdisk/images/suse.zvhd
-
响应消息 响应参数 参数 参数类型 描述 first String 查询首页的URL。 next String 查询下一页的URL。当查询镜像列表最后一页时,不存在next。 schema String 描述镜像列表模式的URL。 images Array of objects 资源类型。 具体请参见表2。 表2 images字段说明 参数 参数类型 描述 __backup_id String 备份ID。如果是备份创建的镜像,则填写为备份的ID,否则无此参数。 __data_origin String 镜像来源。公共镜像为空。 __description String 镜像描述信息。 __image_location String 镜像的存储位置。 __image_size String 镜像文件的大小,单位为字节。目前取值为大于0的字符串。 __image_source_type String 镜像后端存储类型,目前只支持uds。 __is_config_init String 是否完成了初始化配置。取值为“true”或“false”。 __isregistered String 镜像是否可用,取值为true,扩展接口会默认为true,普通用户只能查询取值为true的镜像。 __lazyloading String 镜像是否支持延迟加载。取值为true、false、True或False。 __originalimagename String 父镜像ID。公共镜像或通过文件创建的私有镜像,取值为空。 __imagetype String 镜像类型,目前支持以下类型: 公共镜像:gold 私有镜像:private 共享镜像:shared 市场镜像:market protected Boolean 镜像是否是受保护,查询公共镜像时候取值为true,查询私有镜像可以不指定。 virtual_env_type String 镜像使用的环境类型:FusionCompute、Ironic、DataImage、IsoImage。 如果是云服务器镜像(即系统盘镜像),则取值为FusionCompute。 如果是数据盘镜像,则取值是DataImage。 如果是裸金属服务器镜像,则取值是Ironic。 如果是ISO镜像,则取值是IsoImage。 virtual_size Integer 目前暂时不使用。 visibility String 是否被其他租户可见。取值如下: public:表示公共镜像。 private:表示私有镜像。 shared:表示共享镜像。 owner String 镜像属于哪个租户。 id String 镜像ID。 status String 镜像状态。取值如下: queued:表示镜像元数据已经创建成功,等待上传镜像文件。 saving:表示镜像正在上传文件到后端存储。 deleted:表示镜像已经删除。 killed:表示镜像上传错误。 active:表示镜像可以正常使用。 name String 镜像名称。name参数说明请参考镜像属性。 container_format String 容器类型。 disk_format String 镜像格式,目前支持zvhd2、vhd、zvhd、raw、qcow2、iso。非iso格式时默认值是zvhd2。 min_ram Integer 镜像运行需要的最小内存,单位为MB。参数取值依据云服务器的规格限制,一般为0。 云服务器的规格限制,请参见规格清单。 max_ram String 镜像支持的最大内存,单位为MB。 min_disk Integer 镜像运行需要的最小磁盘容量,单位为GB 。linux操作系统取值为10~1024GB,Windows操作系统取值为20~1024GB。 __os_bit String 操作系统位数,一般取值为32或者64。 __os_feature_list String 镜像附加属性。该属性采用JSON格式来标识镜像支持的高级特性清单。 __platform String 镜像平台分类,取值为Windows、Ubuntu、Red Hat、SUSE、CentOS、Debian、OpenSUSE、Oracle Linux、Fedora、Other、CoreOS和EulerOS。 schema String 镜像视图。 self String 镜像链接信息。 size Integer 目前暂时不使用。 __os_type String 镜像系统类型,取值为Linux、Windows、Other。 __os_version String 操作系统具体版本。 tags Array of strings 镜像标签列表,提供用户可以自定义管理私有镜像的能力。 __support_kvm String 如果镜像支持KVM,取值为true,否则无此属性。 __support_xen String 如果镜像支持XEN,取值为true,否则无此属性。 __support_largememory String 表示该镜像支持超大内存。如果镜像支持超大内存,取值为true,否则无此属性。 __support_diskintensive String 表示该镜像支持密集存储。如果镜像支持密集存储性能,则值为true,否则无此属性。 __support_highperformance String 表示该镜像支持高计算性能。如果镜像支持高计算性能,则值为true,否则无此属性。 __support_xen_gpu_type String 表示该镜像是支持XEN虚拟化平台下的GPU类型。支持GPU加速型实例的镜像操作系统类型请参考表2。如果不支持XEN虚拟化下GPU类型,无此属性。该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_kvm_gpu_type String 表示该镜像是支持KVM虚拟化平台下的GPU类型,取值参考表3。如果不支持KVM虚拟化下GPU类型,无此属性。该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_xen_hana String 如果镜像支持XEN虚拟化下HANA类型,取值为true。否则,无此属性。 该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_kvm_infiniband String 如果镜像支持KVM虚拟化下Infiniband网卡类型,取值为true。否则,无此属性。 该属性与“__support_xen”属性不共存。 __productcode String 市场镜像的产品ID。 __root_origin String 表示当前镜像来源是从外部导入。取值样例:file。 __sequence_num String 表示当前镜像对应云服务器的系统盘插槽位置。 取值样例:0。 __support_fc_inject String 表示当前镜像支持Cloud-Init密码/密钥注入方式。 如果取值为“true”,表示该镜像不支持Cloud-Init注入密码/密钥,其他取值时表示支持Cloud-Init注入密钥/密码。 说明: 该特性参数只对E CS 系统盘镜像生效,其他类型镜像不生效。 __is_offshelved String 表示当前市场镜像是否下架。 true:已下架 false:未下架 created_at String 创建时间。格式为UTC时间。 updated_at String 更新时间。格式为UTC时间。 active_at String 镜像状态变为正常的时间。 checksum String 目前暂时不使用。 hw_firmware_type String 云服务器的启动方式。目前支持: bios:表示bios引导启动。 uefi:表示uefi引导启动。 file String 镜像文件下载和上传链接。 enterprise_project_id String 表示当前镜像所属的企业项目。 取值为0或无该值,表示属于default企业项目。 取值为UUID,表示属于该UUID对应的企业项目。 _sys_enterprise_project_id String 表示当前镜像所属的企业项目。 取值为0或无该值,表示属于default企业项目。 取值为UUID,表示属于该UUID对应的企业项目。 __support_arm String 是否是ARM架构类型的镜像。取值为“true”或者“false”。 __support_agent_list String 镜像是否支持主机安全或主机监控。 hss:主机安全 ces:主机监控 取值样例: "__support_agent_list": "hss,ces" 说明: 如果查询结果无此字段,表示镜像不支持主机安全或主机监控。 __account_code string 收费镜像标识。 __support_amd String 是否是AMD架构类型的镜像。取值为“true”或者“false”。 __system__cmkid String 加密镜像所使用的密钥ID。 hw_vif_multiqueue_enabled String 镜像是否支持网卡多队列。取值为“true”或者“false”。 响应样例 STATUS CODE 200 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 { "schema": "/v2/schemas/images", "next": "/v2/images?__isregistered=true&marker=0328c25e-c840-4496-81ac-c4e01b214b1f&__imagetype=gold&limit=2", "images": [ { "schema": "/v2/schemas/image", "min_disk": 100, "created_at": "2018-09-06T14:03:27Z", "__image_source_type": "uds", "container_format": "bare", "file": "/v2/images/bc6bed6e-ba3a-4447-afcc-449174a3eb52/file", "updated_at": "2018-09-06T15:17:33Z", "protected": true, "checksum": "d41d8cd98f00b204e9800998ecf8427e", "id": "bc6bed6e-ba3a-4447-afcc-449174a3eb52", "__isregistered": "true", "min_ram": 2048, "__lazyloading": "true", "owner": "1bed856811654c1cb661a6ca845ebc77", "__os_type": "Linux", "__imagetype": "gold", "visibility": "public", "virtual_env_type": "FusionCompute", "tags": [], "__platform": "CentOS", "size": 0, "__os_bit": "64", "__os_version": "CentOS 7.3 64bit", "name": "CentOS 7.3 64bit vivado", "self": "/v2/images/bc6bed6e-ba3a-4447-afcc-449174a3eb52", "disk_format": "zvhd2", "virtual_size": null, "hw_firmware_type": "bios", "status": "active" }, { "schema": "/v2/schemas/image", "min_disk": 100, "created_at": "2018-09-06T14:03:05Z", "__image_source_type": "uds", "container_format": "bare", "file": "/v2/images/0328c25e-c840-4496-81ac-c4e01b214b1f/file", "updated_at": "2018-09-25T14:27:40Z", "protected": true, "checksum": "d41d8cd98f00b204e9800998ecf8427e", "id": "0328c25e-c840-4496-81ac-c4e01b214b1f", "__isregistered": "true", "min_ram": 2048, "__lazyloading": "true", "owner": "1bed856811654c1cb661a6ca845ebc77", "__os_type": "Linux", "__imagetype": "gold", "visibility": "public", "virtual_env_type": "FusionCompute", "tags": [], "__platform": "CentOS", "size": 0, "__os_bit": "64", "__os_version": "CentOS 7.3 64bit", "name": "CentOS 7.3 64bit with sdx", "self": "/v2/images/0328c25e-c840-4496-81ac-c4e01b214b1f", "disk_format": "zvhd2", "virtual_size": null, "hw_firmware_type": "bios", "status": "active" } ], "first": "/v2/images?__isregistered=true&__imagetype=gold&limit=2" }
-
常用列表查询方法 公共镜像列表查询 GET /v2/images?__imagetype=gold&visibility=public&protected=true 私有镜像列表查询 GET /v2/images?owner={project_id} 可以使用的共享镜像列表 GET /v2/images?member_status=accepted&visibility=shared&__imagetype=shared 被拒绝的共享镜像列表 GET /v2/images?member_status=rejected&visibility=shared&__imagetype=shared 未接受的共享镜像列表 GET /v2/images?member_status=pending&visibility=shared&__imagetype=shared
-
URI GET /v2/images 可以在URI后面用‘?’和‘&’添加不同的查询条件组合,请参考请求样例。 如需使用OpenStack Queens版本API,请在请求消息头中包含X-Api-Version。当X-Api-Version取值大于M则返回Queens版本的结果,小于等于M,返回Mitaka版本结果 。 参数说明请参见表1。 表1 参数说明 参数 是否必选 参数类型 描述 __isregistered 否 String 镜像是否可用,取值为true,扩展接口会默认为true,普通用户只能查询取值为true的镜像。 __imagetype 否 String 镜像类型,目前支持以下类型: 公共镜像:gold 私有镜像:private 共享镜像:shared 市场镜像:market protected 否 Boolean 镜像是否是受保护,取值为true/false。一般查询公共镜像时候取值为true,查询私有镜像可以不指定。 visibility 否 String 是否被其他租户可见,取值如下: public:公共镜像 private:私有镜像 shared:共享镜像 owner 否 String 镜像属于哪个租户。 id 否 String 镜像ID。 status 否 String 镜像状态。取值如下: queued:表示镜像元数据已经创建成功,等待上传镜像文件。 saving:表示镜像正在上传文件到后端存储。 deleted:表示镜像已经删除。 killed:表示镜像上传错误。 active:表示镜像可以正常使用。 name 否 String 镜像名称,匹配规则为精确匹配。name参数说明请参考镜像属性。 container_format 否 String 容器类型。默认值是bare。 disk_format 否 String 镜像格式,目前支持zvhd2、vhd、zvhd、raw、qcow2、iso。非iso格式时默认值是zvhd2。 min_ram 否 Integer 镜像运行需要的最小内存,单位为MB。参数取值依据云服务器的规格限制,一般设置为0。 云服务器的规格限制,请参见规格清单。 min_disk 否 Integer 镜像运行需要的最小磁盘,单位为GB 。linux操作系统取值为10~1024GB,Windows操作系统取值为20~1024GB。 __os_bit 否 String 操作系统位数,一般取值为32或者64。 __platform 否 String 镜像平台分类,取值为Windows、Ubuntu、Red Hat、SUSE、CentOS、Debian、OpenSUSE、Oracle Linux、Fedora、Other、CoreOS和EulerOS。 marker 否 String 用于分页,表示从哪个镜像开始查询,取值为镜像ID。 limit 否 Integer 用于分页,表示查询几条镜像记录,取值为整数,默认返回25条镜像记录。 sort_key 否 String 用于排序,表示按照哪个字段排序。取值为镜像属性name、container_format、disk_format、status、id、size、created_at字段,默认为创建时间。 sort_dir 否 String 用于排序,表示升序还是降序,取值为asc和desc。与sort_key一起组合使用,默认为降序desc。 __os_type 否 String 镜像系统类型,取值为Linux、Windows、Other。 tag 否 String 标签,用户为镜像增加自定义标签后可以通过该参数过滤查询。 说明: 系统近期对标签功能进行了升级。如果之前添加的Tag为“Key.Value”的形式,则查询的时候需要使用“Key=Value”的格式来查询。例如:之前添加的tag为“a.b”,则升级后,查询时需使用“tag=a=b”。 member_status 否 String 成员状态。目前取值有accepted、rejected、pending。accepted表示已经接受共享的镜像,rejected表示已经拒绝了其他用户共享的镜像,pending表示需要确认的其他用户的共享镜像。需要在查询时,设置“visibility”参数为“shared”。 __support_kvm 否 String 如果镜像支持KVM,取值为true,否则无需增加该属性。 __support_xen 否 String 如果镜像支持XEN,取值为true,否则无需增加该属性。 __support_largememory 否 String 表示该镜像支持超大内存。如果镜像支持超大内存,取值为true,否则无需增加该属性。 __support_diskintensive 否 String 表示该镜像支持密集存储。如果镜像支持密集存储性能,则值为true,否则无需增加该属性。 __support_highperformance 否 String 表示该镜像支持高计算性能。如果镜像支持高计算性能,则值为true,否则无需增加该属性。 __support_xen_gpu_type 否 String 表示该镜像是支持XEN虚拟化平台下的GPU类型。支持GPU加速型实例的镜像操作系统类型请参考表2。如果不支持XEN虚拟化下GPU类型,无需添加该属性。该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_kvm_gpu_type 否 String 表示该镜像是支持KVM虚拟化平台下的GPU类型,取值参考表3。如果不支持KVM虚拟化下GPU类型,无需添加该属性。该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_xen_hana 否 String 如果镜像支持XEN虚拟化下HANA类型,取值为true。否则,无需添加该属性。 该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_kvm_infiniband 否 String 如果镜像支持KVM虚拟化下Infiniband网卡类型,取值为true。否则,无需添加该属性。 该属性与“__support_xen”属性不共存。 created_at 否 String 镜像创建时间。支持按照时间点过滤查询,取值格式为“ 操作符:UTC时间”。 其中操作符支持如下几种: gt:大于 gte:大于等于 lt:小于 lte:小于等于 eq:等于 neq:不等于 时间格式支持:yyyy-MM-ddThh:mm:ssZ或者yyyy-MM-dd hh:mm:ss 例如,查询创建时间在2018-10-28 10:00:00之前的镜像,可以通过如下条件过滤: created_at=lt:2018-10-28T10:00:00Z updated_at 否 String 镜像修改时间。支持按照时间点过滤查询,取值格式为 “ 操作符:UTC时间”。 其中操作符支持如下几种: gt:大于 gte:大于等于 lt:小于 lte:小于等于 eq:等于 neq:不等于 时间格式支持:yyyy-MM-ddThh:mm:ssZ或者yyyy-MM-dd hh:mm:ss 例如,查询修改时间在2018-10-28 10:00:00之前的镜像,可以通过如下条件过滤: updated_at=lt:2018-10-28T10:00:00Z
-
响应消息 响应参数 参数 参数类型 描述 resources Array of resource objects 镜像信息列表 total_count Integer 总记录数 表7 resource字段数据结构说明 参数 参数类型 描述 resource_id String 镜像ID resource_detail ResourceDetail object 镜像详情 tags Array of Tags objects 镜像的标签列表 resource_name String 镜像名称 表8 ResourceDetail object 名称 类型 必选 描述 status string 是 镜像状态 表9 resource_tag字段数据结构说明 参数 参数类型 描述 key String 标签的键 value String 标签的值 响应样例 action为count时的响应示例 STATUS CODE 200 1 2 3 { "total_count": 36 } action为filter时的响应示例 STATUS CODE 200 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 { "total_count": 36, "resources": [{ "resource_name": "test10002", "resource_detail": {"status": "active"}, "tags": [{ "value": "value4", "key": "key4" }, { "value": "valueXX", "key": "key3" }, { "value": "value2", "key": "key2" }, { "value": "value5", "key": "key5" }, { "value": "value8", "key": "key8" }, { "value": "valueXX", "key": "key6" }, { "value": "valueXX", "key": "key0" }, { "value": "value1", "key": "key1" }, { "value": "value7", "key": "key7" }, { "value": "valueXX", "key": "key9" }], "resource_id": "8693187d-1590-4f9f-ae34-eb9e3037cf68" }] }
-
请求示例 按照标签和总条数返回查询条件,查询镜像。 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 POST https://{Endpoint}/v2/fd73a4a14a4a4dfb9771a8475e5198ea/images/resource_instances/action { "action": "count", "matches": [{ "key": "resource_name", "value": "test100" }], "tags": [ { "key": "key3", "values": ["valueXX"] }], "tags_any": [ { "key": "key0", "values": ["valueXX"] }], "not_tags": [ { "key": "key9", "values": ["value9"] }], "not_tags_any": [{ "key": "key7", "values": ["value7"] }] } 按照标签和分页查询条件,查询镜像。 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 POST https://{Endpoint}/v2/fd73a4a14a4a4dfb9771a8475e5198ea/images/resource_instances/action { "action": "filter", "limit": "1", "offset": "0", "matches": [{ "key": "resource_name", "value": "test100" }], "tags": [ { "key": "key3", "values": ["valueXX"] }], "tags_any": [ { "key": "key0", "values": ["valueXX"] }], "not_tags": [ { "key": "key9", "values": ["value9"] }], "not_tags_any": [{ "key": "key7", "values": ["value7"] }] }
-
请求消息 请求参数 参数 是否必选 参数类型 描述 action 是 String 操作标识(区分大小写),支持filter、count。filter就是分页查询;count是只需按照条件将总条数返回即可。 tags 否 Array of objects 包含标签,最多包含10个key,每个key对应的values最多包含10个值,且key和values都不能重复。不能为空列表。 详情请参见表2。 tags_any 否 Array of objects 包含任意标签,最多包含10个key,每个key对应的values最多包含10个值,且key和values都不能重复。不允许为空列表,但可以不传递参数。 详情请参见表3。 not_tags 否 Array of objects 不包含标签,最多包含10个key,每个key对应的values最多包含10个值,且key和values都不能重复。不能为空列表。 详情请参见表4。 not_tags_any 否 Array of objects 不包含任意标签,最多包含10个key,每个key对应的values最多包含10个值,且key和values都不能重复。不能为空列表。 详情请参见表5。 without_any_tag 否 Boolean 不包含任意一个标签,该字段为true时查询所有不带标签的资源,此时忽略tag、not_tags、tags_any、not_tags_any字段。 limit 否 String 最大查询记录数(action为count时,此参数无效)。如果action为filter,则limit默认为10,最多为1000,不能为负数,最小值为1。 offset 否 String 索引位置, 从offset指定的下一条数据开始查询。 查询第一页数据时,不需要传入此参数(action为count时,此参数无效),如果action为filter,offset默认为0,不能为负数。 matches 否 Array of objects 搜索字段,key为要匹配的字段,如resource_name、resource_id等。value为匹配的值。多个matches的key不允许重复。不允许为空列表,但可以不传递参数。 详情请参见表6。 表2 tags字段数据结构说明 参数 是否必选 参数类型 描述 key 是 String 标签的键。最大长度127个unicode字符,key不能为空。 values 是 Array of strings 标签的值列表。每个值最大长度255个unicode字符,如果values为空列表,则标签的值可以是任意值。值列表中的值之间为或的关系。 表3 tags_any字段数据结构说明 参数 是否必选 参数类型 描述 key 是 String 标签的键。最大长度127个unicode字符,key不能为空。 values 是 Array of strings 标签的值列表。每个值最大长度255个unicode字符,如果values为空列表,则标签的值可以是任意值。值列表中的值之间为或的关系。 表4 not_tags字段数据结构说明 参数 是否必选 参数类型 描述 key 是 String 标签的键。最大长度127个unicode字符,key不能为空。 values 是 Array of strings 标签的值列表。每个值最大长度255个unicode字符,如果values为空列表,则标签的值可以是任意值。值列表中的值之间为或的关系。 表5 not_tags_any字段数据结构说明 参数 是否必选 参数类型 描述 key 是 String 标签的键。最大长度127个unicode字符,key不能为空。 values 是 Array of strings 标签的值列表。每个值最大长度255个unicode字符,如果values为空列表,则标签的值可以是任意值。值列表中的值之间为或的关系。 表6 matches字段数据结构说明 参数 是否必选 参数类型 描述 key 是 String 搜索的字段名称。合法值为resource_name、resource_id。 当字段名称为resource_name时,如果value为空字符串,做精确查询,否则按镜像名称全模糊查询。当字段名称为resource_id时,按镜像ID精确查询。 value 是 String 搜索的字段名称的对应值,不允许为空。每个值最大长度255个unicode字符。
共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
推荐文章