阿里云函数计算支持别名管理,别名是版本控制过程中涉及的一种资源。您可以通过结合别名和版本实现软件开发生命周期持续集成、持续发布的功能。

别名定义

别名可以理解为指向特定服务版本的指针,是函数计算的一种资源。别名无法脱离服务或版本单独存在。使用别名访问服务或函数时,函数计算会将别名解析为其指向的版本,调用方无需了解别名指向的具体版本。

函数计算支持为服务的版本创建别名。别名指向特定服务版本,可以更改。别名不能指向其他别名。您可以利用别名来轻松实现发布、回滚以及灰度发布等功能。

例如,假设第三方是通过HTTP触发器来触发您的函数,如果没有别名,每次新版本上线,您需要手动修改HTTP触发器关联的版本号,并且在修改的过程中会影响客户端的使用。而如果使用别名进行版本管理,您可以实现版本的平滑升级。

您可以设置别名PROD指向稳定的版本1。若您的函数下存在触发器,设置触发器关联别名PROD,详情请参见在触发器中使用别名。客户端直接通过别名PROD调用版本1下的函数。

图 1. 发布版本1
version1

版本1发布后,您可以继续在LATEST版本上开发新功能。由于客户端是通过别名调用对应版本下的函数,当需要发布新版本2时,只需要将别名PROD更新为指向版本2,此时,客户端调用时解析出的版本即为版本2,这样就可以完成版本的更新迭代。您也可以更改别名的指向,将别名PROD重新指向版本1回滚到之前的版本。通过这种方式发布,不需要频繁更新触发器,也不会影响客户端的使用。

图 2. 发布版本2
version2

别名属性

在创建别名时,您需要指定以下信息:

说明 除别名名称外,其他属性均可后续修改。
参数 是否必选 描述
AliasName 别名名称。在当前函数计算服务内唯一,并符合如下约束:
  • 由英文大小写字母、数字(0~9)、下划线(_)和短划线(-)组成。
  • 必须以英文字母(a~z)、(A~Z)或下划线(_)开始。
  • 大小写敏感。
  • 长度为1~128字符。
  • 别名名称不能为LATEST,LATEST为函数计算占用的默认版本名称。
VersionId 别名指向的版本。别名不能指向系统预留的版本,即LATEST。
Description 别名的描述信息。
AdditionalVersionWeight 别名指向的灰度版本以及灰度权重。
  • 灰度版本只在调用函数时生效。
  • 由版本号和对应的权重组成,例如,2:0.05表明调用函数时,版本2为灰度版本,切5%的流量到灰度版本,95%的流量默认到主版本。