
# 基于CodeArts IDE Online部署微服务到容器镜像服务
本章节主要介绍如何在CodeArts IDE Online中快速将开发好的微服务部署到华为云容器服务，并进行快速验证。
 #### 准备工作
- 登录到容器镜像服务（SWR）控制台。参考[创建组织](https://support.huaweicloud.com/usermanual-swr/swr_01_0014.html#section1)完成组织创建。
- 登录到[我的凭证](https://console.huaweicloud.com/iam/#/myCredential)，在"项目列表"区域获取镜像仓库访问地址、区域项目名称。
  镜像仓库地址为：**swr.区域项目名称.myhuaweicloud.com** ，如中国华北区4对应的镜像仓库地址为：**swr.cn-north-4.myhuaweicloud.com**。
  
- 获取访问密钥AK/SK，具体操作请参见[如何获取访问密钥AK/SK](https://support.huaweicloud.com/iam_faq/iam_01_0618.html)。
 
#### 操作步骤
1. 创建并启动IDE实例。 
   1. 登录到CodeArts IDE Online控制台，如果提示未开通则单击"OK"跳转至开通页面完成服务开通，成功登录后的页面如下： ![](https://support.huaweicloud.com/bestpractice-cloudide/figure/zh-cn_image_0000002343244002.png "点击放大")
      
   
   2. 单击"新建实例"，进入IDE实例模板配置页面并完成配置，已有实例并完成载入了项目工程则可以跳过该步骤。 针对已有实例，则直接单击实例列表的启动按钮进入实例页面。
      ![](https://support.huaweicloud.com/bestpractice-cloudide/figure/zh-cn_image_0000002377441773.png "点击放大")
      
   
   
   
   
2. 开发调试微服务代码 
   代码编写完成后，单击左侧Debug页签中的"Start Debug"或Main函数中的"Debug"启动工程，在代码文件行号前鼠标左键单击打上断点，完成监听端口的外部访问权开通即可边调试边在浏览器中查看代码修改的应用效果。
   动图演示如下：
   ![](https://support.huaweicloud.com/bestpractice-cloudide/figure/zh-cn_image_0000002377281897.gif "点击放大")
   
   
3. 制作微服务容器镜像 
   1. 编辑pom文件增加谷歌jib插件配置 打开微服务工程中的"pom.xml"文件，在plugins标签下增加如下图内容：
      ![](https://support.huaweicloud.com/bestpractice-cloudide/figure/zh-cn_image_0000002343403810.png "点击放大")
      jib的maven配置格式：
      ```
      <plugin>
          <groupId>com.google.cloud.tools</groupId>
          <artifactId>jib-maven-plugin</artifactId>
          <version>1.8.0</version>
          <configuration>
              <from>
                  <image>用户账户ID.mirror.swr.myhuaweicloud.com/library/java</image>
              </from>
              <to>
                  <image>swr.区域项目名称.myhuaweicloud.com/个人在SWR中创建的组织/springboot-demo:1.0</image>
                  <auth>
                      <username>区域项目名称@申请的AK</username>
                      <password>获取到的长期有效的Docker登录密钥</password>
                  </auth>
              </to>
              <container>
                  <mainClass>微服务入口类</mainClass>
             </container>
          </configuration>
      </plugin>
      ```
      其中用户账号ID、区域项目名称、AK/SK信息在[准备工作]获取。
      - 长期有效的Docker登录密钥：可通过在Terminal中执行命令如下获取，*$AK* 、*$SK* 替换成[准备工作]章节获取到的真实AK/SK。
        ```
        printf "$AK" | openssl dgst -binary -sha256 -hmac "$SK" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//'
        ```
        
      
      - 个人在SWR中创建的组织：在[准备工作]已完成创建。
      
      - "from"标签中的image标签内容为源镜像的地址，其中，"library"为容器镜像服务中镜像中心的组织名，该组织下分享了很多官方容器镜像，"java"为源镜像名称。
       
   
   2. 编译打包并向SWR推送微服务镜像
      完成jib配置后，在Terminal中输入"mvn package -Dmaven.test.skip=true jib:build"并回车，动图演示如下：
      ![](https://support.huaweicloud.com/bestpractice-cloudide/figure/zh-cn_image_0000002377281901.gif "点击放大")
      
   
   3. 验证微服务镜像推送结果
      登录SWR服务，验证查询容器镜像是否完成推送，动图演示如下：
      ![](https://support.huaweicloud.com/bestpractice-cloudide/figure/zh-cn_image_0000002377441785.gif "点击放大")
      
   
   
   
   
4. 部署微服务容器镜像 
   1. 打开插件市场，搜索到"Developer Console"后，单击"安装"即可完成安装。 ![](https://support.huaweicloud.com/bestpractice-cloudide/figure/zh-cn_image_0000002377281909.png "点击放大")
      
   
   2. 部署微服务到云容器实例（ CCI）
      1. 配置Profile Profile是一组API调用鉴权所需配置的抽象，Profile中的相关信息可通过访问[我的凭证](https://console.huaweicloud.com/iam/#/myCredential)获取，通过如下信息就可以获取到镜像列表、vpc列表、cci负载/命名空间等数据。
         - name：用于标识区分不同的Profile，只能输入大小写英文字母、下划线、中划线。
         
         - ProjectID：对应项目ID。
         
         - ProjectName：对应项目名称的英文。
         
         - Region：将控制台切换到区域项目所在region，网页URL中的region字段，如：cn-north-4。
         
         - UserID：用户ID。
         
         - UserName：用户名。
         
         - AK/SK：下载管理访问密钥页面中密钥excel文件，注意该文件的下载只有首次添加可以下载。
         
         
         ![](https://support.huaweicloud.com/bestpractice-cloudide/figure/zh-cn_image_0000002343244010.png "点击放大")
         
       
   
   3. 添加Namespace，具体请参见[命名空间](https://support.huaweicloud.com/usermanual-cci/cci_01_0001.html)。
      选择不同的Profile，Namespace列表不尽相同，每一组profile对应不同的鉴权信息。
      ![](https://support.huaweicloud.com/bestpractice-cloudide/figure/zh-cn_image_0000002377281913.gif "点击放大")
      
   
   4. 创建Deployment
      1. 选择Profile和Namespace后，单击"Add"会出现deployment的配置输入，如果需要配置更多，则可以单击"Go to Portal"跳转至CCI页面进行创建。
         - 如果Pod中的镜像启动需要监听端口并且需要开放外部访问权时，则需要增加容器端口跟elb端口的映射关系，其中elb的端口一定要填写未被占用的。
         
         - 如果Pod中的镜像启动无监听端口或者不需要开发外部访问权时，则网络映射配置中的"Type"选择"Not enable"。
          
      
      2. 创建完成后，单击"Upgrade"将在IDE中直接升级负载，放弃升级则单击"Cancel"，如果希望跳转到CCI页面进行升级，则只需要单击与"Upgrade"平级的"Go to Portal"即可。
      
      3. 单击"Delete"，当前deployment则会被立即删除并附带删除配置的service数据。
      
      
      ![](https://support.huaweicloud.com/bestpractice-cloudide/figure/zh-cn_image_0000002343244014.gif "点击放大")
      
   
   
   
   
 
