华为云用户手册

  • 运行时引擎功能介绍 运行时引擎的主要功能如表1所示。 表1 运行时引擎主要功能 服务分类 服务名称 服务简介 微服务开发 微服务平台 微服务平台(NUWA Runtime,简称NUWA)是一款全代管式微服务计算平台,可快速、安全地部署和扩缩容器化应用,是一个广义的Serverless平台,提供容器级别的完全托管的能力,目标是让业务看不到云。管理平台标准化业务的部署形式,业务只需要提供软件包,NUWA Runtime借助底层的弹性伸缩平台完成网络配置、双云集群部署、日志自动收集、灰度多阶段升级等。 负载均衡 负载均衡(Software/Server Load Balancer,简称SLB)基于Nginx/OpenResty构建,作为业务前置的流量开关,提供反向代理;负载均衡、路由分发、灰度分流、限流降级、访问控制、监控告警等能力。 服务发现 服务发现(NUWA Cloud Map,简称Cloud Map)是NUWA的重要组成部分,它设计的目的是作为云服务统一的服务注册发现中心,主要是为解决业务依赖环境配置繁琐的难题,具有服务注册和发现、业务故障隔离、服务路由、服务间调用关系正向设计和治理、微服务配置中心等特性。 数据库治理 数据库治理(WiseDBA)是一站式数据库管理平台与数据库专家服务,为用户提供数据库台账、自动化SQL变更、数据查询、自动化数据提取、性能分析、负载分析、数据库风险诊断等功能。 安全 访问凭据管理服务 访问凭据管理服务(Access Credential Management Service,简称ACMS)提供了微服务之间请求认证、敏感配置的托管和分发功能。
  • 运行时引擎访问凭据管理服务功能介绍 访问凭据管理服务(Access Credential Management Service,简称ACMS,也称为Security Token Service,简称STS)为云服务业务提供了以下两个功能: 微服务之间请求认证 ACMS为每个接入的微服务,颁发了用于通信中进行认证的STS认证凭据,两个微服务之间通信时,可以使用该认证凭据,进行STS认证。 为了让微服务可以安全地获取到STS认证凭据,STS给每个接入的微服务颁发了一张身份证书,该证书中包含了微服务的名称等信息。该证书在微服务部署时,安装到微服务所在的虚拟机或容器里。微服务使用该证书,就可以到STS-Server上获取认证凭据。 两个微服务之间通信时,被调用方(Provider)需要在ACMS管理台上给调用方(Consumer)配置访问权限(Access Control List,简称ACL),开通后,Consumer就可以使用STS下发的认证凭据,用于消息的签名和加密。 敏感配置的托管和分发功能 ACMS为每个接入的微服务都分配了一个用于加密敏感数据的密钥(KEK),对服务也分配了加密敏感数据的密钥(ServiceKEK)。同一个服务下的所有微服务,ServiceKEK是相同的。 利用这两个密钥,微服务可以将一些敏感配置托管到STS,STS会使用KEK或ServiceKEK对数据进行加密,在微服务部署时,由部署平台将敏感数据密文下发到微服务部署的环境上。 微服务启动时,利用微服务身份证书,可以同时获取KEK和ServiceKEK,从而把敏感数据明文解密出来。 父主题: 配置访问凭据管理服务
  • 步骤二:通过IaC发布敏感配置 业务使用Runtime部署并按照IaC规范配置敏感配置项之后,在部署时Runtime会从STS管理台拉取加密配置项,注入到容器的环境变量中,并通过配置渲染工具将敏感配置渲染到业务的配置文件中。 在IaC脚本中的业务配置项配置文件中指定敏感配置项坐标。 此处以在config_records.yaml文件中增加一个名为spring.redis.password的敏感配置项为例。 spring.redis.password: MicroService/{ServiceName}/{MicroServiceName}/spring.redis.password/default 在IaC脚本中的业务配置项属性定义文件中,声明该配置项为敏感配置项。 此处以在config_schema.yaml中声明微服务的敏感业务配置项为例。 type: objectproperties: spring.redis.password: format: sensitive
  • Schema及Keyspace概念介绍 在MySQL类数据库中,Database是数据库对象的物理集合,不同的Database之间资源是完全隔离的(除部分共享对象之外)。每个Database都是一个独立的命名空间,用于存储和管理相关的数据库对象,如表、视图、函数等。Schema与Database在概念上非常接近,通常可以认为一个Database只包含一个Schema,且这个Schema的名称与Database的名称相同,这个Schema包含了该Database中所有的数据库对象。例如,在一个电商系统中,一个Database(或Schema)用于存储用户信息,另一个Database(或Schema)用于存储商品信息。 在 GaussDB 和RDS for PostgreSQL数据库中,Database提供了对资源的物理隔离和管理,Database通常用于表示一个完整的、独立的应用系统或业务环境。例如,一个电商系统可能使用一个单独的Database来存储其所有数据。在同一个Database内,不同的Schema可以用于表示不同的业务模块或功能区域。例如,在电商系统中,商品信息、用户信息、订单信息等可以分别存储在不同的Schema中。 在Cassandra数据库中,Keyspace(键空间)是最高级别的数据结构,在GeminiDB Cassandra中,Keyspace是用于保存列族,用户定义类型的对象。键空间相当于数据库,创建一个键空间即是创建了一个数据库。 在WiseDBA中,Keyspace的创建、同步、下线等操作与MySQL类数据库Schema的相应操作完全相同,为便于描述,下文统一以Schema为例进行介绍。 父主题: 在WiseDBA中创建和管理Schema
  • 新增流控规则 流控规则支持针对微服务/接口的资源流控、不区分微服务接口的全局参数流控和节点级动态流控规则。 在流控服务详情页面,选择“流控规则”页签,单击“新增流控规则”。 配置流控规则相关参数,配置完成后单击“保存”。 资源流控 表3 资源流控参数说明 参数 说明 限流控制类型 选择资源流控,针对微服务/接口资源进行流控。 资源名称 选择新增资源中创建的资源名称,与微服务/接口绑定,每个资源最多创建4条规则,规则的限流控制类型和是否集群流控不能重复。 流控类别 QPS:每秒速率流控。 配额:特定时间的请求阈值。 限流阈值 流控阈值,整个微服务/接口调用总量的阈值,如果请求总量超过该阈值,后续请求会被流控;0表示不流控。 禁用时间 当限流控制类型为QPS时,显示该参数。 流控后禁用时间内的所有请求不再判断请求量,直接全部流控。 允许的突增量 当限流控制类型为QPS时,显示该参数。 流控突发量,该参数可以调整令牌桶的大小,令牌桶大小为(阈值+突增量)/时间窗口,时间窗口单位为s。 是否集群限流 选择“是”或“否”。开启后对集群内此资源的调用总量进行限制。 集群限流阈值模式 当流控类别为QPS,开启集群限流时,显示该参数。 单机均摊 总体阈值 本地配额缓存数 当流控类别为配额,开启集群限流时,显示该参数。 防止D CS 热点key的参数,可以减少DCS的访问,默认值为5。 该参数需要合理配置,配置过小容易造成热点key问题,配置过大可能导致部分节点放通部分节点流控的问题。 时间窗口 填写时间,单位为秒,表示间隔多少秒允许一个请求通过。默认为1秒,取值范围为1~86400。 是否开启流控规则 选择是否开启流控规则。 新增参数 单击“新增参数”,可以根据需要新增多条流控规则。 参数名称:参数级规则的参数名。 限流阈值:默认的参数阈值,如果没有指定参数值,都按该阈值进行流控。 单击新增参数列表前的,单击“新增参数值”,可以为参数配置多条参数值。 参数值:参数级规则的参数值。 参数阈值:指定的参数值按该阈值进行流控。 全局参数流控 全局参数流控规则与资源流控的参数级规则含义类似,仅不对微服务/接口做限制。 表4 全局参数流控参数说明 参数 说明 限流控制类型 选择全局参数 参数名称 填写参数名称。 流控类别 QPS:每秒速率流控。 配额:特定时间的请求阈值。 限流阈值 流控阈值,默认的参数阈值,如果没有指定参数值,都按该阈值进行流控。 禁用时间 当限流控制类型为QPS时,显示该参数。 流控后禁用时间内的所有请求不再判断请求量,直接全部流控。 允许的突增量 当限流控制类型为QPS时,显示该参数。 流控突发量,该参数可以调整令牌桶的大小,令牌桶大小为(阈值+突增量)/时间窗口,时间窗口单位为s。 是否集群限流 选择“是”或“否”。开启后对集群内此资源的调用总量进行限制。 集群限流阈值模式 当流控类别为QPS,开启集群限流时,显示该参数。 单机均摊 总体阈值 本地配额缓存数 当流控类别为配额,开启集群限流时,显示该参数。 防止DCS热点key的参数,可以减少DCS的访问,默认值为5。 该参数需要合理配置,配置过小容易造成热点key问题,配置过大可能导致部分节点放通部分节点流控的问题。 时间窗口 填写时间,单位为秒,表示间隔多少秒允许一个请求通过。默认为1秒,取值范围为1~86400。 是否开启流控规则 选择是否开启流控规则。 新增参数 单击“新增参数值”,配置多条参数值。 参数值:参数级规则的参数值。 参数阈值:指定的参数值按该阈值进行流控。 节点级动态流控 表5 节点级动态流控参数说明 参数 说明 限流控制类型 选择节点级动态流控。 是否开启流控规则 选择是否开启流控规则。 CPU过载阈值 CPU利用率超过该值时,接口的放通比例开始降低,直到降低至最低放通比例;CPU利用率越高,接口放通比例下降越快。该阈值要求为小数,范围为0~1,支持精度为小数点后四位。 CPU恢复阈值 CPU利用率小于该值时,接口的放通比例开始恢复,直到恢复至100%;CPU利用率越低,接口放通比例恢复越快。该阈值要求为小数,范围为0~1,支持精度为小数点后四位,并且小于CPU过载阈值。 最低放通比例 配置各个接口等级对应的最低放通比例,在CPU始终处于过载状态时,仍然能放通该比例的请求。 范围为0~1,支持精度为小数点后四位。 在弹出框中单击“确认”。
  • 新增黑白名单 黑名单规则会直接流控满足规则的请求,白名单规则会放通满足规则的请求。 在流控服务详情页面,选择“黑白名单”页签,单击“新增黑白名单”。 配置黑白名单相关参数,参数说明如表6所示。配置完成后单击“保存”。 表6 新增黑白名单参数说明 参数 说明 资源名称 选择全局黑白名单或具体资源,全局黑白名单不限制微服务/接口,资源黑白名单则限制特定的微服务/接口。 参数名称 参数级规则的参数名。 字符长度0~50,可以由字母、数字、下划线、短横线、点组成,不能包含特殊字符,例:black_rule-001。 名单类型 白名单 黑名单 每个资源或全局黑白名单下,同一参数名称只支持添加黑白名单各一条。 开启黑白名单 选择是否开启黑白名单。 名单列表 黑白名单列表。如果存在多个,使用英文逗号分隔,不允许存在空格。 在弹出框中单击“确认”。
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 success Array of GetKieConfigs objects 导入成功的配置项列表。 failure Array of failure objects 导入失败的配置项及其错误列表。 表6 GetKieConfigs 参数 参数类型 描述 id String 配置项的id。 key String 配置项的key。 labels Object 配置项的标签。 value String 配置项的值。 value_type String 配置项value的类型。 status String 配置项的状态。 create_time Integer 创建时间。 update_time Integer 更新时间。 create_revision Long 创建配置的版本号 update_revision Long 修改配置的版本号 表7 failure 参数 参数类型 描述 key String 导入失败配置的key。 labels Object 导入失败配置的label。 error_code String 导入失败的错误码。 error_message String 导入失败的原因。 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。
  • 响应示例 状态码: 200 success { "success" : [ { "id" : "8a9e6a5d-8d65-48fb-a40c-5150c8479da8", "key" : "string", "labels" : { "key" : "value" }, "value" : "string", "value_type" : "text", "status" : "enabled", "create_time" : 1623139038, "update_time" : 1623139038, "create_revision" : 13, "update_revision" : 13 } ], "failure" : [ { "key" : "string", "labels" : { "key" : "value" }, "error_code" : "SVCSTG.004xxxxx", "error_message" : "Invalid parameters" } ]}
  • URI POST /v1/{project_id}/kie/file 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户子项目的唯一标识。字符长度为1~64。 表2 Query参数 参数 是否必选 参数类型 描述 override 否 String 覆盖策略。 force: 强制覆盖。 abort:遇到第一个重复时终止导入后续的kv。 skip:跳过重复的key。 缺省值:force 枚举值: force abort skip label 否 String 指定label导入,格式为:{标签key}:{标签value},如果不填则按body的label导入。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 X-Enterprise-Project-ID 否 String 如果不带则默认企业项目为"default",ID为"0"。 缺省值:0 Content-Type 是 String 该字段内容填为 "application/json;charset=UTF-8"。 Accept 是 String 该字段内容填为 "application/json" 表4 FormData参数 参数 是否必选 参数类型 描述 upload_file 是 File 导入文件内容的格式必须为键值对映射,例如:{"data":[{"key1":"value1","key2":"value2"}]}}
  • 请求示例 POST https://{endpoint}/v2/{project_id}/enginemgr/gateways/{gateway_id}/plugins{ "imagePullPolicy" : "UNSPECIFIED_POLICY", "imagePullSecret" : "string", "phase" : "UNSPECIFIED_PHASE", "pluginConfig" : { }, "pluginName" : "string", "priority" : 0, "sha256" : "string", "url" : "string", "verificationKey" : "string"}
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 imagePullPolicy String 拉取OCI镜像的行为。 枚举值: UNSPECIFIED_POLICY IfNotPresent Always imagePullSecret String 拉取OCI 镜像的凭据。 phase String 确定插件将在过滤器链中的何处注入。 枚举值: UNSPECIFIED_PHASE AUTHN AUTHZ STATS pluginConfig Object 传递给插件的配置。 pluginName String 插件名。 priority Integer 插件的调用优先级。 sha256 String 用于校验插件和容器的校验和。 url String 插件或容器的下载地址。 verificationKey String 校验值。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String IAM -Token。 Accept 否 String 该字段内容填为 "application/json"。 表3 请求Body参数 参数 是否必选 参数类型 描述 imagePullPolicy 否 String 拉取OCI镜像的行为。 枚举值: UNSPECIFIED_POLICY IfNotPresent Always imagePullSecret 否 String 拉取OCI 镜像的凭据。 phase 否 String 确定插件将在过滤器链中的何处注入。 枚举值: UNSPECIFIED_PHASE AUTHN AUTHZ STATS pluginConfig 否 Object 传递给插件的配置。 pluginName 否 String 插件名。 priority 否 Integer 插件的调用优先级。 sha256 否 String 用于校验插件和容器的校验和。 url 否 String 插件或容器的下载地址。 verificationKey 否 String 校验值。
  • 响应示例 状态码: 200 创建成功 { "imagePullPolicy" : "UNSPECIFIED_POLICY", "imagePullSecret" : "string", "phase" : "UNSPECIFIED_PHASE", "pluginConfig" : { }, "pluginName" : "string", "priority" : 0, "sha256" : "string", "url" : "string", "verificationKey" : "string"}
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为 "application/json;charset=UTF-8"。 X-Auth-Token 是 String 用户Token。 x-engine-id 是 String 微服务引擎专享版的实例ID。 X-Enterprise-Project-ID 是 String 企业项目ID。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 X-Enterprise-Project-ID 否 String 如果不带则默认企业项目为"default",ID为"0"。 Content-Type 是 String 该字段内容填为 "application/json;charset=UTF-8"。 Accept 是 String 该字段内容填为 "application/json"。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 quotas quotas object 微服务引擎配额内容。 表4 quotas 参数 参数类型 描述 resources Array of TenantQuotaUsed objects 微服务引擎配额详情列表。 表5 TenantQuotaUsed 参数 参数类型 描述 type String 配额类型,该字段内容固定值为 "Engine"。 used Integer 已使用的配额数量。 quota Integer 引擎总配额数量。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。 状态码: 500 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 id String 引擎id。 name String 引擎名字。 job_id Integer 任务ID。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。
  • 请求示例 PUT https://{endpoint}/v2/{project_id}/enginemgr/engines/{engine_id}/resize{ "flavor" : "string", "inputs" : { "additionalProp1" : "string", "additionalProp2" : "string", "additionalProp3" : "string" }}
  • 响应示例 状态码: 200 查询指定类型治理策略列表响应结构体。 [ { "matchGroup" : { "name" : "", "status" : "enabled", "selector" : { "environment" : "string", "app" : "string", "service" : "string" }, "spec" : { "alias" : "string", "matches" : [ { "name" : "string", "apiPath" : { }, "headers" : { }, "method" : [ "string" ], "serviceName" : "string" } ] } }, "policies" : [ { "id" : "string", "name" : "string", "kind" : "string", "status" : "string", "selector" : { "environment" : "string", "app" : "string", "service" : "string" }, "spec" : { } } ]} ]
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 [数组元素] Array of GovPolicyDetail objects 查询治理策略列表响应结构体。 表4 GovPolicyDetail 参数 参数类型 描述 matchGroup CreateBussinessScene object 流量定义。 policies Array of policies objects 治理策略定义。 表5 CreateBussinessScene 参数 参数类型 描述 name String 流量名称。 status String 启用状态,支持enabled和disabled。 缺省值:enabled selector GovSelector object 治理策略下发范围。 spec spec object 流量特征描述。 表6 spec 参数 参数类型 描述 alias String 特征名称。 matches Array of matches objects 匹配条件定义。 表7 matches 参数 参数类型 描述 name String 条件名称。 apiPath Object 匹配的PATH。 headers Object 匹配的Headers。 method Array of strings 匹配的Method列表。 serviceName String 匹配的微服务名称。 表8 policies 参数 参数类型 描述 id String 治理策略ID。 name String 治理策略名称。 kind String 治理类型,支持填写retry、rate-limiting、loadbalance、circuit-breaker、instance-isolation、fault-injection和bulkhead。 status String 启用状态,支持enabled和disabled。 selector GovSelector object 治理策略下发范围。 spec Object 治理策略定义内容。 表9 GovSelector 参数 参数类型 描述 environment String 所属环境。 app String 所属应用。 service String 可选,治理下发到微服务级别。 状态码: 400 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为 "application/json;charset=UTF-8"。 X-Auth-Token 是 String 用户Token。 x-engine-id 是 String 微服务引擎专享版的实例ID。 X-Enterprise-Project-ID 是 String 企业项目ID。 x-environment 否 String 所属环境。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为 "application/json;charset=UTF-8"。 X-Auth-Token 是 String 用户Token。 x-engine-id 是 String 微服务引擎专享版的实例ID。 X-Enterprise-Project-ID 是 String 企业项目ID。 x-environment 否 String 所属环境。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 否 String 治理策略名称。 selector 否 GovSelector object 治理策略下发范围。 spec 否 Object 治理策略定义内容。 表4 GovSelector 参数 是否必选 参数类型 描述 environment 否 String 所属环境。 app 否 String 所属应用。 service 否 String 可选,治理下发到微服务级别。
  • 请求示例 PUT https://{endpoint}/v3/{project_id}/govern/governance/{kind}/{policy_id}{ "name" : "string", "selector" : { "environment" : "string", "app" : "string", "service" : "string" }, "spec" : { }}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Authorization 否 String 若ServiceComb引擎专享版开启了安全认证,此参数必填。否则,无此参数。 开启了安全认证的ServiceComb引擎专享版Token,格式为: Authorization:Bearer {Token} Token获取方法,请参考获取ServiceComb引擎专享版用户Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 value 是 String 配置的value。 status 否 String 配置的状态。
  • 响应示例 状态码: 200 修改成功,返回配置信息。 { "id": "8a9e6a5d-8d65-48fb-a40c-5150c8479da8", "key": "string", "labels": { "key1": "value1", "key2": "value2" }, "value": "this is a test", "value_type": "text", "status": "enabled", "create_time": 1623139038, "update_time": 1623139038, "create_revision": 13, "update_revision": 13,}
  • 请求示例 修改配置ID为8a9e6a5d-8d65-48fb-a40c-5150c8479da8的配置值为this is a test,设置其配置状态为enabled。 PUT https://{endpoint}/v1/{project_id}/kie/kv/8a9e6a5d-8d65-48fb-a40c-5150c8479da8{ "value": "this is a test", "status": "enabled"}
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 kie SingleKieInfo 一条配置信息。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误代码。 error_message String 错误信息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误代码。 error_message String 错误信息。
  • 请求示例 创建一条配置,其标签信息为: "key1": "value1", "key2": "value2"。 POST https://{endpoint}/v1/{project_id}/kie/kv{ "key": "String", "value": "String", "labels": { "key1": "value1", "key2": "value2", }, "status": "String", "value_type": "String"}
  • 响应示例 状态码: 200 创建成功,返回配置信息。 { "id": "8a9e6a5d-8d65-48fb-a40c-5150c8479da8", "key": "string", "labels": { "key1": "value1", "key2": "value2" }, "value": "string", "value_type": "text", "status": "enabled", "create_time": 1623139038, "update_time": 1623139038, "create_revision": 13, "update_revision": 13,}
共99354条