云服务器内容精选

  • 操作步骤 登录 函数工作流 控制台,左侧导航栏单击“函数流”。 单击“创建标准函数流”或“创建快速函数流”,进入新建函数流编排页面。 在函数流编排区域,通过拖拽组件进行流程编排。 单击编辑框中的EG节点进行编辑。配置EG参数,参数说明如表1所示。 图1 EG节点配置 表1 EG节点参数说明 参数 说明 事件通道 事件通道负责接收来自事件源的事件。函数流仅支持编排自定义事件通道:您自行创建的事件通道,用于接收自定义事件源产生的事件。 详情请参见事件通道概述。 事件源 事件源是事件的来源,函数流仅支持自定义的应用作为事件源,通过自定义的事件通道发布事件到事件网格。 详情请参见事件源概述。 事件内容格式 参数“事件负载内容”的内容格式。(目前只支持application/json格式。) 事件负载内容 事件内容。 事件发生主题 事件发生的主题或对象,用以标识哪个具体对象发生了当前事件 输入过滤表达式 基于上一个流程的json输出参数,可以使用JSONPath格式来选择性的过滤出当前流程的输入参数。 输出过滤表达式 基于当前流程的json输出参数,可以使用JSONPath格式来选择性的过滤出下一流程的输出参数。
  • 健康检查方式 HTTP请求检查 HTTP请求方式针对的是提供HTTP/HTTPS服务的应用组件,集群周期性地对该应用发起HTTP/HTTPS GET请求,如果HTTP/HTTPS response返回码属于200~399范围,则证明探测成功,否则探测失败。使用HTTP请求探测必须指定应用监听的端口和HTTP/HTTPS的请求路径。 例如:提供HTTP服务的应用组件,端口为80,HTTP检查路径为/health-check,主机地址为containerIP,那么集群会周期性地对应用发起如下请求: GET http://containerIP:80/health-check HTTP请求检查中的主机地址,如果不填写,默认为实例IP。 TCP端口检查 对于提供TCP通信服务的应用,集群周期性地对该应用建立TCP连接。如果连接成功,则证明探测成功,否则探测失败。选择TCP端口探测方式,必须指定应用监听的端口。比如有一个nginx应用组件,它的服务端口是80,对该应用组件配置了TCP端口探测,指定探测端口为80,那么集群会周期性地对该应用组件的80端口发起TCP连接,如果连接成功则证明检查成功,否则检查失败。 执行命令检查 命令检查方式要求用户指定一个应用组件内的可执行命令,集群会周期性地在应用组件内执行该命令,如果命令的返回结果是0则检查成功,否则检查失败。 对于上面提到的TCP端口检查和HTTP请求检查,都可以通过执行命令检查的方式来替代: 对于TCP端口探测,可以使用程序来对应用组件的端口进行connect,如果connect成功,脚本返回0,否则返回-1。 对于HTTP请求探测,可以使用脚本来对应用组件进行wget: wget http://127.0.0.1:80/health-check 并检查response的返回码,如果返回码在200~399的范围,脚本返回0,否则返回-1。 必须把要执行的程序放在应用组件的镜像里面,否则会因找不到程序而执行失败。 如果执行的命令是一个shell脚本,由于集群在执行应用组件里的程序时,不在终端环境下,因此不能直接指定脚本为执行命令,需要加上脚本解释器。比如脚本是/data/scripts/health_check.sh,那么使用执行命令检查时,指定的程序应该是sh /data/scripts/health_check.sh。究其原因是集群在执行应用组件里的程序时,不在终端环境下。
  • 请求示例 场景一:CCE容器环境下创建组件 创建名为mycomponent的组件。组件部署使用1.2.0版本的Java技术栈,组件来源选择存储在OBS下bucket00001桶里的weather-1.0.0.jar包,部署使用的资源为id为fd92bfab-73b3-11ee-90f0-0255ac1001b3的云容器引擎。 { "name": "mycomponent", "description": "", "labels": [ { "key": "com-key", "value": "com-value" } ], "version": "2023.1102.17105", "environment_id": "b489f7b4-2539-45a1-ba71-4728961434ca", "runtime_stack": { "name": "OpenJDK8", "version": "1.2.0", "type": "Java", "deploy_mode": "container" }, "source": { "kind": "package", "url": "obs://bucket0001/weather-1.0.0.jar", "version": "", "storage": "obs" }, "tomcat_opts": { "server_xml": "" }, "refer_resources": [ { "id": "fd92bfab-73b3-11ee-90f0-0255ac1001b3", "type": "cce", } ], "replica": 1, "limit_cpu": 0.25, "limit_memory": 0.5, "request_cpu": 0.25, "request_memory": 0.5 } 场景二:E CS 虚拟机环境下创建组件 创建名为mycomponent的组件。组件部署使用1.2.0版本的Java技术栈,组件来源选择存储在OBS下bucket00001桶里的weather-1.0.0.jar包,部署使用的资源为id为67835bb3-1235-4cc9-be71-becbb2b4ca0d的弹性云服务器。 { "name": "mycomponent", "description": "", "labels": [ { "key": "com-key", "value": "com-value" } ], "version": "2023.1102.17540", "environment_id": "9a075df5-104f-4e21-9dbf-ffc3572effdf", "runtime_stack": { "name": "OpenJDK8", "version": "1.2.0", "type": "Java", "deploy_mode": "virtualmachine" }, "source": { "kind": "package", "url": "obs://bucket0001/weather-1.0.0.jar", "version": "", "storage": "obs" }, "tomcat_opts": { "server_xml": "" }, "refer_resources": [ { "id": "23598aa9-7a6b-43c7-a53a-39ca5e7290fb", "type": "ecs" } ], "replica": 1, "external_accesses": [ { "protocol": "http", "address": "192.168.0.169", "forward_port": 80 } ] }
  • 添加删除 MRS 集群组件前提条件 需要在 IAM 用户所属的用户组中,设置用户组的权限。 由于在集群上添加服务和删除服务属于高危操作,因此需要给该用户组绑定MRS FullAccess、MRS Administrator、Server Administrator 、Tenant Guest和MRS Administrator或Tenant Administrator任意一个策略才可以执行。 具体权限说明请参见IAM用户同步MRS集群说明。 如果通过MRS管理控制台操作,需要已完成IAM用户同步(在集群详情页的“概览”页签,单击“IAM用户同步”右侧的“同步”进行IAM用户同步)。
  • 使用场景 表1 存储项使用场景说明 项目 场景 云硬盘存储 EVS目前支持普通I/O、高I/O、超高I/O三种规格。 普通I/O:后端存储由SATA存储介质提供,适用于大容量、读写速率要求不高、事务处理较少的场景,如:开发测试、企业办公应用。 高I/O:后端存储由SAS存储介质提供,适用于性能相对较高、读写速率要求高、有实时数据存储需求的场景,如:创建文件系统、分布式文件共享。 超高I/O:后端存储SSD存储介质提供,适用于高性能、高读写速率要求、数据密集型的场景,如:NoSQL、关系型数据库、 数据仓库 (如Oracle RAC、SAP HANA)。 文件存储 文件存储适用于 媒体处理 、内容管理、大数据和分析工作负载程序等场景。 对象存储 标准存储: 适用于有大量热点文件或小文件,且需要频繁访问(平均一个月多次)并快速获取数据的业务场景。例如云应用、数据分析、内容分析、热点对象等。 低频访问存储: 适用于不频繁访问(平均一年少于12次),但需要快速获取数据的业务场景。例如静态网站托管、备份/活跃归档、作为云服务的存储资源池或者备份存储等。 极速文件存储 极速文件存储具有按需申请,快速供给,弹性扩展,方便灵活等特点,适用于DevOps、容器微服务、企业办公等应用场景。 主机路径挂载 将应用组件所在宿主机的文件目录挂载到应用指定的挂载点中,如应用组件需要访问/etc/hosts则可以使用HostPath映射/etc/hosts等场景。 须知: 请不要挂载在系统目录下,如“/”、“/var/run”等,会导致应用组件实例异常。建议挂载在空目录下。若目录不为空,请确保目录下无影响应用组件实例启动的文件。否则文件会被替换,导致应用组件实例启动异常。 临时路径挂载 用于临时存储,生命周期与应用组件实例相同。应用组件实例消亡时,EmptyDir会被删除,数据会永久丢失。 配置项挂载 将配置项中的key映射到应用组件中,可以用于挂载配置文件到指定应用组件目录。 密钥挂载 将应用组件认证信息、密钥等敏感信息存储在密钥中,并将密钥挂载到应用组件的指定路径中。 网络文件系统 用于挂载远程网络文件到容器中,实现跨实例、跨节点数据共享,并实现数据持久化存储和保护。 说明: 仅“亚太-新加坡”区域支持。
  • 单批发布方式重新部署组件 登录ServiceStage控制台。 选择以下任意方式进入组件“部署记录”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“部署记录”。 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“部署记录”。 在“部署记录”列表,选择待作为配置模板的历史版本部署记录。 单击在页面右上方“使用此版本重新部署”,弹出“重新部署”对话框。 “部署类型”选择“单批发布”,单击“确定”。 参考下表设置组件版本配置信息,其中带“*”标志的参数为必填参数。 参数 说明 技术栈 选择组件技术栈及版本。 技术栈详情,请参考技术栈简介。 *YAML模式 选择使用YAML配置来重新部署组件。 选择关闭:使用界面配置来重新部署组件。 选择开启:使用YAML配置来重新部署组件,从部署了待升级组件的CCE自动同步组件最新负载信息用于修改后重新部署组件。您也可以单击“导入YAML文件”,导入已经编辑好的待重新部署组件YAML配置文件。 说明: 使用YAML配置来重新部署组件,组件YAML配置文件中各参数的说明请参考Deployment。 *软件包/镜像 固定为创建并部署组件时选择的组件来源。 “YAML模式”选择关闭:选择“源码仓库”,参考创建仓库授权创建授权,设置代码来源;选择软件包或者镜像包,则固定为创建并部署组件时选择的软件包类型(Jar、War、Zip)或者镜像包类型。由您选择的技术栈类型决定,具体情况请参考表1。 “YAML模式”选择开启:选择“源码仓库”,参考创建仓库授权创建授权,设置代码来源;选择软件包,则固定为创建并部署组件时选择的软件包类型(Jar、War、Zip)。由您选择的技术栈类型决定,具体情况请参考表1。 技术栈选择Docker时,无此参数。 *上传方式 “YAML模式”选择关闭:选择软件包或者镜像包,重新选择已上传的软件包/镜像包,上传方式请参考组件来源说明。 说明: 如果选择的是镜像包: 如果创建并部署组件时已经勾选了“启用多容器”,选择指定的容器,单击,可以指定该容器为初始化容器,用于业务容器启动前安装特定工具或脚本。多个容器中,至少需要指定一个容器作为业务容器(非初始化容器)。初始化容器详情,请参考Init容器。 可重新自定义容器名称:长度为1到63个字符,可以包含小写英文字母、数字或中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 单击已选择的容器卡片右上角的,可修改容器的镜像包来源。 “YAML模式”选择开启:选择软件包,重新选择已上传的软件包,上传方式请参考组件来源说明。技术栈选择Docker时,无此参数。 如果组件来源为软件包且需要使用例如JFrog(制品仓库)作为软件包存储仓库,您可以选择“自定义文件地址”上传方式。 输入软件包所在的自定义HTTP/HTTPS协议的文件下载地址。 选择是否开启认证。 不开启认证,则默认任何用户都可以下载上传到自定义文件地址的软件包。 单击开启认证,则只有通过认证的用户才能下载上传到自定义文件地址的软件包。“认证方式”支持“用户密码认证”、“自定义Header认证”,认证方式及对应的认证参数由您自定义的文件地址所在服务器支持的认证方式决定。 镜像访问凭证 容器部署方式部署的组件,支持设置。 最多支持选择16个镜像访问凭证。 单击“创建密钥”,可以创建新的镜像访问凭证。请参考创建密钥,“密钥类型”必须选择kubernetes.io/dockerconfigjson。 *编译命令 “YAML模式”选择关闭、组件来源是“源码仓库”且所选择的技术栈类型为Java、Tomcat、Node.js、Python、Php时,支持设置“编译命令”。 使用默认命令或脚本:优先执行代码根目录下的build.sh,不存在则按照所选语言的通用方法编译,如Java语言的mvn clean package。 使用自定义命令:根据所选语言自定义编译命令,或修改build.sh文件后选择使用默认命令或脚本。 须知: 选择“使用自定义命令”时,请在echo、cat、debug命令中慎用敏感信息或者进行敏感信息加密,以免造成敏感信息泄露。 在项目子目录下执行编译命令,需先进入项目子目录,再执行其余脚本命令。例如: cd ./weather/ mvn clean package *Dockerfile地址 “YAML模式”选择关闭、组件来源是“源码仓库”且所选择的技术栈类型为Java、Tomcat、Node.js、Python、Php时,支持设置“Dockerfile地址”。 “Dockerfile地址”即Dockerfile文件相对于项目的根目录(./)所在的目录,Dockerfile文件用于镜像构建。 如果未指定“Dockerfile地址”,默认查找项目根目录下的Dockerfile;如果项目根目录下也没有Dockerfile文件,则根据选定的运行环境自动生成Dockerfile。 *组件版本 组件版本号,支持自动生成和自定义版本号。 自动生成版本号:单击“自动生成”,默认以您单击“自动生成”时的时间来生成版本号,格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。 自定义版本号:输入格式为A.B.C或者A.B.C.D,A、B、C、D为自然数。例如,1.0.0或者1.0.0.0。 须知: 自定义版本号需唯一,请勿与该组件的历史版本号重复,否则会导致本次部署记录覆盖掉相同版本的历史部署记录。 *容器名称 技术栈不是Docker时,需设置此参数。 长度为1到63个字符,可以包含小写英文字母、数字或中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 资源 固定为选择的历史版本配置,不可修改。 “YAML模式”选择关闭时,显示已设置的资源配置。 JVM参数 固定为选择的历史版本配置,不可修改。 “YAML模式”选择关闭、组件技术栈类型为Java/Tomcat时,可用于配置Java代码运行时的内存参数大小。 Tomcat配置 固定为选择的历史版本配置,不可修改。 “YAML模式”选择关闭、组件技术栈类型为Tomcat时,可用于配置Tomcat请求路径、端口号等参数。 云服务配置 “YAML模式”选择关闭时,请参考管理容器部署组件云服务配置,设置“微服务引擎”、“分布式缓存”参数。 容器配置 固定为选择的历史版本配置,不可修改。 “YAML模式”选择关闭时,显示已设置的容器配置。 应用配置 固定为选择的历史版本配置,不可修改。 “YAML模式”选择关闭时,显示已绑定的应用配置。 高级配置 固定为选择的历史版本配置,不可修改。 “YAML模式”选择关闭时,显示已设置的高级配置。 单击“升级”。 在组件重新部署过程中,如果发现组件配置错误等原因,您可以单击“中断”终止组件重新部署,然后单击“升级”,参考升级单个组件版本配置,重新设置组件配置并完成组件重新部署。 等待组件状态由“升级/回滚中”转换为“运行中”,组件重新部署成功。 在组件“部署记录”页面,可查看部署日志。 如果出现“查询工作负载实例状态失败”日志信息,您可以单击“查看事件”,进入事件列表查看详情。
  • 批量升级组件版本配置 登录ServiceStage控制台。 单击“应用管理”。 单击待升级组件所在的应用名称,进入“应用概览”页面。 勾选“组件列表”中待批量升级的组件,单击“批量升级”。 参考下表设置待升级组件版本配置信息。 参数 说明 组件版本 升级后的组件版本号。 默认以您开始升级组件的时间来生成版本号,格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。 您也可以自定义版本号,输入格式为:A.B.C或者A.B.C.D。A、B、C、D为自然数,例如:1.0.0或者1.0.0.0。 须知: 自定义版本号需唯一,请勿与该组件的历史版本号重复,否则会导致本次部署记录覆盖掉相同版本的历史部署记录。 镜像包 单击,重新选择组件来源,请参考组件来源说明。 容器部署方式部署的组件,如果选择的是镜像包: 可重新自定义“容器名称”:长度为1到63个字符,可以包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 单击已选择的镜像包卡片右上角的,可修改镜像包来源。 容器部署方式部署的组件,如果选择的是软件包,可重新自定义“容器名称”:长度为1到63个字符,可以包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 如果组件来源是软件包且选择“自定义文件地址”上传方式,需要执行以下操作: 输入软件包所在的自定义HTTP/HTTPS协议的文件下载地址。 选择是否开启认证。 不开启认证,则默认任何用户都可以下载上传到自定义文件地址的软件包。 单击开启认证,则只有通过认证的用户才能下载上传到自定义文件地址的软件包。“认证方式”支持“用户密码认证”、“自定义Header认证”,认证方式及对应的认证参数由您自定义的文件地址所在服务器支持的认证方式决定。 容器部署方式部署的组件,支持设置“镜像访问凭证”。最多支持选择16个镜像访问凭证。单击“创建密钥”,可以创建新的镜像访问凭证。请参考创建密钥,“密钥类型”必须选择kubernetes.io/dockerconfigjson。 部署批次 表示分几个批次升级组件实例,取值范围为[1, 总实例数]。总实例数,即组件当前运行的实例数量。 例如,组件总实例数为4,“部署批次”参数设置为2,则表示会分2批次升级组件版本配置,每批次升级2个组件实例。 设置了本参数后,容器部署方式部署的组件,在6中设置组件升级策略时,您也可以重新设置。 单击“操作”列的“高级配置”,设置组件的高级配置。 选择组件技术栈及版本。技术栈详情,请参考技术栈简介。 容器部署方式部署的组件,请参考管理容器部署组件云服务配置~管理容器部署组件高级配置,根据您的实际业务需要进行设置。 虚拟机部署方式部署的组件: 请参考管理虚拟机部署组件配置,根据您的实际业务需要进行设置。 选择“升级策略”,设置组件“停止前等待时间”。 设置停止实例运行前等待时间,以保证已接收的流量处理完成。单位为秒(s),取值范围为[0, 600]。 (可选)单击“高级设置预检查”,检查各组件的高级配置是否正确。 例如组件绑定了指定的微服务引擎、分布式缓存或云数据库实例,而该组件所属环境下并未绑定这些指定的实例,高级配置预检查会报错。请执行以下操作重新配置后再执行后续操作。 请在弹出的对话框确认问题后,单击“确定”。 单击报错组件“操作”列的“高级配置”,参考6根据报错情况重新设置。 单击“完成并执行”,系统自动进行高级配置预检查,检查各组件的高级配置是否正确。 否,请参考6根据报错情况重新设置组件高级配置参数。 是,等待组件状态由“升级/回滚中”转换为“运行中”,表示已成功完成批量升级组件版本配置。在组件“部署记录”页面,可查看部署日志。 容器部署方式部署的组件,如果出现“查询工作负载实例状态失败”日志信息,您可以单击“查看事件”,进入事件列表查看详情。 虚机部署方式部署的组件,如果出现“创建虚机应用实例失败”、“查询虚机任务状态失败”或“查询虚机应用实例状态失败”日志信息,您可以单击“查看事件”,进入事件列表查看详情。
  • 灰度发布方式重新部署组件 登录ServiceStage控制台。 选择以下任意方式进入组件“部署记录”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“部署记录”。 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“部署记录”。 在“部署记录”列表,选择待作为配置模板的历史版本部署记录。 单击页面右上方的“使用此版本重新部署”,弹出“重新部署”对话框。 “部署类型”选择“灰度发布”,单击“确定”。 参考下表设置组件版本配置信息,其中带“*”标志的参数为必填参数。 参数 说明 技术栈 选择组件技术栈及版本。 技术栈详情,请参考技术栈简介。 *软件包/镜像 固定为创建并部署组件时选择的组件来源。 选择“源码仓库”,参考创建仓库授权创建授权,设置代码来源。 选择软件包或者镜像包,则固定为创建并部署组件时选择的软件包类型(Jar、War、Zip)或者镜像包类型。由您选择的技术栈类型决定,具体情况请参考表1。 *上传方式 选择软件包或者镜像包,重新选择已上传的软件包/镜像包,上传方式请参考组件来源说明。 如果组件来源是软件包且选择“自定义文件地址”上传方式,需要执行以下操作: 输入软件包所在的自定义HTTP/HTTPS协议的文件下载地址。 选择是否开启认证。 不开启认证,则默认任何用户都可以下载上传到自定义文件地址的软件包。 单击开启认证,则只有通过认证的用户才能下载上传到自定义文件地址的软件包。“认证方式”支持“用户密码认证”、“自定义Header认证”,认证方式及对应的认证参数由您自定义的文件地址所在服务器支持的认证方式决定。 说明: 如果选择的是镜像包: 可重新自定义容器名称:长度为1到63个字符,可以包含小写英文字母、数字或中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 单击已选择的镜像包卡片右上角的,可修改镜像包来源。 镜像访问凭证 容器部署方式部署的组件,支持设置。 最多支持选择16个镜像访问凭证。 单击“创建密钥”,可以创建新的镜像访问凭证。请参考创建密钥,“密钥类型”必须选择kubernetes.io/dockerconfigjson。 *编译命令 组件来源是“源码仓库”且所选择的技术栈类型为Java、Tomcat、Node.js、Python、Php时,支持设置“编译命令”。 使用默认命令或脚本:优先执行代码根目录下的build.sh,不存在则按照所选语言的通用方法编译,如Java语言的mvn clean package。 使用自定义命令:根据所选语言自定义编译命令,或修改build.sh文件后选择使用默认命令或脚本。 须知: 选择“使用自定义命令”时,请在echo、cat、debug命令中慎用敏感信息或者进行敏感信息加密,以免造成敏感信息泄露。 在项目子目录下执行编译命令,需先进入项目子目录,再执行其余脚本命令。例如: cd ./weather/ mvn clean package *Dockerfile地址 组件来源是“源码仓库”且所选择的技术栈类型为Java、Tomcat、Node.js、Python、Php时,支持设置“Dockerfile地址”。 “Dockerfile地址”即Dockerfile文件相对于项目的根目录(./)所在的目录,Dockerfile文件用于镜像构建。 如果未指定“Dockerfile地址”,默认查找项目根目录下的Dockerfile;如果项目根目录下也没有Dockerfile文件,则根据选定的运行环境自动生成Dockerfile。 *组件版本 组件版本号,支持自动生成和自定义版本号。 自动生成版本号:单击“自动生成”,默认以您单击“自动生成”时的时间来生成版本号,格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。 自定义版本号:输入格式为A.B.C或者A.B.C.D,A、B、C、D为自然数。例如,1.0.0或者1.0.0.0。 须知: 自定义版本号需唯一,请勿与该组件的历史版本号重复,否则会导致本次部署记录覆盖掉相同版本的历史部署记录。 *容器名称 技术栈不是Docker时,需设置此参数。 长度为1到63个字符,可以包含小写英文字母、数字或中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 资源 固定为选择的历史版本配置,不可修改。 JVM参数 固定为选择的历史版本配置,不可修改。 组件技术栈类型为Java/Tomcat时,可用于配置Java代码运行时的内存参数大小。 Tomcat配置 固定为选择的历史版本配置,不可修改。 组件技术栈类型为Tomcat时,可用于配置Tomcat请求路径、端口号等参数。 容器配置 固定为选择的历史版本配置,不可修改。 应用配置 固定为选择的历史版本配置,不可修改。 高级配置 固定为选择的历史版本配置,不可修改。 *部署架构 单击“选择”,根据业务实际情况选择灰度升级时实例部署架构。 单击“确定”。 须知: 架构选择必须匹配准确,否则会导致灰度失败,业务受损。 *灰度策略 根据业务实际情况选择灰度升级策略。 基于流量比例:根据需要灵活动态的调整不同服务版本的流量比例。 基于内容:根据请求的内容控制其流向的服务版本。 说明: ELB灰度发布,仅支持“基于流量比例”。 *选择流量比例 “灰度策略”选择“基于流量比例”时,根据业务实际情况设置版本流量比例。 灰度流量比例:引入到新版本的流量比例。 当前流量比例:引入到当前版本的流量比例。 *生效方式 “灰度策略”选择“基于内容”时,根据业务实际情况设置灰度策略生效方式。 满足任意条件:满足任意一条“匹配规则”时,灰度策略生效。 满足所有条件:满足所有“匹配规则”时,灰度策略生效。 说明: ELB灰度发布,仅支持“满足所有条件”。 *匹配规则 “灰度策略”选择“基于内容”时,根据业务实际情况设置灰度策略生效的匹配规则。 单击“添加匹配条件”。 设置“匹配类型”,当前仅支持基于“请求头”类型的匹配。 设置“参数名称”,即“匹配类型”对应的key值。 设置“条件类型”,即“条件值”满足的匹配规则。 相等:“匹配类型”对应的value值和设置的“条件值”相等。 匹配:“条件值”支持PERL兼容的正则表达式,仅微服务灰度发布支持。 枚举:多个“条件值”以逗号(,)间隔。 设置“条件值”,即“匹配类型”对应的value值。 *灰度实例新增模式 根据业务实际情况选择灰度升级时新增实例的模式。 蓝绿 先增加与老版本实例同等数量的新版本实例,按照灰度规则将流量引入新版本实例。根据灰度规则验证完成后将所有流量引入新版本,再删除老版本实例。 适用于业务容量无损、回滚快、集群中需要有剩余资源的场景。 蓝绿模式需要组件实例数量在1个或以上。 金丝雀(先增后减) 新增指定数量的新版本实例,按照灰度规则将流量引入新版本实例。根据灰度规则验证完成后循环执行“删除固定数量的老版本实例,新增固定数量的新版本实例,同时配合流量调整”,直到所有的流量引入新版本实例,所有的老版本实例被删除。 适用于业务容量无损、回滚慢、集群中需要有剩余资源的场景。 金丝雀(先增后减)模式需要组件实例数量在2个或以上。 金丝雀(先减后增) 删除指定数量的老版本实例,新增指定数量的新版本实例,按照灰度规则将流量引入新版本实例。根据灰度规则验证完成后循环执行“删除固定数量的老版本实例,新增固定数量的新版本实例,同时配合流量调整”,直到所有的流量引入新版本实例,所有的老版本实例被删除。 适用于业务容量有损、回滚慢的场景。 金丝雀(先减后增)模式需要组件实例数量在2个或以上。 说明: 如需修改组件实例数量以满足灰度升级时新增实例的模式要求,请参考设置手动伸缩策略。 *首批灰度实例数量 “灰度实例新增模式”选择“金丝雀(先增后减)”、“金丝雀(先减后增)”时,需要设置首批灰度发布的实例数量。 取值范围为[1, 当前总实例数-1]。当前总实例数,即组件当前运行的实例数量。 例如,当前组件总实例数为6,“首批灰度实例数量”参数设置为1,则表示首批升级组件版本配置的实例数量为1。剩余的5个实例升级根据“剩余实例部署批次”的设置进行。 *剩余实例部署批次 “灰度实例新增模式”选择“金丝雀(先增后减)”、“金丝雀(先减后增)”时,需要设置剩余实例部署批次。即首批灰度发布成功之后,剩余实例滚动升级分多少批次完成。 例如,当前组件总实例数为6,“首批灰度实例数量”参数设置为1,且“剩余实例部署批次”设置为3。则当前剩余实例数为5,那么升级剩余实例会按照2:2:1个实例分批升级。 单击“升级”。 等待组件状态由“升级/回滚中”转换为“运行中”,组件重新部署成功。 在组件“部署记录”页面,可查看部署日志。 如果出现“查询工作负载实例状态失败”日志信息,您可以单击“查看事件”,进入事件列表查看详情。
  • 灰度发布简介 “灰度发布”方式先选择一定比例的实例升级到新版本,将流量引入到新版本,验证新版本功能是否正常,然后通过滚动升级剩余的实例到新版本。可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以减少其影响度。 表1 灰度发布类型说明 类型 说明 微服务灰度发布 适用于容器部署方式部署的微服务组件(ServiceComb/Spring Cloud),灰度发布任务作用于微服务,可通过多个微服务协作,共同完成新特性的上线。 要求组件选择了Java、Tomcat或者Docker技术栈。 要求组件绑定了未开启安全认证的ServiceComb引擎且未开启多语言接入Mesher服务网格。 ServiceComb引擎:Java Chassis要求2.7.8及以后版本;Spring Cloud Huawei要求1.10.4-2021.0.x及以后版本。 注册配置中心:Spring Cloud Huawei要求为1.11.9-2021.0.x、1.11.9-2022.0.x或者1.11.9-2023.0.x及以后版本。 ELB灰度发布 适用于容器部署方式部署的通过ELB作为流量入口的任何类型组件,灰度发布任务作用于ELB。 要求在创建并部署组件时,开放了组件公网访问,请参考创建并部署组件。 需要使用“规格”为“应用型”的独享型ELB。请参考购买独享型负载均衡器。
  • 后续操作 操作 说明 查看部署日志 您可以在“部署记录”列表中选择指定部署记录,在“部署日志”页签查看组件部署日志。 查看系统监控 通过灰度发布升级组件版本配置首批灰度发布完成后,选择“系统监控”页签,可以查看灰度版本和当前版本实例的CPU、内存使用情况。 修改灰度策略 通过灰度发布升级组件版本配置时首批灰度发布完成后,您可以根据实际业务需要,参考修改组件灰度发布策略修改组件的灰度发布策略。 自动完成剩余流程 通过灰度发布升级组件版本配置时首批灰度发布成功且验证新版本功能正常后,如需升级剩余组件实例版本到新版本,请执行以下操作: 选择“灰度发布”类型的“部署记录”。 单击“自动完成剩余流程”。 在弹出对话框,单击“确定”。 升级剩余的实例到新版本。 回滚组件版本配置 下列情况支持回滚组件版本配置: 通过灰度发布升级组件版本配置首批灰度发布完成后 组件全部实例的版本配置升级到新版本后 回滚到升级前组件版本配置,请参考回滚组件版本配置。 重新部署组件 全部组件实例都升级到新版本后,您可以根据业务需要在“部署记录”列表中选择历史部署记录,并以此记录下的版本配置为模板,重新部署组件,请参考重新部署组件。
  • 灰度发布简介 “灰度发布”方式先选择一定比例的实例升级到新版本,将流量引入到新版本,验证新版本功能是否正常,然后通过滚动升级剩余的实例到新版本。可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以减少其影响度。 表1 灰度发布类型说明 类型 说明 微服务灰度发布 适用于容器部署方式部署的微服务组件(ServiceComb/Spring Cloud),灰度发布任务作用于微服务,可通过多个微服务协作,共同完成新特性的上线。 要求组件选择了Java、Tomcat或者Docker技术栈。 要求组件绑定了未开启安全认证的ServiceComb引擎且未开启多语言接入Mesher服务网格。 ServiceComb引擎:Java Chassis要求2.7.8及以后版本;Spring Cloud Huawei要求1.10.4-2021.0.x及以后版本。 注册配置中心:Spring Cloud Huawei要求为1.11.9-2021.0.x、1.11.9-2022.0.x或者1.11.9-2023.0.x及以后版本。 ELB灰度发布 适用于容器部署方式部署的通过ELB作为流量入口的任何类型组件,灰度发布任务作用于ELB。 要求在创建并部署组件时,开放了组件公网访问,请参考创建并部署组件。 需要使用“规格”为“应用型”的独享型ELB。请参考购买独享型负载均衡器。
  • 灰度发布方式升级组件版本配置 登录ServiceStage控制台。 选择以下任意方式进入组件“概览”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称。 在“组件管理”页面,单击待操作组件名称。 单击页面右上角的“升级”。 选择“灰度发布”。 单击“下一步”,参考下表设置组件版本配置信息,其中带“*”标志的参数为必填参数。 参数 说明 技术栈 选择组件技术栈及版本。 技术栈详情,请参考技术栈简介。 *软件包/镜像 固定为创建并部署组件时选择的组件来源。 选择“源码仓库”,参考创建仓库授权创建授权,设置代码来源。 选择软件包或者镜像包,则固定为创建并部署组件时选择的软件包类型(Jar、War、Zip)或者镜像包类型。由您选择的技术栈类型决定,具体情况请参考表1。 *上传方式 选择软件包或者镜像包,重新选择已上传的软件包/镜像包,上传方式请参考组件来源说明。 如果组件来源是软件包且选择“自定义文件地址”上传方式,需要执行以下操作: 输入软件包所在的自定义HTTP/HTTPS协议的文件下载地址。 选择是否开启认证。 不开启认证,则默认任何用户都可以下载上传到自定义文件地址的软件包。 单击开启认证,则只有通过认证的用户才能下载上传到自定义文件地址的软件包。“认证方式”支持“用户密码认证”、“自定义Header认证”,认证方式及对应的认证参数由您自定义的文件地址所在服务器支持的认证方式决定。 如果组件来源是镜像包: 可重新自定义“容器名称”:长度为1到63个字符,可以包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 单击已选择的镜像包卡片右上角的,可修改镜像包来源。 镜像访问凭证 最多支持选择16个镜像访问凭证。 单击“创建密钥”,可以创建新的镜像访问凭证。请参考创建密钥,“密钥类型”必须选择kubernetes.io/dockerconfigjson。 *编译命令 组件来源是“源码仓库”且所选择的技术栈类型为Java、Tomcat、Node.js、Python、Php时,支持设置“编译命令”。 使用默认命令或脚本:优先执行代码根目录下的build.sh,不存在则按照所选语言的通用方法编译,如Java语言的mvn clean package。 使用自定义命令:根据所选语言自定义编译命令,或修改build.sh文件后选择使用默认命令或脚本。 须知: 选择“使用自定义命令”时,请在echo、cat、debug命令中慎用敏感信息或者进行敏感信息加密,以免造成敏感信息泄露。 在项目子目录下执行编译命令,需先进入项目子目录,再执行其余脚本命令。例如: cd ./weather/ mvn clean package *Dockerfile地址 组件来源是“源码仓库”且所选择的技术栈类型为Java、Tomcat、Node.js、Python、Php时,支持设置“Dockerfile地址”。 “Dockerfile地址”即Dockerfile文件相对于项目的根目录(./)所在的目录,Dockerfile文件用于镜像构建。 如果未指定“Dockerfile地址”,默认查找项目根目录下的Dockerfile;如果项目根目录下也没有Dockerfile文件,则根据选定的运行环境自动生成Dockerfile。 *组件版本 组件版本号,支持自动生成和自定义版本号。 自动生成版本号:单击“自动生成”,默认以您单击“自动生成”时的时间来生成版本号,格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。 自定义版本号:输入格式为A.B.C或者A.B.C.D,A、B、C、D为自然数。例如,1.0.0或者1.0.0.0。 须知: 自定义版本号需唯一,请勿与该组件的历史版本号重复,否则会导致本次部署记录覆盖掉相同版本的历史部署记录。 *容器名称 技术栈不是Docker时,需设置此参数。 容器名称要求为长度为1到63个字符的字符串,可以包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 资源 您可以根据需要自定义“CPU配额”和“内存配额”,设置组件运行可以使用的最大/最小CPU核数(Core)和内存数量(GiB),从而选择性地为每个组件的实例设定所需要的资源数量。 当您为组件实例指定了资源“申请”时,CCE就利用该信息决定将组件实例调度到哪个节点上;当您为组件实例指定了资源“限制”时,CCE就可以确保运行的组件实例占用的资源不会超出所设限制。CCE还会为组件实例预留所申请数量的系统资源。申请值和限制值的配置说明及建议,请参考资源限制指南。 如需修改,请勾选待修改项后输入新的配置值。不勾选表示不限制。 JVM参数 技术栈类型选择Java/Tomcat时可设置,用于配置Java代码运行时的内存参数大小。 输入JVM参数,如-Xms256m -Xmx1024m,多个参数以空格间隔,不填则为空。 Tomcat配置 技术栈类型选择Tomcat时可设置,用于配置Tomcat请求路径、端口号等参数。 勾选“Tomcat配置”,弹出“Tomcat配置”对话框。 单击“使用示例模板”,根据业务要求编辑模板文件。 说明: Tomcat配置,使用默认server.xml配置,上下文路径是"/",没有指定应用路径。 如需自定义应用路径,请参考定制Tomcat Context path。 单击“确定”。 容器配置 请参考管理容器部署组件容器配置,根据您的实际业务需要进行设置。 应用配置 请参考管理容器部署组件应用配置,根据您的实际业务需要进行设置。 高级配置 请参考管理容器部署组件高级配置,根据您的实际业务需要进行设置。 *部署架构 单击“选择”,根据业务实际情况正确选择灰度升级时实例部署架构。 单击“确定”。 须知: 所选部署架构必须准确匹配,否则会导致灰度失败,业务受损。 单击“更改”,可重新选择部署架构。 *灰度策略 根据业务实际情况选择灰度升级策略。 基于流量比例:根据需要灵活动态的调整不同服务版本的流量比例。 基于内容:根据请求的内容控制其流向的服务版本。 说明: ELB灰度发布,仅支持“基于流量比例”。 *选择流量比例 “灰度策略”选择“基于流量比例”时,根据业务实际情况设置版本流量比例。 灰度流量比例:引入到新版本的流量比例。 当前流量比例:引入到当前版本的流量比例。 *生效方式 “灰度策略”选择“基于内容”时,根据业务实际情况设置灰度策略生效方式。 满足任意条件:满足任意一条“匹配规则”时,灰度策略生效。 满足所有条件:满足所有“匹配规则”时,灰度策略生效。 *匹配规则 “灰度策略”选择“基于内容”时,根据业务实际情况设置灰度策略生效的匹配规则。 单击“添加匹配条件”。 设置“匹配类型”,当前仅支持基于“请求头”类型的匹配。 设置“参数名称”,即“匹配类型”对应的key值。 设置“条件类型”,即“条件值”满足的匹配规则。 相等:“匹配类型”对应的value值和设置的“条件值”相等。 匹配:“条件值”支持PERL兼容的正则表达式,仅微服务灰度发布支持。 枚举:多个“条件值”以逗号(,)间隔。 设置“条件值”,即“匹配类型”对应的value值。 *灰度实例新增模式 根据业务实际情况选择灰度升级时新增实例的模式。 蓝绿 先增加与老版本实例同等数量的新版本实例,按照灰度规则将流量引入新版本实例。根据灰度规则验证完成后将所有流量引入新版本,再删除老版本实例。 适用于业务容量无损、回滚快、集群中需要有剩余资源的场景。 蓝绿模式需要组件实例数量在1个或以上。 金丝雀(先增后减) 新增指定数量的新版本实例,按照灰度规则将流量引入新版本实例。根据灰度规则验证完成后循环执行“删除固定数量的老版本实例,新增固定数量的新版本实例,同时配合流量调整”,直到所有的流量引入新版本实例,所有的老版本实例被删除。 适用于业务容量无损、回滚慢、集群中需要有剩余资源的场景。 金丝雀(先增后减)模式需要组件实例数量在2个或以上。 金丝雀(先减后增) 删除指定数量的老版本实例,新增指定数量的新版本实例,按照灰度规则将流量引入新版本实例。根据灰度规则验证完成后循环执行“删除固定数量的老版本实例,新增固定数量的新版本实例,同时配合流量调整”,直到所有的流量引入新版本实例,所有的老版本实例被删除。 适用于业务容量有损、回滚慢的场景。 金丝雀(先减后增)模式需要组件实例数量在2个或以上。 说明: 如需修改组件实例数量以满足灰度升级时新增实例的模式要求,请参考设置手动伸缩策略。 单击“升级”。 等待组件状态由“升级/回滚中”转换为“运行中”,表示已成功完成组件版本配置升级。 在组件“部署记录”页面,可查看部署日志。 容器部署方式部署的组件,如果出现“查询工作负载实例状态失败”日志信息,您可以单击“查看事件”,进入事件列表查看详情。
  • 前提条件 只能在应用下新增组件,需要先创建应用,请参考创建应用。 组件需要部署在指定环境下,需要先创建环境并纳管资源,请参考环境管理。 需要将软件包上传至CodeArts软件发布库、SWR软件仓库或者OBS对象存储中。 将软件包上传至CodeArts软件发布库,请参考上传软件包。 将软件包上传至SWR软件仓库,请参考上传软件包。 将软件包上传至OBS对象存储中,请参考流式上传(PUT上传)。 从自定义文件地址获取对应的软件包,支持自定义HTTP/HTTPS协议的文件地址下载。您需要提前将软件包上传至对应的自定义文件地址下。 如果上传软件包失败,请参考如何解决上传软件包失败的问题?。 如果您需要基于组件草稿创建组件,请参考本章节保存组件草稿。
  • 注册动作 在响应动作中,单击“响应动作”,在下拉框中选择对应的响应动作。 图1 响应动作 /** * 文件global_SelectWidget.js中, 在init钩子中注册响应动作 * @params thisObj: 组件实例 */ Studio.registerAction( thisObj, 'confirmLocationWidgetCbk', 'confirmLocationWidgetCbk', [], $.proxy(thisObj.confirmLocationWidgetCbk, thisObj), [], ); Studio.registerAction(thisObj, 'getInputValue', 'getInputValue', [], $.proxy(thisObj.getInputValue, thisObj), []); Studio.registerAction( thisObj, 'setInputWidgetValue', 'setInputWidgetValue', [], $.proxy(thisObj.setInputWidgetValue, thisObj), [], ); Studio.registerAction( thisObj, 'setWidgetProperties', 'setWidgetProperties', [], $.proxy(thisObj.setWidgetProperties, thisObj), [], ); Studio.registerAction( thisObj, 'setInput', 'setInput', [{ name: 'customizeVal', type: 'text' }], $.proxy(thisObj.setInput, thisObj), [], );
  • 响应动作函数 以数据刷新的响应动作函数为例,向您介绍组件的响应动作函数。 /** * 数据刷新的响应动作函数示例 * 文件global_SelectWidget.js中, 与render函数平级定义 */ confirmLocationWidgetCbk: function (param) { if (param && param.eventParam && this.vm) { this.vm.getDataEntry(param.eventParam); } }, // 获取当前输入框值 getInputValue: function () { if (this.vm && this.vm.selectConfObj) { return this.vm.selectConfObj.selectValue; } }, // 设置组件双向绑定的值 setInputWidgetValue: function (value) { this.vm.selectConfObj.selectValue = value; if (this.editVm?.selectConfObj) { this.editVm.selectConfObj.selectValue = value; } this.advanceEditvm?.save(); }, // 更新组件配置 setWidgetProperties: function (selectConfObj) { magno.savePropertiesForWidget({ selectConfObj: JSON.stringify(selectConfObj), }); }, setInput: function (value) { this.vm.selectConfObj.selectValue = value.customizeVal; if (this.editVm?.selectConfObj) { this.editVm.selectConfObj.selectValue = value.customizeVal; } this.advanceEditvm?.save(); },