
# 步骤五：搭建函数更新流水线
此流水线的主要作用是将functions仓库的helloworld函数代码配置发布更新到FunctionGraph平台。
#### 新建构建任务
1. 在"构建\&发布 \> 编译构建"页面，单击"新建任务"。
2. 源码仓库选择functions仓库，构建模板选择"空白构建模板"。
3. 构建步骤，添加三个构建步骤"执行shell命令"、"上传文件到obs"和"上传软件包到软件发布库"。
   1. 执行shell命令
      ```
      # 构建函数部署包
      cd helloworld
      zip helloworld_deploy.zip cam.yaml
      # 构建函数代码压缩包
      cd code
      zip -rp helloworld.zip *
      ```
      图1执行shell命令   
      ![](https://support.huaweicloud.com/devg-functiongraph/zh-cn_image_0000001315084306.png "点击放大") 
   
   
   
   2. 上传函数压缩包到OBS
      图2上传函数压缩包到OBS   
      ![](https://support.huaweicloud.com/devg-functiongraph/zh-cn_image_0000001366492721.png "点击放大")
      - 步骤显示名称：上传函数压缩包到OBS
      
      - 构建产物路径：输入helloworld/code/helloworld.zip
      
      - 桶名：选择一个私有桶存储函数代码zip包
      
      - OBS存储目录：function
       
   
   3. 上传部署包到软件发布库
      图3上传部署包到软件发布库   
      ![](https://support.huaweicloud.com/devg-functiongraph/zh-cn_image_0000001316047494.png "点击放大")
      - 步骤显示名称：上传部署包到软件发布库
      
      - 构建包路径：helloworld/helloworld_deploy.zip
      
      - 发布版本号：${releaseVersion}
       
    
4. 在"参数设置"中配置releaseVersion，开启"运行时设置"。
   图4参数设置   
   ![](https://support.huaweicloud.com/devg-functiongraph/zh-cn_image_0000001366493357.png "点击放大") 
5. 在"基础信息"页签下，更新任务名称为pipeline-update-function-deploy，并单击"保存"。
 
#### 新建部署任务
1. 在"构建\&发布 \> 部署"页面，单击"新建任务"。
2. "部署模板"选择"空白模板"，单击"下一步"
3. 部署步骤。选择添加步骤"选择部署来源"和"执行shell命令"。
   图5添加部署步骤   
   ![](https://support.huaweicloud.com/devg-functiongraph/zh-cn_image_0000001366854145.png "点击放大")
   1. 选择部署来源
      图6将函数部署包下载到部署机   
      ![](https://support.huaweicloud.com/devg-functiongraph/zh-cn_image_0000001432236477.png "点击放大")
      - 步骤显示名称：将函数部署包下载到部署机
      
      - 主机组：deploy-function
      
      - 选择软件包：/functions-helloworld-build/${releaseVersion}/helloworld_deploy.zip
      
      - 下载到主机的部署目录：/home/function/deploy
       
   
   2. 执行shell命令
      图7部署函数   
      ![](https://support.huaweicloud.com/devg-functiongraph/zh-cn_image_0000001432517101.png "点击放大")
      - 步骤显示名称：部署函数
      
      - 主机组：选择deploy-function
      
      - shell命令：
        ```
        cd /home/function/deploy
        unzip -o helloworld_deploy.zip -d helloworld_deploy
        python3 deploy.py helloworld_deploy "${key}"
        ```
        
       
    
4. 添加两个"参数设置"。
   - releaseVersion：默认值为1.0.0，开启"运行时设置"。
   
   - key：默认值输入密码，开启"私密参数"。
     图8参数设置   
     ![](https://support.huaweicloud.com/devg-functiongraph/zh-cn_image_0000001366855153.png "点击放大") 
    
5. 在"基础信息"页签下，更新任务名称为update-function-deploy，并单击"保存"。
 
#### 配置流水线
1. 在"构建\&发布 \> 流水线"页面，单击"新建流水线"。
2. 源码仓库选择functions仓库，构建模板选择"空白构建模板"。
3. 配置"构建和检查"。
   1. 添加构建任务，类型为构建，选择要添加的任务functions-helloworld-build任务。
      图9添加任务   
      ![](https://support.huaweicloud.com/devg-functiongraph/zh-cn_image_0000001422233916.png "点击放大") 
   
   2. 其中releaseVersion设置为流水线参数。
      图10releaseVersion参数设置   
      ![](https://support.huaweicloud.com/devg-functiongraph/zh-cn_image_0000001315254700.png "点击放大") 
   
   3. 单击"保存"，保存构建任务。
    
4. 配置部署任务
   1. 在构建阶段后新建一个阶段，名称为部署，任务串行执行，完成后单击"保存"。
      图11阶段配置   
      ![](https://support.huaweicloud.com/devg-functiongraph/zh-cn_image_0000001422074808.png "点击放大") 
   
   2. 单击"添加任务"，添加一个类型为部署的任务，输入名称为部署helloworld脚本，选择需要调用的任务update-function-deploy。
      图12添加任务   
      ![](https://support.huaweicloud.com/devg-functiongraph/zh-cn_image_0000001422234452.png "点击放大") 
   
   3. 其中releaseVersion设置为流水线参数。
      图13releaseVersion参数设置   
      ![](https://support.huaweicloud.com/devg-functiongraph/zh-cn_image_0000001315414592.png "点击放大") 
   
   4. 单击"保存"，保存部署任务。
    
5. 在"基础信息"页签下，更新流水线名称为pipeline-update-function-helloworld，单击"保存"。
6. 执行流水线。
   运行时参数配置releaseVersion输入1.0.0，单击"执行"。
   图14运行时参数配置   
   ![](https://support.huaweicloud.com/devg-functiongraph/zh-cn_image_0000001314935236.png "点击放大") 
 
