云服务器内容精选
-
步骤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” 设置完成后,单击“下一步”,进入框架配置页面。 父主题: 编辑服务
-
认证配置 在配置文件中加入devspore相关配置,如下: devspore: auth: exclude-paths: GET:/test # 不需要认证的路径 in-header: true #token是否在header中,默认true token-name: X-Auth-Token #token在header中的参数名,inHeader设置为true时生效,默认X-Auth-Token oneaccess: ignore-ssl: true #是否校验oneaccess证书 jwt: jwk-set-uri: https://arvymzmajv.huaweicloudoneaccess.com/api/v1/oauth2/keys #对应的oneaccessjwk地址 issuer-uri: https://arvymzmajv.huaweicloudoneaccess.com/api/v1/oauth2 #签发机构 arvymzmajv.huaweicloudoneaccess.com为本文示例中使用的 域名 ,实际应用中请换成自己对应的域名。 添加完后启动项目即可开启对token的认证。
-
devspore-probe使用概述 devspore-probe主要是用来对微服务进行监控指标暴露的功能组件,devspore-probe对Micrometer做二次封装,借助自动配置,默认提供多种中间件的兼容,同时支持指标扩展,业务可根据自身需要扩展指标。 devspore-probe除了原有的Micrometer的功能外,还提供了以下两种功能: 监控数据自动上报 AOM 平台 支持注解形式自定义监控指标 父主题: devspore-probe使用指南
-
条件(Condition) 条件键(Condition)是SCP生效的特定条件,包括条件键和运算符。 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:全局条件键。 服务级条件键(前缀通常为服务缩写,如workspace:)仅适用于对应服务的操作,详情请参见表4。 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个 VPC终端节点 发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见:运算符。 云桌面 定义了以下可以在SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。 表4 云桌面支持的服务级条件键 服务级条件键 类型 单值/多值 说明 workspace:AccessMode string 多值 根据请求参数中指定的接入方式过滤访问,有效的条件值应为INTERNET、DEDICATED、BOTH。 workspace:CreateOrderType string FALSE 根据请求参数中指定的创建订单类型过滤访问,有效的条件值应为createDesktops、addVolumes、createDehHosts、rebuildDesktops、createDesktopPool、expandDesktopPool、applyDesktopsInternet、createExclusiveHosts、subscribeUserSharer、createApps。 workspace:ChangeOrderType string FALSE 根据请求参数中指定的变更订单类型过滤访问,有效的条件值应为resizeDesktops、expandVolumes、meteredToPeriod、ADD_VOLUME、EXTEND_VOLUME、RESIZE、CHANGE_IMAGE、ADD_SUB_RESOUR CES 、DELETE_SUB_RESOURCES。 workspace:AssociatePublicIp boolean FALSE 按照关联eip开关值筛选桌面绑定eip的权限。
-
配置说明 表1 配置说明 参数名 是否必须 功能 devspore.auth.exclude-paths false 不需要认证的路径,多个规则用分号(;)分隔,优先级大于devspore.auth.auth-patterns。 devspore.auth.auth-patterns false 需要认证的路径,多个规则用分号(;)分隔。 devspore.auth.in-header false token是否在header中,默认true。 devspore.auth.token-name false token在header中的参数名,inHeader设置为true时生效,默认“X-Auth-Token”。
-
实现TokenParser接口 import com.huawei.devspore.plugin.spi.authentication.UserInfo; import com.huaweicloud.devspore.auth.commons.spi.TokenParser; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; @Component public class CustomTokenParser implements TokenParser { /** * 若token定义在header中,可使用该接口,token获取根据配置由devspore-auth获取 * * @param token * @param response * @return UserInfo */ @Override public UserInfo parserToken(String token, HttpServletResponse response) { // 自定义token解析 ...... // 判断token是否过期 ...... UserInfo userInfo = new UserInfo(); // 根据解析后的token信息填充UserInfo对象 ...... return userInfo; } /** * 若token未定义在header中,使用该接口 * * @param request * @param response * @return UserInfo */ @Override public UserInfo parserToken(HttpServletRequest request, HttpServletResponse response) { // 从httpServletRequest获取token ...... // 自定义token解析 ...... // 判断token是否过期 ...... UserInfo userInfo = new UserInfo(); // 根据解析后的token信息填充UserInfo对象 ...... return userInfo; } }
-
认证配置 在配置文件中加入oauth2认证相关配置和devspore相关配置,如下: devspore: auth: exclude-paths: GET:/test # 不需要认证的路径,多个规则用;分隔 auth-patterns: /v1/** # 需要认证的路径,多个规则用;分隔 in-header: true # token是否在header中,默认true token-name: X-Auth-Token # token在header中的参数名,inHeader设置为true时生效,默认X-Auth-Token
-
实现UserStore接口 import com.huawei.devspore.plugin.spi.authentication.UserInfo; import com.huawei.devspore.plugin.spi.authentication.UserStore; import org.springframework.stereotype.Component; @Component public class CustomUserStore implements UserStore { @Override public void setUserInfo(UserInfo userInfo) { // 自定义存储用户信息 ...... } @Override public UserInfo getUserInfo() { UserInfo userInfo = new UserInfo(); // 自定义用户信息获取 ...... return userInfo; } }
-
前提条件 只有工作空间管理员或项目管理员,才能为其他用户添加项目级角色。不同的是具备工作空间管理员权限的用户,可以为用户添加工作空间下所有项目的权限。而项目管理员只能为用户添加其所在项目的角色权限。 待添加的 IAM 用户已创建(如IAM用户2)。如何创建IAM用户,请参见创建IAM用户。 IAM用户(如IAM用户1)必须已添加到用户组admin或group。加入用户组后,用户才会具备用户组的权限。若不加入用户组,登录AstroPro服务时,会提示您没有当前服务的访问权限。 admin:缺省用户组,具有所有云服务资源的操作权限。将用户加入该用户组后,用户可以操作并使用所有云服务资源。如果您创建的IAM用户是管理员,才需要将其加入默认用户组“admin”中。 group:自定义的用户组,如何创建一个用户组,请参见创建用户组并授权。自定义用户组时,必须为用户组添加“Astro Pro FullAccess”和“Astro Pro InstanceManagement”系统策略,如图3。 图2 通过用户组为用户授权 图3 自定义用户组必须具备权限
-
使用说明 AstroPro为每个项目预置了项目管理员、架构师和开发者三种类型的角色。 项目管理员 可以增删改査项目下的所有资源。 可以为项目下的所有角色分配用户(仅限于同账号下的用户,如图1中的IAM用户1、IAM用户2)。 图1 华为账号与IAM用户 架构师 可以新建服务。 可以删除本人创建的服务,不能删除其他人创建的服务。 可以对项目下的所有服务进行编辑。 开发者 可以查看项目下的所有资源。 可以重新编译有权限项目下的服务并下载代码。
-
属性说明 在业务设计页面,从“business”中,拖拽“Abstract BO”对象至画布空白区域。选中对象,在右侧页面设置对象属性,如图4所示。 图4 Abstract BO 对象名称:设置对象的名称,必须使用大驼峰格式,不允许存在连续的大写字母。 中文名:设置对象的中文名称。 BO属性操作:单击“编辑字段”,可以为对象添加所需的字段。 软删除策略:开启软删除策略后,数据删除时执行逻辑删除,数据仍然保留在数据库中。关闭软删除策略后,数据删除为物理删除,即直接从数据库中删除,不可恢复。 购买AstroPro企业版实例时,才会显示“软删除策略”配置项。 恢复软删除:当开启“软删除策略”时可配置。开启恢复软删除,则支持将软删除的数据恢复。 操作:对新建的对象可执行哪些操作,如新增、更新、删除、查询、批量新增、批量更新、批量查询、批量删除和自定义查询。默认值为新增、更新、删除、查询和批量查询。 对象版本化:通过版本号的机制实现的乐观锁功能。开启此功能时,会在表中自动添加一个devspore_verion的字段来记录版本。在更新操作时会检查当前版本号和DB中的版本号是否一致,一致则更新数据并增加版本号,如果不同则说明数据已被其他事务修改,更新失败。 购买AstroPro企业版实例时,才会显示“对象版本化”配置项。 对象描述:对象的描述信息。
-
功能介绍 Abstract BO是一个抽象对象,不能单独存在,没有数据库表,需要和业务对象建立继承的关系。建立继承关系后,业务对象会继承抽象对象中的字段。例如,抽象对象Abstract和业务对象Role存在继承关系,在抽象对象Abstract中,新建一个name字段,该字段会被Role自动继承。 图1 和业务对象Role建立继承关系 图2 在Abstract BO中新建一个name字段 图3 Role中继承name字段
-
操作步骤 在业务设计页面,单击“自定义DTO”。 图1 自定义DTO 单击“新增”,添加一个自定义DTO。 图2 自定义一个Dto1 在自定义API的参数或返回体中,使用自定义DTO。 从“business”中,拖拽“BO”对象至画布空白区域。 选中BO对象,在对象属性中,单击“自定义API”。 图3 自定义API 单击“新增”,添加一个自定义API。 图4 自定义一个API 在请求对象或返回对象的参数中,使用自定义DTO。 图5 在自定义API中使用自定义DTO
-
属性说明 在业务设计页面,从“business”中,拖拽“Value Object”对象至画布空白区域。选中对象,在右侧页面设置对象属性,如图4所示。 图4 Value Object 对象名称:设置对象的名称,必须使用大驼峰格式,不允许存在连续的大写字母。 中文名:设置对象的中文名称。 BO属性操作:单击“编辑字段”,可以为对象添加所需的字段。 软删除策略:开启软删除策略后,数据删除时执行逻辑删除,数据仍然保留在数据库中。关闭软删除策略后,数据删除为物理删除,即直接从数据库中删除,不可恢复。 购买AstroPro企业版实例时,才会显示“软删除策略”这个配置项。 恢复软删除:当开启“软删除策略”时可配置。开启恢复软删除,则支持将软删除的数据恢复。 支持BO多租:BO是否支持多租。开启BO多租时,请确保“多租模型”已开启。 购买AstroPro专业版及企业版实例时,才会显示“支持BO多租”配置项。 图5 开通多租模型 不允许修改:对象是否支持修改。 操作:对新建的对象可执行哪些操作,如新增、更新、删除、查询、批量新增、批量更新、批量查询、批量删除和自定义查询。默认值为新增、更新、删除、查询和批量查询。 对象版本化:通过版本号的机制实现的乐观锁功能。开启此功能时,会在表中自动添加一个devspore_verion的字段来记录版本。在更新操作时会检查当前版本号和DB中的版本号是否一致,一致则更新数据并增加版本号,如果不同则说明数据已被其他事务修改,更新失败。 购买AstroPro企业版实例时,才会显示“对象版本化”配置项。 对象描述:对象的描述信息。
-
示例 创建服务时“Package”设置为“com.astropro”。在业务设计中添加自定义API,动作名称为action1,请求方式为GET,返回对象为200,代码生成层勾选接口层和应用层,则代码生成时,将在接口层和应用层生成对应API的代码,如图6所示。 图4 设置打包路径 图5 添加自定义API 图6 查看生成代码 表2 不同目录结构下实际影响代码路径说明 目录结构 接口层 应用层 数据访问层 DDD {package}.api.xxx {package}.app.xxx {package}.infrastructure.repository.base.xxx Single {package}.api.xxx {package}.service.xxx {package}.repository.base.xxx base/service {package}.api.xxx {package}.service.xxx {package}.repository.base.xxx package为创建服务时定义的打包路径。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格