计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

图形化新建流水线自定义插件

更新时间:2025-01-22 GMT+08:00

新建流水线自定义插件

  1. 访问CodeArts Pipeline首页
  2. 进入流水线服务首页,单击“服务 > 扩展插件”。
  3. 单击,开始注册插件。
  4. 填写基本信息,相关参数说明如表1所示。

    表1 自定义插件基本信息

    参数项

    说明

    插件图标

    插件封面图,不上传将会自动生成系统图标。支持png、jpeg、jpg格式,文件大小不超过512KB,建议128*128px。

    名称

    插件在插件市场和流水线显示的名称。支持空格、中文、大小写英文字母、数字、“-”、“_”、“.”,长度不超过50字符。

    唯一标识

    插件的唯一标识,设置后不可修改,建议设置成具有实际含义的内容。支持大小写英文字母、数字、“-”、“_”,长度不超过50字符。

    插件类型

    插件的类型,支持构建、代码检查、测试、部署、通用共5种类型,设置后不可修改。

    插件描述

    插件描述将展示在插件市场中,介绍插件主要用途和功能,设置后可修改。长度不超过1000字符。

  5. 单击“下一步”,进入“版本信息”页面,填写插件版本和版本描述 。

    说明:
    • 插件版本号,支持填写3组0-99的数字。
    • 该页面填写的信息将作为插件版本信息展示,发布后不支持修改,请谨慎填写。

  6. 单击“下一步”,进入“输入配置”页面,根据需要编排组件。

    插件平台支持低代码化生成前端页面,拖拽组件生成可视化表单,打通流水线上下文数据,减少插件开发成本。平台默认提供了单行输入、数字、下拉单选、下拉多选、单选框、开关、多行输入等多款组件。

    图1 编排组件

    将左侧组件拖拽到中间布局区域,单击具体组件,右侧区域展示组件参数配置,参数说明如下:

    表2 组件参数说明

    类别

    参数名

    说明

    适用控件

    基本

    唯一标识

    组件唯一标识,用于插件业务逻辑实现过程中获取组件输入时使用。支持大小写英文字母、数字、“-”、“_”,长度不超过200字符。

    全部控件。

    组件标题

    用于标识组件,该标题会展示在流水线任务编排页面,长度不超过140字符。

    全部控件。

    提示信息

    组件标题旁的提示信息,如:组件的含义。长度不超过1000字符。

    全部控件。

    预设提示语

    组件输入框内的提示信息,如:输入规范。

    单行输入。

    精度

    设置控件数值支持的小数位数,输入范围为0~4。

    数字。

    默认值

    用于设置组件的默认值。

    单行输入、数字、开关、多行输入、Metrics。

    校验

    必填

    设置控件内容是否必填,支持设置错误提示信息。

    单行输入、数字、下拉单选、下拉多选、单选框、多行输入。

    正则校验

    设置控件输入内容校验,支持设置错误提示信息。

    单行输入、数字、下拉单选、下拉多选、多行输入。

    字符数限制

    用于设置组件的最大字符数限制。

    多行输入。

    选项

    自定义选项

    设置控件的选项范围。单击,新增选项,单击,删除选项。

    • 选项名称:插件配置时的界面显示内容。
    • 选项值:插件运行时实际下发的值。

    除手动配置外,还支持通过以下方式设置可选范围:

    • 通过接口获取选项:配置webapi以获取选项内容。单击右侧,弹出“API接口”对话框,启用后即可配置,API接口参数说明请参考表3
    • 通过上下文获取选项:数据源当前支持代码源和构建任务,分别获取流水线运行时的代码源url和当前插件之前的所有构建任务ID信息。单击“自定义选项”旁的,弹出“上下文”对话框,启用后即可配置。

    下拉单选、下拉多选、单选框。

    高级

    显示

    设置控件是否可见(默认显示),单击右侧,可在弹窗中配置按条件显示。

    全部控件

    禁用

    设置控件是否禁用(默认不禁用),单击右侧,可在弹窗中配置按条件禁用。

    全部控件

    表3 API接口参数说明

    参数项

    说明

    启用

    控制是否通过接口获取选项。

    联动属性

    建立其他所选组件和接口的联动关系,可以进行参数传递,当组件的值更新时,会使用新值作为参数对接口进行重新调用。

    URL

    仅支持HTTPS协议。

    返回数据路径

    使用的控件需为列表数据。如以下响应体示例的返回数据路径为“result.parameters”。

    {
        "result": {
            "total": 2,
            "parameters": [
                {
                    "id": 3353753,
                    "name": "parameters01"
                },
                {
                    "id": 3353697,
                    "name": "parameters02"
                }
            ]
        },
        "status": "success"
    }

    选项值

    填写返回数据路径对应列表中的字段,插件运行时实际下发的对应值。

    选项名称

    填写返回数据路径对应列表中的字段,插件配置时的界面显示内容。

    Params参数

    API接口请求体的Params参数。

    Header参数

    API接口请求体的Header参数。

    远程搜索

    开启后,可添加远程搜索字段,使用插件时在输入框中填写值,会使用所填的值作为远程搜索字段的值对接口进行重新调用。

    • Params参数:搜索字段的参数类型为API接口请求体的Params参数。
    • Body参数:搜索字段的参数类型为API接口请求体的Body参数。

  7. 单击“下一步”,进入“插件编排”页面,可添加“执行Shell”插件。

    • 执行Shell:用于执行用户输入的Shell命令。

      在插件命令中填入Shell命令,流水线调用插件时即可执行该命令。

      说明:

      插件命令是插件实际业务逻辑实现的过程,更多输入输出配置,请参见开发流水线自定义插件Shell命令

  8. 单击“下一步”,进入“输出信息”页面,单击“新增配置”,即可新增一条输出信息,包括output、metric、link和table四种类型,流水线执行完成后,在详情页面进入任务结果页面,查看对应插件的任务结果,会根据类型展示相应输出信息。

    • output:在任务结果页面的“其他”卡片展示,结合Shell命令用于数据输出。
    • metric:在任务结果页面的“其他”卡片展示,用于输出指标解析,输出信息可以在规则中通过该插件进行引用,并最终应用到流水线。
    • link:在任务结果页面的“链接”卡片展示,其值是一个链接,单击可跳转至对应页面。
    • table:在任务结果页面的“表格数据”卡片展示,其值是一个对象数组,以表格形式展示数组信息。

  9. 配置完成后,单击“发布草稿”或“发布”,完成插件新建流程。

    • 发布草稿
      单击“发布草稿”,作为测试版本进行发布。
      • 发布草稿后,创建者可在流水线配置该草稿版本进行插件调试,测试完毕后,草稿版本可以发布为正式版本,供当前租户账号下其他成员使用。
      • 草稿版本均带有“草稿”标识。
      • 只允许存在一个草稿版本,且存在草稿版本时,不允许新建版本,必须将草稿版本发布为正式版本或删除后才可新建。
    • 正式发布

      单击“发布”,作为正式版本进行发布,正式版本发布后,会有一个独立的版本号,当前租户账号下所有成员都可在流水线中使用该插件版本。

开发流水线自定义插件Shell命令

注册插件或新建插件版本时,支持用户在插件命令输入Shell命令以实现插件业务逻辑,编写命令过程中,通常会涉及和流水线执行过程中的各种数据进行交互。本节从插件的代码开发输入输出,介绍插件业务的代码实现。

  • 自定义插件的数据输入

    插件代码开发过程中获取的外部信息主要包括三部分:低代码界面配置输入、流水线运行参数、其他外部信息。

    • 低代码界面配置输入:在插件命令中,使用环境变量获取低代码界面输出,如:echo ${控件唯一标识}。
    • 流水线运行参数:流水线的部分运行参数会下发到环境变量中,当前已提供的环境变量如下:
      表4 流水线环境变量

      变量

      描述

      STEP_NAME

      当前流水线的运行步骤名称。

      STEP_ID

      当前流水线的运行步骤ID。

      PLUGIN_VERSION

      当前自定义插件版本。

      PIPELINE_ID

      流水线ID。

      PIPELINE_RUN_ID

      流水线执行ID。

      PLUGIN_NAME

      插件名称。

      PROJECT_ID

      当前项目ID。

      JOB_ID

      当前流水线运行任务ID。

      RESULT_MSG_PATH

      插件执行结果文件存放目录,在该目录下写入${STEP_ID}_result.json和${STEP_ID}_metrics.json以上报执行结果到流水线。

    • 其他外部信息:通过git、wget、curl等方式自主与外部数据进行交互,以获取所需要的数据或信息。
  • 自定义插件的数据输出

    业务执行完毕后,自定义插件可以读取指定路径文件信息,获取插件的指标数据输出,具体实现步骤如下:

    1. 在插件的低代码界面,通过配置输出信息,用于配置插件的输出阈值。
    2. 在插件的代码开发过程中,通过向指定路径输出“${STEP_ID}_result.json”和“${STEP_ID}_metrics.json”文件,实现插件运行完成后,对相应的指标值进行解析。
      表5 输出文件说明

      输出文件

      使用说明

      ${RESULT_MSG_PATH}/${STEP_ID}_result.json

      输出 {"par1":123, "par2":456} 格式的文本文件,流水线运行完成后会将该结果展示在相应任务的任务结果当中。

      说明:

      当前仅“代码检查”类型的插件支持将该结果进行展示。

      ${RESULT_MSG_PATH}/${STEP_ID}_metrics.json

      输出 {"par1":123, "par2":456} 格式的文本文件,配合插件“输入配置”中的metrics控件使用。流水线在插件步骤运行完成后,会根据该插件配置的metrics控件中的阈值和“${STEP_ID}_metrics.json”文件中的实际内容,进行比对和解析,并最终用于流水线阶段准出的拦截依据。比对解析逻辑如下:

      • 解析时,服务会忽略未配置在metrics控件中的key值。
      • 当metrics控件中配置的key值无法在“${STEP_ID}_result.json”文件中找到对应值时,对应阈值会用value值进行填充。

      示例介绍:实现对外输出“par1”和“par2”指标用于任务结果展示,输出“par3”和“par4”指标用于准出拦截,示例代码如下:

      # Optionally, construct the extension output.
      echo '{"par1":100,"par2":200}' > ${RESULT_MSG_PATH}/${STEP_ID}_result.json
      echo '{"par3":300,"par4":400}' > ${RESULT_MSG_PATH}/${STEP_ID}_metrics.json
    3. 流水线在插件步骤运行完毕后,单击相应步骤卡片,即可查看自定义插件的输出结果。

      如果当前插件配置了相应的策略,并应用到流水线准出条件中,还可以单击准出条件查看阶段拦截情况。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容