
# 通过部署Demo应用体验CAE托管
云应用引擎（CAE）是一个Serverless的应用托管引擎，实现应用的极简托管。支持从源代码、软件包或容器镜像**分钟级快速部署** ；支持Java/go/Tomcat等**主流语言** 和**多种运行时** ，支持web、微服务、APIs等类型**应用无缝托管** ；可以实现基于资源或自定义业务指标的**自动弹性伸缩** ，以应对不可预期的用户访问流量，并且按需收费；可做到**基础设施免运维**，让用户更加专注于应用业务开发。
**本章节的案例基于CAE绑定GitHub源码仓库，部署一个前端组件和一个后端组件，实现源码的构建、归档和应用创建。**
DEMO的逻辑组网和调用关系图如下：
![](https://support.huaweicloud.com/qs-cae/zh-cn_image_0000001200998297.png "点击放大")
- 组件 - CAE-frontend： 使用Vue框架开发的前台界面，作为应用入口，并通过单击测试按钮向后台发起请求。
- 组件 - CAE-backend： 使用Springboot开发的后台服务，用于处理demo-frontend组件发来的请求。
#### 前提条件
- 已[注册华为账号并开通华为云](https://support.huaweicloud.com/usermanual-account/account_id_001.html)，并登录成功。
- 在[GitHub](https://github.com/)官网注册账号，并创建私人令牌，以便服务后期的授权使用。
  GitHub地址：
  - demo-frontend：<https://github.com/servicestage-demo/cae-frontend>
  
  - demo-backend：<https://github.com/servicestage-demo/cae-backend>
   
 
#### 步骤一：创建环境
1. 登录[CAE控制台](https://console.huaweicloud.com/cae)。
2. 在您首次使用本服务时，页面会提醒您尚未创建环境，单击"立即创建"创建环境。非首次使用本服务时，单击页面上方环境模块右侧的![](https://support.huaweicloud.com/qs-cae/zh-cn_image_0000002283900425.png)创建环境。
3. 参考[表1]填写相关信息。
   
    表1创建环境 
   | 参数     | 参数说明                                                                                                                                                                                                                                                                                                                                      | 本案例示例                    |
   |:---|:---|:---|
   | 环境名称   | 输入自定义的环境名称。请输入2到30个字符，可以包含小写英文字母、数字和中划线（-），并以小写英文字母开头，以小写英文字母或数字结尾。                                                                                                                                                                                                                                                                       | cae-demo                 |
   | 企业项目   | 选择一个企业项目。企业项目管理提供了一种按企业项目管理云资源的方式，帮助您实现以企业项目为基本单元的资源及人员的统一管理，默认项目为default。 [开通企业项目](https://support.huaweicloud.com/usermanual-em/eps_15_0001.html)后可以使用。                                                                                                                                                    | default                  |
   | 虚拟私有云  | 下拉框中选择环境资源所在VPC。虚拟私有云（VPC）可帮助您在云上轻松构建隔离的、私密的虚拟网络环境。 如需创建VPC，请单击"创建虚拟私有云"，具体操作参考[创建虚拟私有云](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0013935842.html)。 说明： 环境创建完成后，不支持修改VPC。                                                     | vpc-test(192.168.0.0/16) |
   | 子网     | 下拉框中选择环境子网。子网是虚拟私有云VPC内的IP地址块，可以将VPC的网段分成若干块，子网划分可以帮助您合理规划IP地址资源。 无可用子网时，单击"创建子网"，进入网络控制台创建新子网，具体操作参考[为虚拟私有云创建新的子网](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0013748726.html)。 说明： 子网需要保留至少2个可用网络IP地址，以供CAE配置和优化使用，如果不满足条件，会创建失败。 | vpc-test(192.168.0.0/16) |
   | 安全组    | 选择"自动生成"或"选择已有"。安全组是一个逻辑上的分组，为具有相同安全保护需求并相互信任的云服务器、云容器、云数据库等实例提供访问策略。 说明： 安全组需要放通所选择的子网到子网网关地址，以及需要访问的中间件如RDS，CSE等服务的访问地址和端口。                                                                                                                                               | 选择"自动生成"。                |
   | 镜像仓库组织 | 下拉框中选择一个镜像仓库组织。镜像仓库组织为客户提供更加细化的组织管理，方便客户可以根据自身组织架构去构建镜像的资源管理。 如果您是首次使用本服务，在该下拉框中选择"创建组织"，输入自定义的镜像仓库组织名称。 说明： 单个用户可添加的镜像仓库组织数量上限为5个。如果您需要添加更多镜像仓库组织，请[提交工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)申请。     | cae-demo                 |
      
   
   
4. 单击"确定"，界面跳转显示"环境创建中"及创建进度，等待环境创建完成。
 
#### 步骤二：创建应用
1. 环境创建成功后，可以在"概览"页面上方首次创建应用。
2. 输入应用名称，本案例的示例：cae-test。
3. 单击"创建应用"，新增应用完成。 
   ![](https://support.huaweicloud.com/qs-cae/public_sys-resources/note_3.0-zh-cn.png)
   首次创建完应用后，再次创建应用需要在左侧导航栏中选择"组件列表"，单击页面上方应用模块右侧![](https://support.huaweicloud.com/qs-cae/zh-cn_image_0000002146722144.png)创建新的应用。
   
   
 
#### 步骤三：创建前端组件和后端组件
**创建前端组件：**
1. 在左侧菜单栏选择"组件列表"在所创建的应用下，单击"新增组件"。
2. 在创建组件页面，按照[表2]填写组件信息。
   
    表2创建前端组件 
   | 参数                                       | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 本案例示例                |
   |:---|:---|:---|
   | 组件名称                                     | 新建组件的名称。组件名称命名规则：输入4到32个字符，可以包含小写英文字母、数字和中划线（-），并以小写英文字母开头，小写英文字母或数字结尾。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | cae-frontend         |
   | 版本号                                      | 组件的版本号。 格式为：A.B.C或者A.B.C.D。A、B、C、D为自然数，例如：1.0.0或者1.0.0.0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 1.0.0                |
   | 实例规格                                     | 选择实例规格。 例如"0.5core，1GiB"是指该实例CPU核心数为0.5个，内存容量为1GiB。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 0.5core，1GiB         |
   | 实例数量                                     | 实例数量默认为2，最少为1，最大值为99。 例如实例数量"2"是指创建两个CPU核心数为0.5个、内存容量为1GiB的实例。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 2                    |
   | 代码源                                      | 选择代码来源，包含源码仓库、镜像和软件包。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 源码仓库                 |
   | 源码仓库  | 当代码源选择源码仓库时，需选择一个源码来源。 CAE服务支持识别CodeArts、GitHub、GitCode、GitLab和Bitbucket来源的代码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | GitHub               |
   | 授权信息                                     | 当源码仓库选择GitHub时，从下拉框中选择对应的源码授权信息。 如果您是首次使用该功能，在下拉框右侧单击"新建授权"，填写"授权名称"和选择"授权方式"，单击"确认"完成授权。 在本案例中，授权名称保持默认值，授权方式选择"私人令牌"。 说明： 私人令牌的获取方式： 1. 登录GitHub的[创建私人令牌页面](https://github.com/settings/tokens)。  2. 依次单击"Generate new token \> Generate new token (classic) "。  3. 在设置页面创建正确权限的私人令牌，依次勾选下列scopes："repo"、"read:org"、"admin:repo_hook"、"admin:org_hook"、"read:user"。  4. 单击"Generate token"按钮，生成私人令牌。令牌只返回一次，请记录保存好。   | 选择对应的源码授权信息。         |
   | 用户名/组织                                   | 当源码仓库选择GitHub时，选择源码对应的用户名称或组织，用于当前项目的代码管理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 选择github对应创建的用户名/组织。 |
   | 仓库名称                                     | 当源码仓库选择GitHub时，需要设置仓库名称，用于当前项目下各个模块代码的管理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | cae-frontend         |
   | 分支                                       | 当源码仓库选择GitHub时，选择对应的分支，用于开发对代码的管理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | master               |
   | 语言/运行时                                   | 从下拉框中选择源码对应的语言格式。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Nodejs16             |
   | 自定义构建                                    | 构建命令可根据业务需要选择"使用默认命令或脚本"或"使用自定义命令"。 **注意：**不同源码来源新建授权时授权方式不同，请按照实际情况进行选择。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 使用默认命令或脚本            |
   | Dockerfile                               | 组件来源是"源码仓库"时，根据业务需要设置。支持"自定义"和"系统默认"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 自定义                  |
   | Dockerfile地址                             | 当"Dockerfile"选择"自定义"时，可设置相对于根目录的路径。 **说明：** 1. "Dockerfile地址"即Dockerfile文件相对于项目的根目录（./）所在的目录，Dockerfile文件用于镜像构建。  2. Docker程序通过读取Dockerfile文件生成定制的镜像。  3. dockerfile地址只能包含字母、数字及.-_/且字符长度在1\~255范围内的内容。  4. 如果文件名为Dockerfile，允许只填写目录地址，但目录地址必须以/结尾。                                                                                                                                                                                                                          | ./                   |
      
   
   
3. 单击"创建组件并部署"，在弹框中单击"立即部署"。等待组件创建完成。
**创建后端组件：**
1. 在所创建的应用下，单击"新增组件"。
2. 在创建组件页面，按照[表3]填写组件信息。
   
    表3创建后端组件 
   | 参数           | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 本案例示例                |
   |:---|:---|:---|
   | 组件名称         | 新建组件的名称。组件名称命名规则：输入4到32个字符，可以包含小写英文字母、数字和中划线（-），并以小写英文字母开头，小写英文字母或数字结尾。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | cae-backend          |
   | 版本号          | 组件的版本号。 格式为：A.B.C或者A.B.C.D。A、B、C、D为自然数，例如：1.0.0或者1.0.0.0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 1.0.0                |
   | 实例规格         | 选择实例规格。 例如"0.5core，1GiB"是指该实例CPU核心数为0.5个，内存容量为1GiB。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 0.5core，1GiB         |
   | 实例数量         | 实例数量默认为2，最少为1，最大值为99。 例如实例数量"2"是指创建两个CPU核心数为0.5个、内存容量为1GiB的实例。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 2                    |
   | 代码源          | 选择代码来源，包含源码仓库、镜像和软件包。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 源码仓库                 |
   | 源码仓库         | 当代码源选择源码仓库时，需选择一个源码来源。 CAE服务支持识别CodeArts、GitHub、GitCode、GitLab和Bitbucket来源的代码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | GitHub               |
   | 授权信息         | 当源码仓库选择GitHub时，从下拉框中选择对应的源码授权信息。 如果您是首次使用该功能，在下拉框右侧单击"新建授权"，填写"授权名称"和选择"授权方式"，单击"确认"完成授权。 在本案例中，授权名称保持默认值，授权方式选择"私人令牌"。 说明： 私人令牌的获取方式： 1. 登录GitHub的[创建私人令牌页面](https://github.com/settings/tokens)。  2. 依次单击"Generate new token \> Generate new token (classic) "。  3. 在设置页面创建正确权限的私人令牌，依次勾选scopes："repo"、"read:org"、"admin:repo_hook"、"admin:org_hook"、"read:user"。  4. 单击"Generate token"按钮，生成私人令牌。令牌只返回一次，请记录保存好。   | 选择对应的源码授权信息。         |
   | 用户名/组织       | 当源码仓库选择GitHub时，选择源码对应的用户名称或组织，用于当前项目的代码管理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 选择github对应创建的用户名/组织。 |
   | 仓库名称         | 当源码仓库选择GitHub时，需要设置仓库名称，用于当前项目下各个模块代码的管理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | cae-backend          |
   | 分支           | 当源码仓库选择GitHub时，选择对应的分支，用于开发对代码的管理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | master               |
   | 语言/运行时       | 从下拉框中选择源码对应的语言格式。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | java8                |
   | 自定义构建        | 构建命令可根据业务需要选择"使用默认命令或脚本"或"使用自定义命令"。 **注意：**不同源码来源新建授权时授权方式不同，请按照实际情况进行选择。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 使用默认命令或脚本            |
   | Dockerfile   | 组件来源是"源码仓库"时，根据业务需要设置。支持"自定义"和"系统默认"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 自定义                  |
   | Dockerfile地址 | 当"Dockerfile"选择"自定义"时，可设置相对于根目录的路径。 **说明：** 1. "Dockerfile地址"即Dockerfile文件相对于项目的根目录（./）所在的目录，Dockerfile文件用于镜像构建。  2. Docker程序通过读取Dockerfile文件生成定制的镜像。  3. dockerfile地址只能包含字母、数字及.-_/且字符长度在1\~255范围内的内容。  4. 如果文件名为Dockerfile，允许只填写目录地址，但目录地址必须以/结尾。                                                                                                                                                                                                                              | ./                   |
      
   
   
3. 单击"创建组件并部署"，在弹框中单击"立即部署"。等待组件创建完成。
 
#### 步骤四：组件配置
**前端组件配置访问方式**
1. 在左侧导航栏中选择"组件配置"。
2. 在"组件配置"页面上方的下拉框中选择"cae-frontend"组件。
3. 单击"访问方式"模块中的"编辑"。
4. "从环境外部访问本组件"页面，选择"负载均衡配置"，并单击"添加负载均衡配置"。
5. 参考[表4]进行配置。
   
    表4负载均衡外网访问配置 
   | 参数    | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 本案例示例                                                                                                                                                                                                                                                                                                                                                 |
   |:---|:---|:---|
   | 负载均衡器 | 支持"独享型"和"内置负载均衡器"。 - 选择"内置负载均衡器"，只支持基于EIP公网访问。  - 选择"独享型"时，在下拉框中选择对应负载均衡器。 说明： - 如需选择"独享型"负载均衡器，请先[配置VPC访问CAE环境](https://support.huaweicloud.com/usermanual-cae/cae_03_0064.html)。  - 只支持选择环境所属VPC下的负载均衡实例。  - 可通过将负载均衡器配置弹性公网IP实现外网访问CAE组件。      | 内置负载均衡器                                                                                                                                                                                                                                                                                                                                               |
   | 健康检查  | 此处健康检查是设置负载均衡的健康检查配置。 - 不启用：关闭负载均衡健康检查。  - 启用：启动负载均衡健康检查。默认为"启用"。                                                                                                                                                                                                                                                                                                                                                                                                      | 启用                                                                                                                                                                                                                                                                                                                                                    |
   | 访问控制  | 主要用来控制访问组件的IP地址，您可以创建访问控制策略，允许/禁止某个IP地址对组件进行访问。支持IP和IP网段。 - 允许所有IP访问。  - 白名单。 只允许白名单中放通的IP访问组件。   - 黑名单。 禁止黑名单中的IP访问组件。                                                                                                                                                                                                    | 允许所有IP访问                                                                                                                                                                                                                                                                                                                                              |
   | 端口配置  | 配置端口的协议、监听端口和访问端口。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | - 协议：选择TCP。  - 监听端口：填写为8080。  - 访问端口：任选0\~65535之间合法端口，例如20004。 端口号唯一，避免冲突。    |
      
   
   
6. 单击"确定"，完成前端组件访问方式配置。
7. 单击组件配置页面上方的"生效配置"。在右侧弹框中确认配置信息，并单击"确定"，使配置生效。
**后端组件配置访问方式**
1. 在"组件配置"页面上方的下拉框中选择"cae-backend"组件。
2. 单击"访问方式"模块中的"编辑"。
3. 选择"负载均衡配置"，单击"添加负载均衡配置"，参考[表5]进行配置。
   
    表5负载均衡外网访问配置 
   | 参数    | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 本案例示例                                                                                                                                                                                                                                                                                                                                  |
   |:---|:---|:---|
   | 负载均衡器 | 支持"独享型"和"内置负载均衡器"。 - 选择"内置负载均衡器"，只支持基于EIP公网访问。  - 选择"独享型"时，在下拉框中选择对应负载均衡器。 说明： - 如需选择"独享型"负载均衡器，请先[配置VPC访问CAE环境](https://support.huaweicloud.com/usermanual-cae/cae_03_0064.html)。  - 只支持选择环境所属VPC下的负载均衡实例。  - 可通过将负载均衡器配置弹性公网IP实现外网访问CAE组件。      | 内置负载均衡器                                                                                                                                                                                                                                                                                                                                |
   | 健康检查  | 此处健康检查是设置负载均衡的健康检查配置。 - 不启用：关闭负载均衡健康检查。  - 启用：启动负载均衡健康检查。默认为"启用"。                                                                                                                                                                                                                                                                                                                                                                                          | 启用                                                                                                                                                                                                                                                                                                                                     |
   | 访问控制  | 主要用来控制访问组件的IP地址，您可以创建访问控制策略，允许/禁止某个IP地址对组件进行访问。支持IP和IP网段。 - 允许所有IP访问。  - 白名单。 只允许白名单中放通的IP访问组件。   - 黑名单。 禁止黑名单中的IP访问组件。                                                                                                                                                                         | 允许所有IP访问                                                                                                                                                                                                                                                                                                                               |
   | 端口配置  | 配置端口的协议、监听端口和访问端口。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | - 协议：选择TCP。  - 监听端口：填写9090。  - 访问端口：任选0\~65535之间合法端口，例如20001。 端口号唯一，避免冲突。    |
      
   
   
4. 单击"确定"，完成后端组件访问方式配置。
5. 单击组件配置页面上方的"生效配置"。在右侧弹框中确认配置信息，并单击"确定"，使配置生效。
**前端组件配置环境变量**
1. 在"组件配置"页面上方的下拉框中选择"cae-frontend"组件。
2. 单击"环境变量"模块中的"编辑"。
3. 单击"新增环境变量"，参考[表6]进行配置。
   
    表6环境变量参数 
   | 参数                                       | 参数说明                                                            | 本案例示例            |
   |:---|:---|:---|
   | 类型                                       | 支持"手工添加"和"凭据导入"。                                                | 手动添加             |
   | 变量名称  | 环境变量的名称，必须唯一。变量名称的命名规则：由字母、数字、下划线（_）、中划线（-）、点（.）组成，不能以数字开头。     | VUE_APP_BASE_URL |
   | 变量/变量引用                                  | 填写后端的访问地址，可以在"组件列表"获取，如[图1]所示。 | 填写后端的访问地址。       |
      
   图1获取后端访问地址   
   ![](https://support.huaweicloud.com/qs-cae/zh-cn_image_0000001935778033.png "点击放大")
   
   图2配置前端环境变量   
   ![](https://support.huaweicloud.com/qs-cae/zh-cn_image_0000001684315676.png "点击放大")
   
   
4. 单击"保存"后，单击"确定"完成配置。
5. 单击组件配置页面的上方"生效配置"。在右侧弹框中确认配置信息，并单击"确定"，使配置生效。
 
#### 步骤五：访问应用
1. 在左侧导航栏中选择"组件列表"，进入"组件列表"页面。
2. 单击"cae-frontend"组件"访问地址"列的公网地址，可查看应用页面。 
   图3访问应用页面   
   ![](https://support.huaweicloud.com/qs-cae/zh-cn_image_0000001756838173.png "点击放大")
   ![](https://support.huaweicloud.com/qs-cae/public_sys-resources/note_3.0-zh-cn.png)
   若您选择内网访问方式，则需要登录集群节点使用curl命令访问。具体操作可参考[内网访问](https://support.huaweicloud.com/usermanual-cae/cae_03_0015.html)。
   
   
 
