华为云用户手册
-
请求消息 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 消息体的类型(格式),默认取值为“application/json;charset=utf8”。 X-Auth-Token 是 String 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值。Token获取方式,请参考认证鉴权。 表3 请求Body参数 参数 是否必选 参数类型 描述 gray_release_type 是 String 泳道组灰度类型。 WEIGHT:基于流量比例进行全链路灰度。 CONTENT:基于内容进行全链路灰度。 swimlanes 是 Array of objects 泳道列表,请参考表4。 表4 swimlanes 参数 是否必选 参数类型 描述 rule_match_mode 否 String 路由规则匹配模式。当泳道组灰度类型为基于内容,即gray_release_type为CONTENT时生效。 ALL:匹配所有的规则。 ANY:匹配任一规则。 rules 否 Array of objects 路由规则。当泳道组灰度类型为基于内容,即gray_release_type为CONTENT时生效。请参考表5。 weight 是 Integer 泳道流量权重,范围在0-100之间。当泳道组灰度类型为基于流量,即gray_release_type为WEIGHT时生效。 id 是 String 泳道ID。 表5 rules 参数 是否必选 参数类型 描述 type 是 String 灰度匹配规则类型。当前只支持HEADER,即基于Header头进行匹配。 key 是 String 键。 value 是 String 值。 condition 是 String 匹配条件。 EXACT:精确匹配 PREFIX:前缀匹配。 REGEX:正则匹配。
-
响应示例 { "id": "9974a8b3-cbd7-4084-bac9-194f7d5ba3da", "name": "gray", "swimlane_group_id": "b76dad96-66cf-4ae7-aa55-11b6d630e777", "type": "GRAY", "tag": "gray", "weight": 0, "route_status": "DISABLED", "rule_match_mode": null, "project_id": "4008a952b3f44b5a919c9a48d90811f3", "rules": null, "creator": "test_user", "create_time": 1722928561358, "update_time": 1722928561358 }
-
响应消息 表4 响应参数 参数 参数类型 描述 id String 泳道ID。 name String 泳道名称。 swimlane_group_id String 所属的泳道组ID。 type String 泳道类型。 BASE:基线泳道。 GRAY:灰度泳道。 tag String 泳道标签,根据标签来控制流量的走向。 route_status String 泳道路由状态。 ENABLE:开启路由。 DISABLE:关闭路由。 rule_match_mode String 路由规则匹配模式。 当泳道组灰度类型为基于内容,即gray_release_type为CONTENT时生效。 ALL:匹配所有的规则。 ANY:匹配任一规则。 rules Array of objects 路由规则。当泳道组灰度类型为基于内容,即gray_release_type为CONTENT时生效。请参考表5。 weight Integer 泳道流量权重,范围在0-100之间。当泳道组灰度类型为基于流量,即gray_release_type为WEIGHT时生效。 project_id String 项目ID。 create_time Integer 创建时间。 update_time Integer 更新时间。 creator String 创建人。 表5 rules 参数 参数类型 描述 type String 灰度匹配规则类型。当前只支持HEADER,即基于Header头进行匹配。 key String 键。 value String 值。 condition String 匹配条件。 EXACT:精确匹配。 PREFIX:前缀匹配。 REGEX:正则匹配。
-
请求消息 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 消息体的类型(格式),默认取值为“application/json;charset=utf8”。 X-Auth-Token 是 String 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值。Token获取方式,请参考认证鉴权。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 泳道的名称。 由大小写英文字母、数字、中划线(-)、下划线(_)组成,并以大小写英文字母开头,大小写英文字母或者数字结尾,长度为2~64个字符。 tag 是 String 泳道的标签。 type 是 String 泳道的类型。当泳道组下没有泳道时,必须先创建基线泳道;当泳道组下已创建基线泳道时,只能创建灰度泳道。 BASE,基线泳道。 GRAY,灰度泳道。
-
步骤三:创建业务团队用户 单击“ IAM 身份中心”控制台左侧导航栏的“用户管理”,进入“用户管理”页面。 单击页面右上方的“创建用户”,进入创建用户页面。 配置用户信息(包括用户名、邮箱地址等,勾选“向用户发送一封包含密码设置说明的邮件”),配置完成后,单击页面右下角的“下一步”。 进入“分配用户组”页面,勾选要加入的业务团队用户组,将用户加入到用户组。配置完成后,单击页面右下角的“下一步”。 进入“确认创建”页面,确认配置无误后,单击页面右下角的“确定”,用户创建完成,用户列表中显示新创建的用户。
-
修改个人华为账号的密码 适用于修改个人华为账号(包括购买AppStage的租户开通者的个人华为账号、通过邀请成员加入组织的个人华为账号)的密码。为保障账号安全,建议定期更新密码。 鼠标光标移至右上角登录的用户名,弹出“账户信息”页面。 在“账号信息”页面,单击“修改密码”,进入华为账号的“账号与安全”页面。 在“安全中心”区域单击“重置账号密码”右侧“重置”。 在“重置账号密码”页面,输入旧密码、新密码及再次输入新密码,单击“确定”。 密码需满足以下要求: 至少8个字符。 至少包含字母和数字,不能包含空格。 密码强度:勿使用其他账号的密码。 如果忘记旧密码,可通过如下操作找回密码: 单击“忘记旧密码”。 在“找回密码”页面,输入华为账号(注册账号的手机号或邮件地址)。 输入图形验证码,单击“下一步”。 单击“获取验证码”,输入相应的邮件验证码或手机验证码,再单击“下一步”。 设置新密码并确认新密码,单击“确定”。 密码需满足以下要求: 至少8个字符。 至少包含字母和数字,不能包含空格。 密码强度:勿使用其他账号的密码。 如果您有其他设备使用此账号,设置新密码后需重新登录,以确保正常使用华为服务。
-
修改成员账号密码(通过OrgID创建的成员账号) 适用于通过添加成员加入组织的成员账号修改密码。为保障账号安全,建议定期更新密码。 登录AI原生应用引擎,鼠标光标移至右上角登录的用户名,弹出“账户信息”页面。 在“账户信息”页面,单击“修改密码”。 为确认是本人操作需进行身份验证,可选择手机短信验证码方式或邮件验证码方式。 如果该账号已同时绑定手机号码和邮箱,则可使用手机短信验证码方式或邮件验证码两种方式。 如果该账号仅绑定手机号码或邮箱其中一个,则相应的只需使用手机验证码方式或邮件验证码一种方式。 手机短信验证码验证方式的操作如下: 单击“获取验证码”。 输入手机上收到的短信验证码,单击“确定”。 邮件验证码验证方式的操作如下: 单击“选择其他验证方式”。 勾选使用邮箱的方式,单击“下一步”。 单击“获取验证码”。 输入邮箱收到的邮件验证码,单击“确定”。 在“重置账号密码”页面,输入旧密码、新密码及再次输入新密码,单击“确定”。 密码需满足以下要求: 至少8个字符。 至少包含字母和数字,不能包含空格。 密码强度:勿使用其他账号的密码。 如果忘记旧密码,可通过如下操作找回密码: 单击“忘记旧密码”。 在“找回密码”页面,输入华为账号(注册账号的手机号或邮件地址)。 输入图形验证码,单击“下一步”。 单击“获取验证码”,输入相应的邮件验证码或手机验证码,再单击“下一步”。 设置新密码并确认新密码,单击“确定”。 密码需满足以下要求: 至少8个字符。 至少包含字母和数字,不能包含空格。 密码强度:勿使用其他账号的密码。 如果您有其他设备使用此账号,设置新密码后需重新登录,以确保正常使用华为服务。
-
Versatile基本概念 使用之前,请先了解表1中相关概念,从而更好地使用AI原生应用引擎。 表1 基本概念说明 基本概念 说明 Agent Agent指具备自主智能的实体,具有一定的智能和自主性,可以自主地发现问题、设定目标、构思策略、执行任务等。 LLM 大语言模型(Large Language Model,简称LLM)是通过深度学习技术训练的人工智能模型,具备理解、生成和处理人类语言的能力。 技能 技能是在自动化和人工智能领域的应用程序。能够自动地执行一些任务或提供一些服务,如客户服务、数据分析、信息传输、智能助手、自动回复等。 智能编排 智能编排是一种基于人工智能技术的自动化流程编排工具,通过分析业务流程,自动构建流程模型,并根据预设规则自动化执行流程,从而提高工作效率和准确性。 ClickHouse ClickHouse是一个开源的分布式列式数据库管理系统,主要用于在线分析处理(OLAP)场景。它具有高性能、高可靠性、高可扩展性等特点,可以处理海量数据,支持复杂的查询和数据分析操作。ClickHouse支持SQL语言,同时还提供了许多扩展功能,如数据压缩、数据分区、分布式查询等。它被广泛应用于互联网企业、金融、电商、游戏等领域。 节点数 节点数是指在一个特定的环境中,例如测试或生产环境,需要部署的节点数量。 镜像名称 用于标识环境配置的镜像。 镜像版本 用于区分一个镜像库中不同的镜像文件所使用的标签。 资源规格 指根据不同的环境类型和用途,对服务器的CPU 、内存、数据盘等硬件资源进行合理分配和管理的过程。例如,开发环境的资源规格可能会比生产环境的小,而性能测试环境的资源规格可能会更大,以满足其对硬件资源的需求。 容器端口 容器端口是指在容器内部运行的应用程序所监听的网络端口。容器是一种虚拟化技术,它可以将应用程序及其依赖项打包在一起,形成一个独立运行的环境。在容器内部,应用程序需要监听一个或多个网络端口,以便与外部系统进行通信。 服务端口 服务端口是计算机网络中用于标识应用程序的端口号,它是一个16位的整数,范围从0到65535。在一个计算机上,可以同时运行多个应用程序,每个应用程序都需要一个唯一的端口号来标识自己。当一个应用程序需要接受网络请求时,它会监听自己的端口号,等待来自网络的连接请求。当连接请求到达时,应用程序会接受连接并开始处理请求。 推理单元 推理单元是指计算机系统中的一个模块,用于进行逻辑推理和推断。其主要功能是根据已知的事实和规则,推导出新的结论或答案。 推理单元常常被用于解决问题、推理、诊断、规划等任务。它可以帮助计算机系统自动推理出一些结论,从而实现智能化的决策和行为。推理单元通常包括知识表示、推理机和推理策略三个部分。知识表示用于将事实和规则以一定的形式表示出来,推理机则用于实现推理过程,推理策略则用于指导推理机的搜索和推理方向。 大语言模型 大语言模型是一种能够理解和生成人类语言的人工智能模型。这些模型通常使用大量的数据进行训练,以便它们能够识别语言中的模式和规律。大语言模型的应用范围非常广泛,包括自然语言处理、 机器翻译 、 语音识别 、智能问答等领域。 向量化模型 向量化模型是将文本数据转换为数值向量的过程。常用于将文本转换为机器可以处理的形式,以便进行各种任务,如文本分类、情感分析、机器翻译等。 多模态模型 多模态模型是指能够处理多种类型数据(如文本、图像、音频等)的机器学习模型。这些模型可以将不同类型的数据进行融合和联合分析,从而实现更全面的理解和更准确的预测。多模态模型的应用非常广泛,例如在图像识别中,可以将图像和文本信息结合起来,提高图像识别的准确性;在自然语言处理中,可以将文本和语音信息结合起来,提高文本语义理解的准确性。 LoRA LoRA(Low-Rank Adaptation)是一种轻量级大模型微调技术,通过低秩矩阵分解技术显著减少了微调所需的参数,降低了微调过程中所需的存储和计算资源,可灵活地运用于不同的预训练模型和任务。 Loss曲线 Loss曲线是一个用于评估模型训练效果的工具,它展示了模型在训练过程中产生的损失(Loss)随时间的变化情况。通过观察Loss曲线,可以了解模型的收敛效果、参数的敏感性和有效性。 父主题: Versatile简介
-
新建查询 登录管理控制台。 单击页面左上角的图标,在弹出的服务列表中,选择“管理与监管”下的“配置审计 Config”,进入“资源清单”页面。 单击页面左侧的“资源聚合器”,在下拉列表中选择“高级查询”,进入“高级查询”页面。 选择“自定义查询”页签,单击页面右上角的“新建查询”。 在右侧的“查询范围”处选择需要查询资源配置的聚合器,然后在下方输入框中输入查询语句。 页面左侧为高级查询使用的Schema信息,也就是查询语句中properties参数需要填写的内容,为各个云服务资源类型的详细属性。查询语句的配置样例请参见高级查询配置样例。 单击“保存查询”,输入查询名称和描述。 查询名称仅支持输入数字、英文字母、下划线和中划线,最大长度64个字符。 单击“确定”,保存成功。 图1 保存查询 如果自定义查询达到限额时,您将无法单击“保存查询”,同时页面右上方提示“您创建的查询已达到上限,请删除暂不需要使用的查询”。但此时您依然可以单击“运行”,直接运行查询并查看和导出查询结果。 单击“运行”,查看查询结果。目前只支持展示和导出前4000条查询结果。 单击查询结果列表上方的“导出”,选择要导出的文件格式( CS V格式或JSON格式),可导出查询结果。 单击“历史执行记录”,可查看该查询历史执行的时间和查询语句等信息。 您可以基于历史执行记录进行如下操作: 再次运行:直接基于历史查询语句再次运行查询。 复制:复制历史查询语句。 保存:直接将历史查询语句保存为新的自定义查询。 当您关闭浏览器窗口或登出账号后,高级查询的历史执行记录将被清除。 图2 历史执行记录
-
其他操作 您可以修改预设查询或已有自定义查询的名称、描述和查询语句,“另存为”后产生新的查询,具体请参考基于预设查询创建自定义查询。 如果您需要查看某个查询的名称、描述和查询语句,请参考查看查询。 如果您需要修改某个自定义查询的查询语句,请参考修改查询。 如果您不需要使用某个自定义的查询,删除操作请参考删除查询。预设查询不支持删除操作。 使用资源聚合器高级查询的相关功能,必须先指定需要查询的资源聚合器,从而定义您的查询范围,对指定聚合器聚合的多个源账号下的资源进行高级查询。
-
概述 资源聚合器提供高级查询能力,通过使用ResourceQL自定义查询单个或多个聚合源账号的资源配置状态。 高级查询支持用户自定义查询和浏览华为云云服务资源,用户可以通过ResourceQL在查询编辑器中编辑和查询。 您可以使用Config预设的查询语句,或根据资源配置属性自定义查询语句,查询具体的云资源配置。 ResourceQL是结构化的查询语言(SQL)SELECT语法的一部分,它可以对当前资源数据执行基于属性的查询和聚合。查询的复杂程度不同,既可以是简单的标签或资源标识符匹配,也可以是更复杂的查询,例如查看指定具体OS版本的云服务器。 高级查询仅支持用户自定义查询、浏览、导出云服务资源,如果要对资源进行修改、删除等管理类的操作,请前往资源所属的服务页面进行操作。
-
使用限制 为避免单用户长时间查询占用资源,影响其他用户,对高级查询功能做以下限制: 单次查询语句的执行时长不能超过15秒,否则会返回超时错误。 单次查询语句查询大量数据,会返回查询数据量过大的报错,需要用户主动简化查询语句。 单次查询结果只返回前4000条。 单个查询语句中最多只能做两次表的关联查询。 每个账号最多可以创建200个高级查询。 资源聚合器的高级查询能力暂时不支持 checksum 和 provisioning_state 两个属性。 高级查询功能依赖于资源记录器所收集的资源数据,强烈建议您保持资源记录器的开启状态,不同场景的说明如下: 如您从未开启过资源记录器,则高级查询语句无法查询到任何资源数据。 如您已开启资源记录器,但仅在资源记录器监控范围内勾选部分资源,则高级查询语句仅能查询到所选择的资源数据。 如您开启资源记录器并勾选全部资源,但后续又关闭资源记录器,则高级查询语句无法查询到任何资源数据。 关于如何开启并配置资源记录器请参见:配置资源记录器。
-
初始化SLB 业务自行解析好配置,作为Properties入参传入。 GraySDKManager.getInstance().init(Properties params, Object lbsServiceFactory)。 表1 参数说明 参数 说明 传空说明 Properties params 将Properties对象传入 将不能使用Gray SDK功能。 不能传空。 Object lbsServiceFactory lbsServiceFactory对象传入 不能使用LBS国家省市IP库功能。 在业务不使用LBS国家省市灰度时,可传空。 业务指定好Properties路径,properties文件路径传入。 GraySDKManager.getInstance().initWithPropertiesPath (String path, Object lbsServiceFactory)。 表2 参数说明 参数 说明 传空说明 String path 将Properties文件全路径传入。 传空时,会按照以下顺序尝试补参: 尝试以系统参数指定的路径找文件System.getProperty(“graysdk.properties.file_path”)。 尝试从classpath的文件系统路径下找graysdk.properties或者graysdk-config.properties。 Object lbsServiceFactory LbsServiceFactory对象传入。 不能使用LBS国家省市ip库功能。 在业务不使用LBS国家省市灰度时,可传空。
-
服务消费端集成示例 照常通过CSE调用服务提供者,无需额外编码。 例如,参考CSE的消费端开发,从消费端调用服务提供端(demoB),无需额外修改。 package com.service.demo.controller; import org.springframework.stereotype.Component; import org.apache.servicecomb.provider.springmvc.reference.RestTemplateBuilder; import org.springframework.web.client.RestTemplate; @Component publicclass DemoDelegate { public String helloworld(String name){ if ( null == name || "".equals(name)) { return "the name is empty, no need send to backend MS"; } RestTemplate restTemplate = RestTemplateBuilder.create(); String rslt = ""; String qryStr = ""; qryStr = "name=" + name; // to call another MicroService, name is demoB. path:/demo,interface:helloworld rslt = restTemplate .getForObject("cse://demoB/demo/helloworld?" + qryStr, String.class); return rslt; } }
-
初始化Cloud Map 使用NUWA框架,只要增加对应配置,框架即会完成Cloud Map的初始化。 这些配置需要写到nuwa框架可以读到的文件里,一般是nuwa-xxx.properties,nuwa-xxx.yaml文件。因为Cloud Map的Client全局单例,所以可以直接通过NuwaMapClientFactory.getNuwaMapClient()获取client对象,也可以在Spring上下文中获取NuwaMapClient的Bean。
-
常见问题 Domain not registered或Service not registered 领域或微服务没有进行注册,请参考将微服务注册到ACMS自行注册领域或微服务。 connect timed out或read timed out 它有两种原因,connect timed out或read timed out: 可以在sts.properties中添加超时配置,单位为毫秒: sts.connect.timeout=10000 //遇到 connect timed outsts.socket.timeout=10000 //遇到 read timed out Encrypt Permission Denied 这是因为管理台上注册微服务时,默认将微服务注册成了NORMAL。只有角色为PLATFORM的微服务才有权限调用加密接口。 fail to init session key fail to init session key fail to get master key from sts 这是因为集成了STS 1.0,也就是集成了sts-cse-sdk,从STS 1.0的服务器获取master key失败。因为STS 1.0的服务器需要业务自己去搭建,在没有搭建的情况下,当然会获取失败。 如果已经搭建,检查业务的yaml文件中配置的environment参数和STS 1.0微服务中的environment是否一致,如果不一致则修改成一致。 mac check in GCM failed 这个错误的原因就是密钥和密文不匹配导致无法解密。需要确认业务配置文件中的密文是从哪里来的? 通过IaC由配置中心下发: 检查IaC代码中配置的敏感配置项ID中的服务或微服务名是否属于该运行的微服务。 服务级:Service/{ServiceName}/{SensitiveName}/{tag} 微服务级:MicroService/{ServiceName}/{MicroServiceName}/{SensitiveName}/{tag} 通过StsAgent加密后,手工配置: 检查加密的时候使用的服务级别servicekek还是微服务级别kek,和密文中的级别是否一致,服务名和微服务名是否和该运行的微服务一致?加密得到密文的STS环境和运行的STS环境是否一致?例如测试环境加密的密文是不能在生产环境解密。 # 使用微服务kek加密 # /opt/huawei/apps/wisesecurity/stsagent/stsagent encrypt -s ServiceName -m MicroServiceName -x -h 10.33.102.162:8080 # 使用服务servicekek加密 # /opt/huawei/apps/wisesecurity/stsagent/stsagent encrypt -s ServiceName -m MicroServiceName -ts ServiceName -x -h 10.33.102.162:8080 中间件的口令解密 业务集成了Cloud Map对接中间件,业务不用关心口令解密的问题。 业务使用sts agent加密明文口令后配置到相应管理台。参考2,看加密用的密钥和代码中解密的密钥是否对应(服务级还是微服务级kek),以及加密时使用的微服务名和服务名是否一致。 不同微服务的证书不可混用,业务使用自己微服务的证书及配置文件进行SDK的初始化,解密自己微服务的配置。 Undefined provider local 当创建AESCryptor时,如果不用@指定KeyProvider,那么它会默认调用local KeyProvider。在使用kek或servicekek时,要指定KeyProvider为@sts。 //错误 AESCryptor cryptor = new AESCryptor.Builder().withKey("kek").withAlg(CryptoAlg.AES_GCM).build(); //正确 AESCryptor cryptor = new AESCryptor.Builder().withKey("kek@sts").withAlg(CryptoAlg.AES_GCM).build(); 申请证书时Make sure haveged is running步骤或try active service步骤报错。 这是因为机器上没有启动haveged服务。haveged是一个随机数的熵的提供方,它可以解决在某些情况下,系统熵过低的问题。 规避办法:在部署步骤前面加上sudo步骤;或者,到机器上,手动执行service haveged start命令,启动haveged服务。 解决方案:在申请证书步骤前添加sudo和shell-exec步骤,确保haveged服务为启动状态。 sudo systemctl enable haveged.service && sudo systemctl start haveged.service非EulerOS可以使用sudo service haveged start命令。 service ini config file not exists 这是因为STS在初始化时,找不到初始化配置文件(ini文件)或者微服务名称.sts.p12证书文件不存在。该文件是在部署微服务过程中,通过stsagent申请证书时生成的,默认路径在/opt/huawei/certs/{serviceName}/{microServiceName},业务也可以通过相应参数来修改。 解决办法: 首先确认配置的STS参数: 通过配置文件配置的,查看sts/sts.properties文件,检查sts.config.path配置的文件是否存在。 通过NUWA配置文件,检查microservice.yaml文件中nuwa.security.sts.configPath配置的文件是否存在。 nuwa:security:sts:serverDomain: 10.33.102.109:8080configPath: /opt/huawei/certs/{ServiceName}/{MicroServiceName}/{MicroServiceName}.ini 通过Java Bean方式配置的,也就是通过类似以下代码初始化,检查sts.config.path配置的文件是否存在。 Properties properties = new Properties();properties.setProperty("sts.server.domain", "10.33.102.162:8080");properties.setProperty("sts.config.path", "D:/Test/ConsumerService/ConsumerMicroService1/ConsumerMicroService1.ini");StsKeyApi.initWith(properties); 如果配置的是相对路径,则必须是相对于resource目录的路径。如果是在IDEA中运行使用,则检查target下是否有该文件,如果没有则重新compiler,IDEA最终是从target下获取resource文件。 另外,请确认部署过程中证书申请的步骤在业务安装和启动流程之前,如果业务先启动,之后才进行证书的申请,配置文件还未生成,也会出现找不到配置文件的问题。 Fail to derive key with master key 这是因为STS没有初始化,就去调用了获取认证凭据的接口。 解决办法:检查是否调用了StsKeyApi.init()或StsKeyApi.initWith(properties)。 如何解密微服务证书的口令 微服务证书的口令使用本地随机的根密钥和工作密钥加密,口令明文使用StsKeyStoreUtil.getKeyStoreValue()进行解密。 Access Permission Denied 微服务集成STS SDK,获取相应微服务的Credentials时报如下错误Reqeust sts server fail, Request Token form xxxx&yyyy failed, Access Permission Denied。 这是由于provider没有该微服务配置相应的ACL(Access Control List),导致没有权限获取访问该provider的credentials。 Invalid api name STS Agent执行的时候报Invalid api name,这是由于 IaC 中使用了STS Agent高版本能力,但主机上STS Agent版本过低并且IaC中没有强制升级STS Agent导致的。通过IaC或手动更新STS Agent,使用1.1.5.100及之前的部署包时请打开force_install开关。 微服务有测试,镜像,海外,灰度等不同的环境,STS管理台如何管理这些敏感配置项? STS管理台在不同站点是分开部署。同一站点下假如想区分不同的场景,例如生产和灰度,开发,测试和镜像,则可以使用敏感配置项标签区分。 STS管理台敏感配置项最大长度是多少? 5000个字符。 本地缓存的STS KEK,ServiceKEK以及认证凭据是如何保护? key.json由本地随机生成的rootkey和workkey加密保护,kek.json由STS KEK保护。 加密算法采用AES GCM。 部署过程report certificate to cms报错,提示"An unknown error occurred when report certificates!"。 首先检查/opt/huawei/certs/{service}/{microservice}下stscerttool.log中是否有错误信息。 若日志中出现异常提示[Errno -2] Name or service not known,请使用以下命令确认系统版本是否为欧拉OS 2.9 [EulerOS release 2.0 (SP9)]: lsb_release -a 检查主机hostname是否超过64个字符,如果是的话,修改主机名。 主机存在无法解析出主机IP的问题,参考如下步骤检查: 检查/etc/nsswitch.conf中是否包含hosts项,且对应配置包含files或myhostname。 若添加配置files,检查/etc/hosts,添加当前主机的IP映射[host_ip] [hostname],例如:10.33.100.100 host-10-33-100-100。 若添加配置myhostname,通常无需进行其他修改。 运行以下命令检查是否有其他异常。 hostname -i python -c "import socket; print(socket.gethostbyname(socket.getfqdn(socket.gethostname())))" 如何手工注册微服务 使用IaC部署在WiseDBA上创建数据库实例,报没有注册STS的错误,如果业务还没有接入STS,可以在STS管理台进行手工注册该微服务。 missed = in sensitive string value / missed value in sensitive string 解密敏感配置项的时候报missed = in sensitive string value错误,这是由于敏感配置密文格式不正确。敏感配置项密文格式如下: kek加密密文格式: ENC(key=kek, value=xxxx) servicekek加密密文格式: ENC(key=servicekek, value=xxxx) Unable to execute refresh credentials function 微服务日志STS SDK抛出如下异常,这是由于对端开启了STS的微服务认证,MapConnectCoreService&MapConnectCoCreateService未给该微服务配置ACL。 解决方案:让对端给该微服务配置ACL。 com.huawei.wisesecurity.sts.sdk.exception.StsException: Unable to execute refresh credentials function for service.identity=MapConnectCoreService&MapConnectCoCreateService STS对JDK/JRE有什么要求? 建议使用最新的1.8版本JDK/JRE。 invalid common name STS SDK抛出如下异常: InvocationException: code=403;msg=errorCode=1002;errorMessage=invalid common name: AppGalleryPromotionUserService 这是由于CSE的yaml文件中配置的微服务名和使用的STS微服务证书中的微服务名不一致导致的,使用部署时采用STSAgent自动签发的证书,里面是标准的PBI服务名和微服务名。 STS管理台敏感配置修改后如何刷新到微服务的配置文件中? 敏感配置项是通过配置服务发布到微服务配置文件中。在STS管理台修改后,需要在部署服务上重新发布修改的配置项。 在配置中心找到该配置项 重新发布该配置项: fail to parser work key json file 检查work_key.json格式是否正确,文件中的description,mac字段需要删除。 Odd number of characters 业务加载工作密钥文件的时候报Odd number of characters异常,这是由于在STS管理台配置的hex编码的密钥明文的少或多了一个char。Hex编码字符串必须是偶数个字符。 fail to get master key from sts 业务集成了STS 1.0的认证能力,需要从STS 1.0 Server上获取主密钥失败。STS 1.0 Server是部署在业务集群中,注册到业务同一个注册中心: 在相应注册中心上检查WiseSecurity:SecurityTokenService微服务是否存在,如果不存在,则找到相应部署机器启动该微服务。 检查业务的yaml文件中配置的environment参数和STS 1.0微服务中的environment是否一致,如果不一致则修改成一致。 missed header x-sts-token / x-sts-session provider通过STS SDK认证请求时,从http消息中无法获取到相应的STS认证header信息。 直接用postman访问,会缺少相应的认证凭据而失败。因此如果测试需要,可以将微服务的STS认证放通开关打开。放通开关配置在sts.properties配置文件中的sts.bypass.enable参数:true表示放通,false表示不放通,默认是不放通。 consumer侧开启了放通,但provider侧没有放通。 sts.properties文件中未配置sts.config.path指定STS微服务证书加载路径(如果是IDEA中执行的,检查一下target下是否存在sts.properties)。STS SDK默认加载sts/sts.properties,业务也可以通过jvm启动参数sts.properties修改该文件的路径。 如果是通过NUWA初始化STS的,检查yaml文件中是否有配置nuwa.security.sts.configPath。 nuwa: security: sts: serverDomain: 10.33.102.109:8080 configPath: /opt/huawei/certs/{ServiceName}/{MicroServiceName}/{MicroServiceName}.ini 如果通过Java Bean方式初始化,检查是否有设置sts.config.path配置项。 Properties properties = new Properties(); properties.setProperty("sts.server.domain", "10.33.102.162:8080"); properties.setProperty("sts.config.path", "D:/Test/ConsumerService/ConsumerMicroService1/ConsumerMicroService1.ini"); StsKeyApi.initWith(properties); STS管理台录入敏感配置项使用什么加密算法加密。 敏感配置项采用STS给业务分配的KeK/ServiceKek(256位)使用AES/GCM加密。 Unable to resolve non-exist credentials StsCseClientFilter中发送请求时报如下异常和错误,这是由于无法获取到访问该微服务凭据抛出异常。检查服务初始化STS SDK时是否有异常(查看logback或log4j中配置的com.huawei.wisesecurity.sts包路径的日志文件)。 invalid certificate 回答:确认服务名和证书名是一致的,证书是重新下发的,再判断业务连接的STS server1.0上的证书是否有修改。 注意:需要确定当前环境连接的STS服务器是正确的,可以确认性能环境所对应的注册中心,然后在这个注册中心的portal界面上查找并确认STS 1.0是哪台服务器注册上去的。 get sts token --Timestamp out of range/Timestamp is more earlier or later 这是由于STS开启防重放攻击(和STS服务器之间时间差小于5分钟),检查业务服务器的时间是否正确。 configId can not be blank 部署服务或者NUWARutime获取敏感配置项时,请求要获取的敏感配置项的列表中有值为空。 管理台上服务下无法选到相应的微服务。 在安全管理台上配置敏感配置项、证书时,服务下只显示已经在相应环境下在STS上注册过的微服务。需要让站点的业务SRE在运维管理台上进行微服务注册。 KeyStoreException: empty private key or certificate 出现该提示,是因为主机上STS实例证书(位于/opt/huawei/certs/{服务}/{微服务}/下)并不完整,很可能是由于前一次部署过程中出错导致,请检查该证书是否有效,可使用以下命令对证书进行检查。 /opt/huawei/apps/wisesecurity/stsagent/stsagent check -s {服务} -m {微服务} 如果提示校验错误信息,请重新执行stsagent-install部署步骤进行证书的重新申请。 Unable to find SecretKey version=0 业务代码中使用STS密钥解密非STS加密的数据导致的错误。 Micro service xxx&yyy not registered 微服务没有在STS管理台进行注册。 Fail to read service info from keystore STS SDK初始化时需要从STS的身份证书jks文件中读取服务和微服务信息,加载jks文件的时候异常了。一般是该jks文件有异常。 SDK会根据service ini文件中的subject的CN项作为微服务名读取证书文件 {微服务名}.sts.p12 [cert] subject = C=CN,O=Huawei,OU=Huawei CBG Cloud MicroService,CN=SecurityTokenServiceDemoSelfConsumer ip = 127.0.0.1 invalid timestamp 检查业务主机的时间和标准时间差异是否超过5分钟。 timeout awaiting response headers sts-go-sdk内的ResponseHeaderTimeout参数值设置过小,目前默认为100,在初始化时传入参数“sts.responseHeader.timeout”修改该值大小。 not an SSL/TLS record client和server两边SSL不一致:client通过HTTP访问,但Server是提供的HTTPS的服务。 如果是tomcat + NUWA/CSE,tomcat最终对外提供是http还是https是由tomcat的配置文件决定的,NUWA/CSE的yaml文件中定义的只是注册到注册中心告诉对端提供的是http还是https。 Some config items not found iac provider在plan阶段会去校验敏感配置项是否存在于STS管理台,如果没有录入敏感配置项,或者敏感配置项的坐标不正确,则报此错,需要业务自己检查坐标是否正确。 fail to get provider ** credentials consumer集成sts-go-sdk在获取provider端访问凭据的时候失败,需要在provider端配置ACL,管理台录入ACL后,需等十分钟才生效。 启动时如果发现类似错误: either 'jasypt.encryptor.password', one of ['jasypt.encryptor.private-key-string', 'jasypt.encryptor.private-key-location'] for asymmetric encryption, or one of ['jasypt.encryptor.gcm-secret-key-string', 'jasypt.encryptor.gcm-secret-key-location', 'jasypt.encryptor.gcm-secret-key-password'] for AES/GCM encryption must be provided for Password-based or Asymmetric encryption 那么可以按两个方向排查: 检查启动类是否添加@EnableStsEncryptableProperties ,需要添加该注解,才能初始化StsStringEncryptor对象。 如果已经添加,可能是因为spring context还未初始化完成,无法获取StsStringEncryptor对象。例如,Eureka应用的bootstrap.yml中如果包含敏感配置项,就会报这个错,需要将敏感配置项移到其他配置文件中,即可解决。 Unable to refresh credentials for service SecurityTokenService&SecurityTokenMicroService 该问题是STS初始化的时候,从kek.json或者keys.json获取本地密钥失败,导致无法从STS-Server获取凭据。 解决方法:找到密钥的缓存地址,/${HOME}/.sts/服务名/微服务名/kek.json,删除kek.json和keys.json文件,重新启动即可。 父主题: STS SDK
-
初始化STS 在启动类中增加注解@EnableStsAutoInitialization(value = "sts.properties"),注解的含义是启动STS自动初始化,其中value是指定STS的配置文件路径。 使用注解时,是通过加装Bean的方式初始化STS和解密敏感配置项,由于Bean的加载顺序不固定,有时会出现使用STS解密的代码被加载了,初始化STS的Bean还没有被加载。如果出现这种情况,可以在使用STS的类方法上添加如下方法解决此问题: @Import(value = {StsEncryptablePropertiesConfiguration.class})
-
配置STS 在微服务的ClassPath下增加添加配置文件sts/sts.properties(该文件路径可以通过环境变量sts.properties进行修改),内容为: sts.server.domain=10.202.251.196:8080 #STS服务器的地址 sts.config.path=/opt/huawei/certs/xxxService/xxxMicroService/xxxMicroService.ini #STS微服务证书路径,基础设施即代码(Infrastructure as Code,简称IaC)会将证书放在固定路径下,格式为/opt/huawei/certs/服务名/微服务名/微服务名.ini
-
异常2:Access denied for user 异常:java.sql.SQLException: Access denied for user 'xxxx'@'xx.xx.xx.xx' (using password: YES) 原因1:密码错误。 解决:删除SDK配置信息,重新在WiseDBA新建业务账号,在SDK配置重新录入配置信息。 原因2:对应的数据库用户读写内网地址设置有误。 解决:删除SDK配置信息,重新在WiseDBA新建业务账号,在SDK配置重新录入配置信息。
-
异常1:Username is Empty! 异常:ERROR com.huawei.rainbow.utils.parser.DbNodeConfParser:46 - [] - appConfStr is not json format 原因:检查Cloud Map中Rainbow SDK配置项中的内容是否为json格式及Username是否为空。 图1 配置信息 解决:在WiseDBA中SdkConfig下重新编辑该配置项并保存。
-
异常5:datasource.properties没有更新,或者没有拉取到某个数据库配置 原因1:检查Cloud Map地址是否配置错误。 解决:检查Cloud Map地址是否配置错误,查看日志是否有Cloud Map连接相关的错误。如果有,请修改Cloud Map配置并重启服务。 图2 配置信息 原因2:检查是否配置了DBDataSource的懒加载模式,只有当用数据库的时候才初始化,拉取配置。 解决:检查是否配置了DBDataSource的懒加载模式,只有当用数据库的时候才初始化,拉取配置。如果是,触发一次数据库操作,查看是否更新。
-
异常3:NodeDataSource can't init或者init dataSource Params Error! 异常:com.huawei.rainbow.exception.RainbowRunTimeException: NodeDataSource can't init: dsKey=xx.xx.xx.xx:3306@mysql或者Caused by: com.huawei.rainbow.exception.DbNodeInitialException: [ConfigError]init dataSource Params Error! config is 原因1:密码错误。 解决:删除SDK配置信息,重新在WiseDBA新建业务账号,在SDK配置重新录入配置信息。 原因2:对应的数据库用户读写内网地址设置有误。 解决:删除SDK配置信息,重新在WiseDBA新建业务账号,在SDK配置重新录入配置信息。 原因3:检查对应Schema是否被异常删除。 解决:重新创建Schema。
-
配置Rainbow 修改Rainbow SDK配置,切换SDK数据源,新增Cloud Map配置、STS配置,配置如下: nuwa: sts: serverDomain: 10.33.102.162:8080 configPath: certs/WiseCloudNuwaService/WiseCloudNuwaCloudMapAdminService/WiseCloudNuwaCloudMapAdminService.ini enable: true cloudmap: serverAddr: http://10.33.113.125:8080 namespaceName: cn_dev_default rainbow: db0: datasource: beanName: rainbowDs dataSourceName: xxxx //与运维中心WiseDBA服务SDK配置界面的值保持一致 appName: xxx //业务的服务名 dbGroupKey: xxx //实例名称 dbName: xxxxx //Schema名称 connectionProperties: characterEncoding=utf8;connectTimeout=10000;socketTimeout=10000;autoReconnect=true;useUnicode=true;serverTimezone=Asia/Shanghai useSts: true mybatis: base-package: com.huawei.nuwa.map.demo.consumer.middleware.dao mapper-locations: classpath:mapper/rainbow/*.xml
-
初始化Rainbow SDK 代码如下: package com.huawei.demo.serviceb.config; import javax.sql.DataSource; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.mapper.MapperScannerConfigurer; import org.springframework.context.EnvironmentAware; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.DependsOn; import org.springframework.context.annotation.Import; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.core.env.Environment; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.support.TransactionTemplate; import com.huawei.nuwa.map.client.NuwaMapClient; import com.huawei.nuwa.map.spring.boot.autoconfigure.NuwaCloudMapAutoConfiguration; import com.huawei.rainbow.jdbc.DbGroupDataSource; import com.huawei.wisesecurity.sts.springboot.security.configuration.StsEncryptablePropertiesConfiguration; /** * Rainbow启动 */ @Configuration @Order(Ordered.HIGHEST_PRECEDENCE) @Import(value = {NuwaCloudMapAutoConfiguration.class, StsEncryptablePropertiesConfiguration.class}) public class ApplicationAutoConfig implements EnvironmentAware { private Environment environment; /** * Rainbow需要依赖STS和Cloud Map启动,创建dataSource * * @param client NuwaMapClient值对象 * @return DataSource 初始化完成的数据源数据源 */ @Bean @DependsOn({"stsBootStrap"}) public DataSource createDataSource(NuwaMapClient client) { DbGroupDataSource dataSource = new DbGroupDataSource(); dataSource.setUseSts(true); dataSource.setAppName(environment.getProperty("wiseDba.appName")); dataSource.setDbGroupKey(environment.getProperty("wiseDba.groupKey")); dataSource.setDbName(environment.getProperty("wiseDba.dbName")); dataSource.init(); return dataSource; } /** * 事务管理创建 * * @param dataSource 数据源 * @return DataSourceTransactionManager 事务管理 */ @Bean public DataSourceTransactionManager createTransaction(DataSource dataSource) { DataSourceTransactionManager transaction = new DataSourceTransactionManager(); transaction.setDataSource(dataSource); return transaction; } @Bean public JdbcTemplate createJdbcTemplate(DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean("sqlSessionFactoryBean") public SqlSessionFactoryBean createMybatisSqlSessionFactoryBean(DataSource dataSource) { SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean(); sessionFactoryBean.setDataSource(dataSource); // 数据源配置项 org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration(); // 允许jdbc自动生成主键 configuration.setUseGeneratedKeys(true); // 使用列标签代替列名 configuration.setUseColumnLabel(true); // 打开下划线命名自动转换为驼峰命名开关 configuration.setMapUnderscoreToCamelCase(true); sessionFactoryBean.setConfiguration(configuration); return sessionFactoryBean; } @Bean public TransactionTemplate createTransactionTemplate(DataSourceTransactionManager dataSourceTransactionManager) { TransactionTemplate template = new TransactionTemplate(); template.setTransactionManager(dataSourceTransactionManager); return template; } @Bean public MapperScannerConfigurer createMapperScannerConfigurer() { MapperScannerConfigurer configurer = new MapperScannerConfigurer(); configurer.setBasePackage("com.huawei.demo"); configurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean"); return configurer; } @Override public void setEnvironment(Environment environment) { this.environment = environment;
-
常见问题 SDK初始化失败 SDK初始化失败,graysdk的run和debug日志会打印初始化失败原因,一般原因有如下几种: ETCD服务器配置错误(检查conf/graysdk.properties文件中server配置是否正确)。 ETCD未启动或者网络原因不可用(检查网络以及ETCD是否正常)。 ETCD中不存在此微服务名称的灰度配置。 ETCD未启用用户名/密码认证方式,但是SDK配置了认证(检查conf/graysdk.properties文件是否配置了username)。 jsonRuleFilePath没有配置。 灰度规则匹配失败 调用SDK接口执行灰度规则匹配失败,一般原因有如下几种: 实际传入的参数和值,不满足配置的微服务灰度规则。 灰度开关关闭(检查conf/graysdk.properties文件graySwitch是否为1)。 灰度规则执行异常(检查graysdk的debug日志)。 联系灰度平台开发人员定位。 灰度参数的设置 消费端需要在CSE的invocation设置想要进行灰度的参数,有两种方法: 确定需要进行灰度的参数 ,在后端的接口中使用@RequestParam参数来指定。 业务直接在消费端设置参数,例如:ContextUtils.getInvocationContext().addContext("x-is-gray", "1")。 第一种方式直接在请求流量的URL中通过设置参数的值来标识灰度流量,第二种是业务在调用SDK之前改变invocation中参数的值来标识灰度。 后端灰度节点的判断 后端的节点在自己的microservice.yaml文件中设置参数描述(参照CSE开发网站)。 按照版本筛选灰度节点,需要在yaml中的service_description中先定义版本号,然后在管理台上选择按照版本进行灰度,填入定义的版本。 按照自定义参数筛选灰度节点,需要在yaml中的instance_description中先自定义灰度参数,并填入值,接着在管理台选择按照自定义参数进行灰度,填入自定义的参数。
-
常见问题 表1 Cloud Map常见问题 问题 报错原因 解决办法 “code”:403,no permission to access 业务没有权限访问中间件资源 登录Cloud Map管理台查看资源的授权信息。 如果自身的服务或微服务不在授权范围内,则没有访问权限,需要确认注册中间件资源时所设置的授权信息(一般是集群所属的服务才有权限)。 sds报错no permission,在sds管理台新增SDK配置时没有填写正确的微服务名。 Rainbow使用共享服务报错no permission,需要将Rainbow资源在sdk管理台注册到自己的服务下,而不是其他服务下。 微服务不为*,则只有一个微服务有权限。如果需要改成*,需要在相应管理台同步配置时不要选微服务名。 “code”:404,the resource does not exist 业务要找的资源不存在 先确认资源是否存在,登录Cloud Map管理台查找资源,如果不存在,参考开发指南注册资源。 如果资源确实存在,请检查资源的属性和业务配置属性是否一致,如namespace、服务名、集群名等。 debug查看调用Cloud Map接口的数据(如serviceName)是否正常。 共享服务的,请检查配置是否正确。 检查NUWA版本是否过低,建议3.0.5.101以上。 Too many connections 低版本asynchttpclient连接数超过设置最大值(默认为cpu核数,不超过4) 升级SDK版本号。 修改asynchttpclient连接数。 父主题: Cloud Map SDK
-
初始化Cloud Map 在启动类中增加@EnableDiscoveryClient注解,同时在启动类中完成将RestTemplate放到spring容器中,后续微服务间调用就使用注册到spring容器中的RestTemplate,代码如下: package com.huawei.demo.servicea; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate; import com.huawei.wisesecurity.sts.springboot.security.annotation.EnableStsAutoInitialization; @SpringBootApplication @EnableStsAutoInitialization(value = "application.properties") @EnableDiscoveryClient public class ServiceASpringbootApplication { public static void main(String[] args) { SpringApplication.run(ServiceASpringbootApplication.class, args); } @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } }
-
配置Cloud Map 在微服务的application.yaml配置文件中添加以下配置项: nuwa: cloudmap: read: cloudmap #使用Cloud Map方式进行微服务间通信 clusterName: clusterName-example #微服务注册到Cloud Map的集群 provider: cluster: clusterName-example #提供服务的其他同样被注册到Cloud Map的微服务集群名 serverAddr: http://10.34.32.243:80 #Cloud Map访问地址 version: 1.0.0.100 #微服务版本号 namespaceName: cn_dev_default #Cloud Map访问命名空间
-
概述 Cloud Map SDK服务软件开发工具包是对服务发现(Cloud Map)服务提供的REST API进行的封装,以简化用户的开发工作。 Cloud Map是注册发现中心,主要用于注册发现微服务、中间件/数据库、一方/二方/三方服务,单体应用无需对接Cloud Map(微服务不使用任何中间件/数据库,也不依赖任何其他服务/微服务),用户直接调用Cloud Map SDK提供的接口函数即可实现使用Cloud Map服务业务能力的目的。 父主题: Cloud Map SDK
-
运维中心SDK类型介绍 运维中心为开发者提供访问凭证管理服务(Access Credential Management Service,简称ACMS)、服务发现(NUWA Cloud Map,简称Cloud Map)、负载均衡(Software/Server Load Balancer,简称SLB)和数据库治理(WiseDBA)的SDK,方便开发者将运维中心的能力快速集成到自己的应用中。 表1 SDK列表 SDK分类 说明 编程语言 下载地址 参考文档 ACMS的SDK:STS SDK STS SDK(Security Token Service,简称STS)服务软件开发工具包是对访问凭据管理服务(ACMS)提供的REST API进行的封装,以简化用户的开发工作。用户直接调用SecurityTokenService SDK提供的接口函数即可实现使用ACMS业务能力的目的。 使用STS SDK即可使用运维中心ACMS的敏感配置项托管和微服务之间请求认证功能。 Java nuwa-open-sdk-1.1.0-20240204093135.zip 完整性校验nuwa-open-sdk-1.1.0-20240204093135.zip.sha256 下载包nuwa-open-sdk-1.1.0-20240204093135.zip中的文件介绍请参见表2。 STS SDK Cloud Map的SDK:Cloud Map SDK Cloud Map SDK服务软件开发工具包是对服务发现(Cloud Map)服务提供的REST API进行的封装,以简化用户的开发工作。用户直接调用Cloud Map SDK提供的接口函数即可实现使用Cloud Map服务业务能力的目的。 Java Cloud Map SDK SLB的SDK:Gray SDK Gray SDK负责业务的负载均衡,Nginx组件通过反向代理实现了业务的负载均衡,通过丰富的扩展功能,可以对HTTP消息定制丰富的控制策略。 使用Gray SDK即可使用运维中心负载均衡(SLB)的灰度管理功能。 Java Gray SDK WiseDBA的SDK:Rainbow SDK Rainbow SDK构建云原生DevOps全流程可信build-in的数据库治理解决方案。使用Rainbow SDK即可使用运维中心的数据库治理(WiseDBA)功能。 提供MySQL/Cassandra/ GaussDB /DRDS全流程设计、开发、发布、运维(管理、治理、诊断)方案。 可信build-in:过程可信,结果可信,接入安全(无人工接入密码),操作(资源高危操作)安全。 Java Rainbow SDK 表2 SDK jar包介绍 文件夹 SDK分类 对应的jar包 nuwa-cse-sdk:适用于基于NUWA框架且不使用spring boot的项目 STS SDK sts-key-sdk-1.1.17.109.jar sts-sdk-base-1.1.17.109.jar cloudsoa-security-1.1.13.100.jar Cloud Map SDK nuwa-cloudmap-config-servicecomb-1.0.12.100.jar nuwa-cloudmap-core-1.0.12.100.jar nuwa-cloudmap-registry-cse3-1.0.12.100.jar nuwa-cloudmap-registry-servicecomb-common-1.0.12.100.jar Gray SDK graysdk-core-1.4.14.500.jar graysdk-cse3-1.4.14.500.jar nuwa-apaas-graysdk-3.1.5.100.jar Rainbow SDK rainbow-proxy-1.2.18.102.jar gpaas-middleware-common-2.2.6.100.jar NUWA基础SDK nuwa-boot-container-3.1.5.100.jar nuwa-core-3.1.5.100.jar nuwa-cse-foundation-3.1.5.100.jar nuwa-share-libs-3.1.5.100.jar nuwa-tenant-sdk-3.1.5.100.jar spring-cloud-sdk:适用于基于Spring Cloud框架的项目 STS SDK sts-key-sdk-1.1.19.100.jar sts-sdk-base-1.1.19.100.jar sts-spring-boot-1.1.19.100.jar cloudsoa-security-1.1.14.101.jar Cloud Map SDK nuwa-cloudmap-core-1.0.12.100.jar nuwa-cloudmap-spring-boot-starter-1.0.12.100.jar spring-cloud-starter-cloudmap-discovery-1.0.12.100.jar Gray SDK 不支持 Rainbow SDK gpaas-jetcd-api-2.0.0.106.jar gpaas-jetcd-v2-2.0.0.106.jar gpaas-middleware-common-2.2.6.100.jar nuwa-gpaas-rainbowproxy-3.2.2.100.jar nuwa-rainbowproxy-spring-boot-starter-3.2.2.100.jar rainbow-api-1.2.18.201.jar rainbow-core-1.2.18.201.jar rainbow-core-drds-1.2.18.201.jar rainbow-core-gaussdb-1.2.18.201.jar rainbow-proxy-1.2.18.201.jar NUWA基础SDK nuwa-boot-container-3.2.2.100.jar nuwa-core-3.2.2.100.jar nuwa-core-spring-boot-starter-3.2.2.100.jar spring-cse-sdk:适用于基于NUWA框架且使用spring boot的项目 STS SDK sts-key-sdk-1.1.19.100.jar sts-sdk-base-1.1.19.100.jar sts-spring-boot-1.1.19.100.jar cloudsoa-security-1.1.14.101.jar Cloud Map SDK nuwa-cloudmap-config-servicecomb-1.0.12.100.jar nuwa-cloudmap-core-1.0.12.100.jar nuwa-cloudmap-registry-cse3-1.0.12.100.jar nuwa-cloudmap-registry-servicecomb-common-1.0.12.100.jar nuwa-cloudmap-spring-boot-starter-3.2.2.100.jar nuwa-gpaas-cloudmap-3.2.2.100.jar Gray SDK graysdk-core-1.4.14.500.jar graysdk-cse3-1.4.14.500.jar nuwa-apaas-graysdk-3.2.2.100.jar nuwa-graysdk-spring-boot-starter-3.2.2.100.jar Rainbow SDK nuwa-gpaas-rainbowproxy-3.2.2.100.jar nuwa-rainbowproxy-spring-boot-starter-3.2.2.100.jar rainbow-proxy-1.2.18.102.jar gpaas-middleware-common-2.2.6.100.jar NUWA基础SDK nuwa-boot-container-3.2.2.100.jar nuwa-core-3.2.2.100.jar nuwa-core-spring-boot-starter-3.2.2.100.jar nuwa-cse-foundation-3.2.2.100.jar nuwa-cse-foundation-spring-boot-starter-3.2.2.100.jar nuwa-tenant-sdk-3.2.2.100.jar tools:configparser为自定义参数解析工具,通过NUWA部署时,解析参数模板,将模板中的参数变量,替换为实际的配置项值,具体使用方式请参见使用configparser工具优化代码。 -
共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