管理流水线
Serverless应用中心提供可定制的流水线执行能力,支持用户通过编辑模板自定义流水线执行步骤,帮助用户将代码发布至Serverless应用。本文介绍如何通过控制台管理流水线,包括配置流水线和查看流水线执行历史。
背景信息
应用中心围绕Git提供使用的最佳实践。在创建应用时,会为应用创建默认的环境,也可以为默认的环境指定流水线Git事件触发方式,并编辑相应的流水线模板配置。在创建环境时,可以指定该环境的流水线Git事件触发方式,并编辑相应的流水线模板配置。配置完成后,当发生满足条件的Git事件时,流水线会被触发,并按照用户配置的流水线模板执行。Git信息、应用信息等将作为执行上下文传递到流水线中。
在创建应用或创建环境时配置流水线
在创建应用或创建环境时,可以为环境指定流水线Git事件触发方式以及流水线模板配置。
在环境中编辑流水线
对已有的环境,在流水线管理页签,可以编辑环境的流水线Git事件触发方式以及流水线模板配置。
流水线触发方式
应用中心支持用户自定义触发流水线的Git事件。当应用中心接收到指定分支的推送事件、Tag/Release推送的事件或者Merge/Pull Request合并的事件时,将按照用户配置的流水线模板执行流水线。

配置流水线模板
您可以通过快速配置、高级配置两种方案配置流水线模板。
快速配置流水线
通过应用中心提供的应用模板初始化的应用,都包含了s.yaml
文件。s.yaml
文件定义了Serverless应用的运行时信息。应用中心提供了可以开箱即用的流水线模板,使用Serverless Devs工具快速将应用部署为Serverless应用。在试用场景和测试场景推荐您使用快速配置方案配置流水线模板。
在快速配置方案中,您需要选择指定的Git事件触发方式。部署成功后,当应用中心接收到对应的Git事件时,将按照流水线模板执行。
高级配置流水线
流水线类型支持配置通用流水线和通过仓库指定文件描述流水线,具体的操作请参见:
配置通用流水线
应用中心提供了参数化配置通用流水线模板的能力。在环境变量区域,选择流水线类型为配置通用流水线后,您需要配置的信息如下。
环境变量:选择使用表单编辑或者使用 JSON 格式编辑,然后根据提示输入变量名称和变量值。流水线环境变量可以在执行时被引用。
指定YAML:由于Serverless应用中心的流水线核心模块采用的是Serverless Devs开发者工具,因此,此处指定的YAML文件是Serverless Devs的资源描述文件。指定的原理是Serverless Devs的
-t/--template
命令,例如,此处指定的YAML文件为demo.yaml
,在后续的流水线流程配置中,默认的Serverless Devs命令后面会增加参数-t demo.yaml
。关于YAML文件的配置方法,请参见配置YAML文件。钉钉机器人通知配置:开启该配置后,需要配置钉钉机器人的Webhook地址、加签密钥、通知规则以及自定义消息等。完成配置后,可以在具体的流程配置中进行各个流程的钉钉机器人细化配置。
配置流水线流程
在流水线详情区域,您可以配置流水线流程,例如构建与部署流程中的构建命令、部署命令等。具体信息,如下图所示。依次单击代码源、线上配置比对、人工审核、构建与部署、版本灰度、人工审核和版本发布进行配置。

代码源
用于配置当前流水线代码源信息。主要用于设置代码的触发条件,例如,通过Push到指定分支进行触发、通过Tag/Release事件进行触发或者通过Merge/Pull Request事件进行触发等。
重要如果需要修改代码仓库,请在应用详情处进行修改。具体操作,请参见管理应用。修改代码仓库后,会涉及到所有流水线的失效,请谨慎操作。
线上配置比对
判断流水线所涉及到的资源描述文件与线上配置内容是否一致,便于提前发现非预期的配置变化。如果需要人工确认后再进行变更,请开启下一阶段的人工审核。
人工审核
为确保应用的安全发布以及保障发布后的稳定,可以在此阶段开启人工审核机制,当流水线走到此处会被阻塞,并等待人工审核确认。只有人工审核通过后才能继续进行后续操作,否则将终止当前流水线。
构建与部署
用于配置应用构建与部署命令。
自定义构建命令:如果部署应用之前需要进行构建操作,可以在此处填写构建命令,例如
npm install
。说明如果构建命令已经集成到资源描述文件中,此处无需重复填写构建命令。
执行构建命令路径:用于指定构建命令的执行目录。只需填写代码的相对目录即可,例如,代码在当前文件夹,此处填写
./
。部署参数:默认提供全量部署。支持只更新函数、只部署代码、只更新配置和调试模式。实现原理为通过
s deploy
命令增加对应的参数。
版本灰度
应用版本发布、别名发布与流量灰度。此功能基于函数计算的别名与灰度发布功能。更多信息,请参见使用版本和别名实现灰度发布。此处开启版本灰度功能后,流水线会自动发布新版本,并将新版本按照指定的比例配置到指定的别名中进行灰度上线。
如果已在资源描述文件中手动配置了灰度能力,可以不开启此功能,系统会默认使用资源描述文件中配置的灰度发布策略。
人工审核
再次设置人工审核环节。
版本发布
应用版本发布与别名发布。发布是指创建函数计算服务的版本和别名,并将别名指向最新版本。如果前置操作存在灰度发布,此处的发布功能将会把别名流量100%指向最新版本,表示灰度完成可以进行全量发布。
如果已在资源描述文件中手动配置了发布策略,可以不开启此功能,系统会默认使用资源描述文件中配置的发布策略。
切换通用流水线的运行环境
流水线默认采用多租账号模式,即由阿里云函数计算为您承担流水线执行过程中的费用成本。流水线也可以运行在用户账户下,应用中心会按照用户的授权,实时在用户账户下调度函数计算实例运行流水线。该模式可以让流水线结合函数计算的产品能力,打通用户指定的VPC网络,使用用户私有的存储计算资源,可以有效覆盖自建VPC-GitLab场景,解决流水线实例拉不到代码、构建超时等问题,同时可以提升用户代码的安全性。
在指定环境详情页面,选择流水线管理,然后在流水线详情区域,单击右侧的切换自定义流水线方案。
在切换流水线方案对话框,选择自定义流水线方案,根据界面提示设置相应配置项,然后单击确认。
通过自定义流水线,您可以在您自己的服务下建立流水线。该流水线服务只有您当前账号可以直接使用,除非将触发规则和地址对外开放。您可以定义更高阶的流水线功能,包括流水线的超时时间、通过VPC触发流水线等。
流水线在被触发后,会产生相关费用。更多信息,请参见计费概述。
通过仓库指定文件描述流水线
流水线配置也可以通过仓库中的描述文件指定,以获得完整的DevOps体验。指定流水线YAML文件的配置方法,请参见使用YAML文件描述自定义流水线。
查看流水线执行历史
在指定环境详情页面,选择流水线管理页签,然后在下方流水线执行历史区域,您可以查看指定流水线的历史执行记录。
您可以单击具体的流水线执行版本,查看当前流水线历史的具体信息。通过此信息,可以快速地查看流水线的执行日志以及状态等,便于掌握流水线的执行情况或排查问题。
升级流水线构建环境运行时
当前默认流水线构建环境的运行时如下所示,目前仅支持操作系统为Debian 10的运行时环境。
运行时类别 | 具体版本 |
Node.js | 默认为Node.js 14版本。支持Node.js 12、Node.js 14、Node.js 16和Node.js 18版本。 |
Java | 支持Java 8版本。 |
Python | 默认为Python 3.9。支持Python 2.7、Python 3.6、Python 3.7、Python 3.9和Python 3.10版本。 |
Golang | 支持Go 1.18版本。 |
PHP | 支持PHP 7.2版本。 |
您可以通过设置流水线环境变量或者在资源描述文件中指定钩子来切换Node.js或Python的版本。具体说明如下。
Node.js
export PATH=/usr/local/versions/node/v12.22.12/bin:$PATH
export PATH=/usr/local/versions/node/v16.15.0/bin:$PATH
export PATH=/usr/local/versions/node/v14.19.2/bin:$PATH
export PATH=/usr/local/versions/node/v18.14.2/bin:$PATH
示例如下。
services: upgrade_runtime: component: 'fc' actions: pre-deploy: - run: export PATH=/usr/local/versions/node/v18.14.2/bin:$PATH && npm run build props: ...
Python
export PATH=/usr/local/envs/py27/bin:$PATH
export PATH=/usr/local/envs/py36/bin:$PATH
export PATH=/usr/local/envs/py37/bin:$PATH
export PATH=/usr/local/envs/py39/bin:$PATH
export PATH=/usr/local/envs/py310/bin:$PATH
示例如下。
services: upgrade_runtime: component: 'fc' actions: pre-deploy: - run: export PATH=/usr/local/envs/py310/bin:$PATH && pip3 install -r requirements.txt -t . props: ...
当前默认流水线构建环境的运行时内置的包管理工具包括Maven、PIP和NPM。