云服务器内容精选
-
配置发布管理原子插件 微服务发布提供滚动升级插件、灰度起负载插件、灰度引流插件、灰度下线插件和人工卡点插件五种插件,用于滚动升级和灰度升级,以下分别介绍各插件配置方法。 滚动升级插件 滚动升级包括两种部署方式:镜像创建和YAML创建。 镜像创建:替换工作负载中容器的镜像。 表2 参数说明 参数项 说明 命名空间 待升级的服务所在的命名空间。 工作负载 填写YAML文件的相对路径。 当前目录为代码分支的根目录。 仅支持单个YAML文件。 YAML路径可以使用“${变量名}”引用环境变量,YAML文件中可以使用“{{变量名}}”引用环境变量。 容器 工作负载中需要升级的容器。 YAML创建:使用yaml文件升级或上线工作负载。 表3 参数说明 参数项 说明 仓库类型 代码仓库的类型,当前仅支持Repo。 代码仓 当前项目下的代码仓。 分支 代码仓库分支。 工作负载YAML路径 升级的工作负载YAML路径,填写YAML文件的相对路径。 当前目录为代码分支的根目录。 仅支持单个YAML文件。 YAML路径可以使用“${变量名}”引用环境变量,YAML文件中可以使用“{{变量名}}”引用环境变量。 灰度起负载插件 灰度起负载包括两种部署方式:镜像升级和YAML部署。 镜像创建:替换工作负载中容器的镜像,创建与线上配置完全一致的工作负载,仅更新构建产物(镜像包)。 表4 参数说明 参数项 说明 命名空间 待升级的服务所在的命名空间。 服务 集群命名空间下的Service,需要确保该Service有且仅有一个工作负载与其关联。 自定义版本号 开关关闭,系统将自动随机生成灰度版本号;开关开启,用户可以按需配置灰度版本号。 灰度版本号 灰度版本号将作为新旧负载的引流标识,用于区分正式版本和灰度版本,请按需配置,支持使用${ENV}引用环境变量。如:${TIMESTAMP},表示引用系统时间戳环境变量作为灰度版本号。 支持大小写英文字母、数字、“-”、“_”、“.”,长度不超过62个字符。 YAML创建:使用yaml文件上线或升级工作负载。 表5 参数说明 参数项 说明 命名空间 待升级的服务所在的命名空间。 服务 集群命名空间下的服务,需要确保该服务有且仅有一个工作负载与其关联。 仓库类型 代码仓库的类型,当前仅支持Repo。 代码仓 当前项目下的代码仓。 分支 代码仓库分支。 工作负责YAML路径 填写YAML文件的相对路径。 当前目录为代码分支的根目录。 仅支持单个YAML文件。 YAML路径可以使用“${变量名}”引用环境变量,YAML文件中可以使用“{{变量名}}”引用环境变量。 灰度引流插件 选择引流类型,包括:Service蓝绿引流和ASM灰度引流。 Service蓝绿引流:基于集群Service将所有流量切换至新负载(灰度负载)。 ASM灰度引流:基于ASM的VirtualService和DestinationRule配置来控制访问流量,可以基于流量比例、请求Header等进行灰度引流,要求集群内安装ASM(应用服务网格)。 灰度下线插件 灰度下线插件会自动下线服务关联的旧工作负载,无需配置。 人工卡点插件 可以在卡点确认时进行批准或驳回部署策略,运行至人工卡点时流水线将暂停,若审批通过则继续执行,若驳回则终止执行。 表6 参数说明 参数项 说明 超时处理 超过等待审批时间后流水线的处理方案。 卡点失败,发布流终止执行:运行至人工卡点时流水线将暂停,若超时不处理则终止执行流水线。 忽略结果,发布流继续执行:运行至人工卡点时流水线将暂停,若超时不处理则继续执行流水线。 卡点时长 等待审批的时间,时间范围为1分钟至12小时。 卡点说明 卡点内容说明。长度不超过200个字符。
-
新建发布管理自定义策略 发布管理环境预置了滚动升级模板和灰度升级模板,用户可以基于任一模板,添加原子插件,编辑发布策略。 进入发布管理环境列表页面。 单击环境名称,进入“环境信息”页面。 单击“发布策略”页签,切换至“发布策略”页面。 单击“自定义策略”旁的,弹出“新建策略”对话框,选择策略模板,单击“确定”。 在模板的基础上自定义编排插件,并配置相关信息。 表1 新建策略 参数项 说明 策略名称 策略的名称。支持中文、英文字母、数字、“-”、“_”,不超过128个字符。 策略描述 长度不超过200个字符。 编排插件 选择策略模板后会自动生成相应的插件,可根据需要自定义编排并配置插件信息,插件参数配置请参考配置发布管理原子插件。 单击,可添加插件。 单击,可复制当前插件。 单击,可删除当前插件。 配置完成后,单击“保存”。 在左侧目录找到刚创建的策略,单击策略所在行,即可应用该策略,应用后策略会变为“使用中”的状态。
-
新建变更流水线 访问CodeArts Pipeline首页,进入项目下流水线。 单击“微服务”,进入微服务列表页面。 单击微服务名称,进入微服务“概览”页面。 单击“流水线”,进入微服务流水线列表页面。 单击“新建流水线”,进入“基本信息 ”页面,配置相关参数。 表3 新建流水线 参数项 说明 所属项目 微服务所在的项目。 名称 流水线的名称,默认根据当前时间生成。支持中文、大小写英文字母、数字、“-”、“_”,长度不超过128个字符。 代码源 代码仓库来源,微服务下流水线仅支持Repo。 代码仓 微服务关联的代码仓库。 说明: 修改微服务的代码仓库,微服务下所有流水线配置的代码仓库会自动更改。 默认分支 微服务关联的默认分支。 说明: 修改微服务的默认分支,微服务下所有流水线配置的默认分支会自动更改。 Repo HTTPS授权 配置授权扩展点以提升代码库操作权限,主要用于微服务变更流水线和部分仓库操作插件。单击“新建授权”,可添加CodeArts Repo HTTPS服务扩展点,配置方法请参考新建CodeArts服务扩展点。 说明: 新建CodeArts Repo HTTPS服务扩展点时,如果用户名密码填写错误,会授权失败并导致流水线执行失败。具体问题请参考常见问题。 别名 仓库别名。支持大小写英文字母、数字、“_”,长度不超过128个字符。 设置别名后可生成仓库对应的系统参数,如:“别名_REPOSITORY_NAME”,表示仓库名称。生成的参数可在参数设置页面查看,并在流水线中通过“${参数名}”进行引用。 基于变更触发 开启“基于变更触发”开关的流水线即为变更流水线,在微服务流水线列表中,变更流水线会被标识为。 说明: 单个微服务下仅允许存在一条基于变更触发的流水线。 描述 长度不超过1024个字符。 单击“下一步”,进入“选择模板”页面,根据需要选择对应模板,在模板基础上快速新建任务;也可以选择“空白模板”,即不使用模板,直接新建。 单击“确定”,根据需要编排流水线,然后单击“保存”。
-
执行变更流水线 访问CodeArts Pipeline首页,进入项目下流水线。 单击“微服务”,进入微服务列表页面。 单击微服务名称,进入微服务“概览”页面。 单击“流水线”,进入微服务流水线列表页面。 单击流水线名称,进入流水线“执行历史”页面。 单击右上角“执行”,弹出“执行配置”侧滑框,进行如下配置。 图2 配置变更流水线执行信息 变更列表:变更列表展示阶段状态为“待发布”和“发布中”的变更,运行变更流水线时需要选择一个或多个变更。 运行参数配置:如果流水线配置了运行时参数,请根据需要设置参数值并保存,可参考流水线参数使用示例。 执行阶段配置:流水线支持选择任务执行,可以选择一个或多个,默认执行全部任务。 执行描述:填写本次运行的调试信息。 配置完成后,单击“执行”,进入变更流水线执行详情页面。 图3 执行变更流水线 变更流水线运行时会默认添加“合并集成分支”和“合并主干”阶段。 合并集成分支:变更流水线会自动从主干分支拉出一条新分支,并将本次运行变更的所有特性分支集成到该新分支,然后通过这条集成分支来运行流水线。 合并主干:将集成分支合并回主干分支。 执行完成后,可查看流水线执行结果。 变更流水线执行成功时,会将本次运行选择的所有变更状态改为“已发布”状态。 单击流水线名称,进入“流水线详情”页面 单击流水线源卡片的“查看更多”,弹出运行变更侧滑框,展示本次流水线运行时选择的变更信息。 单击列表内“变更标题”可以跳转到变更详情页面。 单击“发布列表”页签,切换到“发布列表”页面 发布列表页面展示所有阶段状态为“待发布”和“发布中”的变更。 列表支持在搜索栏中输入变更名称关键字进行搜索。 单击“操作”列,弹出“退出发布”对话框,单击“确认”会将变更退出变更流水线的发布列表,变更状态重置为“开发中”。 阶段状态为“发布中”的变更,如果变更流水线正在运行,则需要等待变更流水线运行完成或停止变更流水线后才可以退出发布。
-
新建流水线微服务 访问CodeArts Pipeline首页,进入项目下流水线。 单击“微服务”,进入微服务列表页面。 单击“新建微服务”,进入“新建微服务”页面,配置相关参数。 表1 新建微服务 参数项 说明 所属项目 微服务所在项目,不可更改。 微服务名称 微服务的名称。支持大小写英文字母、数字、“_”,不超过128个字符。 代码源 代码仓库来源,当前仅支持Repo。 说明: 可暂不选择代码源,微服务创建成功后,可根据需要通过单击微服务名称,进入微服务概览页再进行关联。 代码仓 微服务关联的代码仓库,选择已创建的代码仓库。 说明: 一个代码仓只能关联一个微服务。 默认分支 微服务关联的默认分支,执行微服务流水线时默认使用的分支。 说明: 变更流水线执行完成后,所有变更特性分支都将会合入默认分支。 语言 微服务的开发语言,支持Java、Python、Node.js、Go、.Net、C++、PHP。 描述 长度不超过1024个字符。 单击“确定”,完成微服务创建并进入微服务“概览”页。 概览页展示微服务的创建人、创建时间、代码源等信息,可修改微服务开发语言、关联的代码仓库和描述信息。 更换代码仓库时,如果微服务下存在没有关闭的变更或运行中的流水线,页面会弹出“数据处理”侧滑框,需先关闭所有变更并停止所有运行中的流水线。 返回微服务列表,可以查看已创建的微服务,列表项说明如下。 表2 微服务列表 列表项 说明 微服务 微服务的名称。 创建人 创建微服务的用户名。 创建时间 创建微服务的时间,将鼠标悬浮至“创建时间”列,单击,可以根据创建时间排序微服务。 状态 展示微服务当前状态信息,创建后会自动处于激活状态。 操作 单击可收藏该微服务,收藏成功后图标变为,再次单击可取消收藏;单击,可删除该微服务。 说明: 删除微服务,微服务内所有变更记录和流水线都将会被删除,请谨慎操作。 微服务列表展示项目下的所有微服务。 支持在搜索栏中输入微服务名称关键字进行搜索。
-
编排流水线任务 访问CodeArts Pipeline首页。 在流水线列表页搜索目标流水线,单击操作列,选择“编辑”。 进入流水线“任务编排”页面,单击阶段下“新建任务”,弹出“新建任务”侧滑框。 单击任务下方的,可以添加一个和该任务串行编排的任务,即按顺序执行,如:构建任务和部署任务应该按顺序先后执行。 单击“并行任务”,可以添加一个和已有任务并行编排的任务,即同时执行,如:代码检查任务和构建任务可以同时执行。 为任务配置插件及任务信息,操作说明如下: 表1 配置任务 操作项 说明 添加插件 流水线插件分为构建插件、代码检查插件、部署插件、测试插件和通用插件5种类型,可以根据不同类型进行过滤或搜索,插件来源请参考管理流水线扩展插件。 将鼠标移动到插件卡片,单击“添加”,即可将插件添加到任务中,请根据需要配置插件相关信息: 填写插件名称。 选择需要调用的任务,如果找不到合适的任务,请根据界面提示新建任务。 如果调用的任务有参数,参数也会显示出来,请根据需要配置相应参数。 插件名称后有对应标记,单个任务中最多只能添加一个带“任务”标记的插件;带“草稿”标记的插件表示当前用户发布为草稿的自定义插件。 “挂起流水线”插件只能添加在不含并行任务的阶段中。 删除插件 将鼠标移动到已经添加的插件卡片,单击,选择“删除”,可以删除当前插件。 更换插件 将鼠标移动到已经添加的插件卡片,单击,选择“更换”,或者单击插件上方“更换插件”,可以返回插件列表,更换当前插件。 排序插件 单击插件卡片不松开,可以移动插件调整插件顺序。 任务配置 配置任务ID、执行主机和执行条件。 任务ID:。流水线阶段任务的ID,同一条流水线上的任务ID不能重复。支持大小写英文字母、数字、“-”、“_”,长度范围为1~128个字符。 执行主机:包括内置执行机和自定义执行机。 内置执行机:服务提供的执行主机,用户无需配置开箱即用。 自定义执行机:支持用户自行配置工具和运行环境,以满足不同任务的需求。选择自定义执行机需提前在资源池添加代理资源池,详细操作请参见资源池管理。 说明: 执行主机仅针对非任务级插件。 任务选择 必须选择:必须执行,执行流水线时勾选该任务且无法修改。 禁止选择:禁止执行,执行流水线时禁止勾选该任务。 默认选择:执行流水线时默认勾选该任务但可按需修改。 默认不选择:执行流水线时默认不勾选该任务但可按需修改。 执行条件:即流水线阶段任务执行时需要满足的前提条件,通过配置执行条件,可以控制阶段任务是否执行。 前置任务未选择仍执行:上一个任务状态执行成功或未选择,都继续执行当前任务。 前置任务成功时执行:上一个任务执行成功才执行当前任务。 前置任务失败时执行:上一个任务执行失败才执行当前任务。 始终执行:始终执行当前任务,上一个任务状态是失败、成功、中止或忽略执行,都继续执行当前任务。 表达式:当前置任务到达终态,包括:成功(COMPLETED)、失败(FAILED)、中止(CANCELED)、忽略执行(IGNORED),且表达式结果为“true”时,执行当前任务,否则不执行。表达式形式为“${{ }}”,由流水线上下文、操作符、函数或常量任意组合而成。表达式编写请参考流水线执行条件表达式。 示例: 如需在执行条件中指定不管前置任务(任务ID为“job_1”)运行成功或失败,均执行当前任务,则表达式语法如下。 ${{ jobs.job_1.status == 'COMPLETED' || jobs.job_1.status == 'FAILED' }} 配置完任务,单击“确定”,完成任务添加,可根据实际需要编辑、复制、删除、移动任务。 表2 管理任务 操作项 说明 编辑任务 单击任务卡片,可以编辑当前任务。 复制任务 将鼠标移动到任务卡片,单击,可以复制一个和该任务串行编排的任务。 删除任务 将鼠标移动到任务卡片,单击,根据删除提示确定是否删除任务。 排序任务 单击任务卡片不松开,可以移动任务调整任务顺序。 说明: 任务并行执行时不支持调整顺序。 任务编排完成后,保存流水线。
-
配置流水线定时执行 配置流水线在指定的时间自动执行。 访问CodeArts Pipeline首页。 在流水线列表页搜索目标流水线,单击操作列,选择“编辑”。 进入流水线“任务编排”页面,切换至“执行计划”页面。 单击“定时任务”区域的“创建定时任务”,增加一个定时任务,打开“启用定时执行”开关(默认开启),选择执行日和执行时间。 图4 配置定时任务 最多可以设置10个定时任务。 单击右上角,可删除定时任务;单击右上角,可复制定时任务。 配置完成后,保存流水线。
-
配置流水线并发策略 默认单条流水线最大执行并发数为5,超过并发数后新的触发忽略不执行。可以通过并发策略为单条流水线配置同时处于运行中和暂停状态的流水线最大实例个数,即并发数,更细粒度地为用户分配并发资源。 访问CodeArts Pipeline首页。 在流水线列表页搜索目标流水线,单击操作列,选择“编辑”。 进入流水线“任务编排”页面,切换至“执行计划”页面。 打开“并发策略”开关,设置并发数和超过并发后执行策略。 图5 配置并发策略 表1 配置并发策略 参数项 说明 并发个数 单条流水线最大执行并发数,受套餐和购买并发数限制。 超过并发后执行策略 超过并发数后可选择如下两种处理方式: 排队等待:超过并发数后新的触发排队等待执行,可进入流水线详情页查看排队记录。 单条流水线最多支持100条排队记录。 单条排队记录排队时长超过24小时后会被放弃执行。 排队记录支持手动取消排队,即放弃执行。 排队记录执行时,配置信息以入队时为准。 忽略不执行:超过并发数后新的触发忽略不执行。 配置完成后,保存流水线。
-
配置流水线事件触发 事件触发包括代码提交时触发、合并请求时触发、创建标签时触发。码云代码仓还支持Pull Request、新建issue、评论issue等其他事件。 访问CodeArts Pipeline首页。 在流水线列表页搜索目标流水线,单击操作列,选择“编辑”。 进入流水线“任务编排”页面,切换至“执行计划”页面,在“事件触发”勾选触发事件进行配置。 代码提交时触发(代码托管/码云) 监听代码提交触发事件,可以组合分支和具体路径的包含/排除范围,当在关联的代码仓库中有代码提交且所在的分支和变更文件的路径满足包含/排除策略,会自动触发关联流水线执行。 分支过滤:可以通过设置包含或排除分支,来监控触发事件所在的目标分支。 路径过滤:可以通过设置包含或排除路径,来监控触发事件所在的变更文件路径。 图1 配置代码提交时触发 合并请求时触发(代码托管/码云) 监听合并请求触发事件,可以组合分支和具体路径的包含/排除范围,对新建、合并、更新和重新打开事件设置触发策略,当在关联的代码仓库中触发合并请求事件且分支满足包含/排除策略,会自动触发关联流水线执行。 事件说明: 新建:合并请求创建时触发。 合并:合并请求合入时触发,该事件会同时触发代码提交事件。 重新打开:合并请求重新打开时触发。 更新:合并请求内容更新、设置更新或者源代码更新时触发,打开“仅代码更新触发”,则仅源代码更新时触发。 分支说明: 分支过滤:可以通过设置包含或排除分支,来监控触发事件所在的目标分支。 路径过滤:可以通过设置包含或排除路径,来监控触发事件所在的变更文件路径。 图2 配置合并请求时触发 创建标签时触发(代码托管) 监听创建标签触发事件,可以设置标签包含/排除范围,当在关联的代码仓库创建标签且满足标签包含/排除策略,会自动触发关联流水线执行。 图3 配置创建标签时触发 其他事件(码云) 评论Pull Request:评论Pull Request时触发流水线执行。 新建issue:新建issue时触发流水线运行。 评论issue:评论issue时触发流水线运行。 除了上述事件外,码云代码仓还支持开启事件触发成功后自动评论。 先匹配分支,再匹配路径,都匹配成功,则触发流水线。 路径排除优先于路径包含,即先匹配排除的路径,如果变更文件没有全部在排除范围内,则继续匹配包含的路径。若未配置包含路径,则匹配成功,触发流水线;若配置了包含路径,并且变更文件在路径排除范围外有任意一个在包含范围内,则匹配成功,触发流水线。 标签排除优先于标签包含,即标签同时在包含和排除中时,则匹配失败,不触发流水线。 配置完成后,保存流水线。
-
步骤2:配置发布管理策略 在环境列表页面,单击刚创建的环境名称,进入“环境信息”页面。 单击“发布策略”页签,切换到“发布策略”页面。 单击“自定义策略”旁的,弹出“新建策略”对话框,选择系统提供的“灰度升级模板”。 单击“确定”,然后逐步完成插件配置。 图1 配置发布策略 灰度起负载 表3 灰度起负载参数说明 参数项 说明 部署方式 选择“镜像创建”,将创建与线上配置完全一致的工作负载,仅更新镜像包版本(业务代码及配置)。 命名空间 选择待升级的服务所在的命名空间。 服务 待升级的服务,选择准备工作中已创建的服务。 自定义灰度版本号 开关关闭,系统将自动随机生成灰度版本号;开关开启,用户可以按需配置灰度版本号。这里选择开启开关。 灰度版本号 灰度版本号将作为新旧负载的引流标识,输入“${TIMESTAMP}”,引用系统时间戳环境变量作为灰度版本号,例如:20230401095436。 基于所选Service关联的Deployment替换新镜像,创建新负载(灰度负载)。 新负载内所有配置,如CPU、内存、副本数等,与旧负载(线上负载)完全一致。 新负载不承接任何流量,可供开发人员进行测试,且对旧负载(线上负载)没有任何影响。 新负载名称为“旧负载名称-灰度版本号”。 灰度引流 选择“Service蓝绿引流”,基于Service将所有流量切换至新负载,完成引流后,旧负载不承接任何流量。 灰度下线 默认删除线上的旧负载,无需配置。 人工卡点 为了降低引流过程中的风险,并给运维、测试人员预留充足的测试时间,可以在灰度引流、灰度下线等较高危操作前,添加人工卡点进行验证。 图2 配置人工卡点 表4 人工卡点参数说明 参数项 说明 超时处理 卡点超时后处理方式,选择“卡点失败,发布流终止执行”,即超时未处理则终止执行。 卡点时长 卡点处理时长,可选择最长时间12小时。 卡点说明 自定义描述,如:引流前对灰度负载执行手工验证。 单击“保存并应用”,即可将该策略设置为“使用中”策略,至此完成策略配置。
-
方案概述 应用场景 在进行服务发布的时候,通常会碰到这样的问题: 直接在生产环境发布后再进行测试,可能会带来较大风险,对线上用户造成影响。 测试环境虽然和生产环境高度一致,然而实际情况下,由于资源配置、网络环境等,测试环境和生产环境之间总会存在差异,因此难以在测试环境覆盖验证所有场景。 通过灰度发布可以实现在不引发风险的同时,在生产环境进行发布及验证。 方案优势 灰度发布是在生产环境中创建与当前线上服务完全一致的工作负载(灰度负载),仅对其中的包版本(业务代码和配置)进行更新,但是新创建的工作负载不承接任何现网流量,对线上用户没有任何影响,就可以在没有风险的情况下,在生产环境进行测试了。在灰度环境验证无问题之后,就可以逐渐将线上用户的真实访问引流到灰度负载,直至完全引流后,新创建的灰度负载承接所有现网流量,原先的线上负载不承接任何流量,此时就可以安全地删除旧负载,保留新负载,完成一次发布。 按照引流方式的不同,当前常用的灰度发布方式包括:快速完成100%流量切换的蓝绿发布和按流量比例或线上请求内容引流的金丝雀发布。通常情况,蓝绿发布已经足以降低发布风险,蓝绿发布有如下优势: 不需要集群安装额外的插件。 无风险的进行生产环境灰度验证。 快速进行流量切换(从旧负载切换新负载,或从新负载切回旧负载)。 在验证阶段发现问题后,可以快速将线上服务恢复(回滚)至发布前的状态。
-
操作流程 本文介绍在不需要占用集群额外资源安装插件的情况下,基于Kubernetes原生Service的场景完成微服务蓝绿发布,基本操作流程如下: 步骤1:新建发布管理环境 步骤2:配置发布管理策略 步骤3:通过云原生发布插件进行发布 表1 操作流程说明 流程 说明 新建发布管理环境 新建一个用于灰度发布的测试环境,并配置好资源集群等信息。 配置发布管理环境 为发布环境配置发布策略,编排配置发布流程及插件。 通过云原生发布插件进行发布 通过流水线云原生发布插件,发布环境。
-
准备工作 新建项目(选择“Scrum”模板,命名为“Project01”)。 新建空仓库空模板流水线(命名为“Pipeline01”)。 具有创建部署应用的权限,可参考部署服务编辑权限管理添加权限。 开通购买CCE服务,并在CCE集群中创建服务相关Service和Deployment:创建Service和Deployment。 Service和Deployment资源相关参考:服务(Service)、Deployments。 Service需要配置为关联至Deployment而非Pod,并且有且仅有一个Deployment与之关联。
-
预置流水线简介 示例项目中预置以下5个流水线任务,可根据需要查看并使用。 表1 预置流水线任务 预置流水线任务 任务说明 phoenix-workflow 基本的流水线任务。 phoenix-workflow-test 测试环境对应的流水线任务。 phoenix-workflow-work Worker功能对应的流水线任务。 phoenix-workflow-result Result功能对应的流水线任务。 phoenix-workflow-vote Vote功能对应的流水线任务。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格