别名管理

函数计算支持为函数版本创建别名。结合别名和版本功能,实现软件开发生命周期中的持续集成和发布。本文介绍别名的含义以及如何通过函数计算控制台管理别名。

什么是别名

函数计算中,别名可以理解为指向特定版本的指针。通过别名,您可以轻松实现版本发布、回滚以及灰度发布等功能。别名无法脱离函数或版本单独存在,使用别名访问函数时,函数计算会将别名解析为其指向的版本,调用方无需了解别名指向的具体版本。

HTTP触发器为例,如果没有别名,每次新版本上线,您需要手动修改HTTP触发器关联的版本号,在修改的过程中会影响客户端的使用。使用别名后,可以实现版本的平滑升级。例如,将别名PROD指向稳定的版本1,客户端通过别名PROD调用版本1下的函数(如图1),当发布版本2时,只需将别名PROD指向版本2,客户端即可通过别名PROD调用版本2下的函数(如图2)。

平滑升级版本

图 1. 发布版本1

image

版本1发布后,您可以继续在LATEST版本上开发新功能。由于客户端是通过别名调用对应版本下的函数,当需要发布新版本2时,只需要将别名PROD更新为指向版本2,此时,客户端通过别名PROD调用函数时解析出的版本即为版本2,这样就可以完成版本的更新迭代。

图 2. 发布版本2

image

快速回滚

如果版本2出现异常,只需将别名PROD重新指向版本1,回滚到之前的版本,此操作不会影响客户端的使用。

灰度发布

您还可以通过别名来控制流量灰度,例如,将5%的线上流量通过别名发送到新版本2进行灰度验证,然后逐步切换流量到版本2,从而降低部署新版本的风险,。

3. 灰度发布

image

别名支持的配置项

别名支持的配置项与函数代码和函数主配置等无关,而是与函数触发和函数执行相关,例如触发器、极速模式的启动快照和任务模式。别名代表不同的环境,通过在别名上设置配置项,方便切换版本时无需修改函数代码和函数配置。例如,别名上配置触发器后,别名指向的版本的函数可以通过此触发器调用。

关于版本和别名上可以绑定的配置项对比如下表所示,support表示当前配置项支持绑定到该项目,unsupport表示当前配置项不支持绑定到该项目。

配置类型

版本

别名

代码逻辑

support

unsupport

运行环境

support

unsupport

实例规格单实例并发度实例生命周期回调配置

support

unsupport

极速模式弹性策略

unsupport

support

触发器

support

support

异步任务

support

support

环境变量日志配置网络配置存储配置健康检查配置DNS配置、权限(角色)配置

support

unsupport

前提条件

创建别名

  1. 登录函数计算控制台,在左侧导航栏,单击函数

  2. 在顶部菜单栏,选择地域,然后在函数页面,单击目标函数。

  3. 在函数详情页,选择别名管理页签,在别名页面,单击创建别名

  4. 在创建函数别名面板,填写别名的相关信息,然后单击确定

    相关配置项说明如下。

    配置项

    说明

    名称

    要创建的别名的名称。

    描述

    别名的描述信息。

    主版本

    设置别名的主版本。

    启用灰度版本

    是否启用灰度版本。如需启用灰度发布,请选择,并按需设置以下配置项。

    灰度版本

    设置别名的灰度版本。

    灰度版本权重

    表示切换流量至灰度版本的百分比。例如,设置该配置项的值为5%,将分配5%的流量到灰度版本,95%的流量到主版本。

    在别名页面,您可以看到刚才创建的别名。您还可以根据界面提示对已创建的别名进行编辑、删除不需要的别名。

说明

删除一个别名只会删除别名本身,不会删除别名指向的版本,也不会删除指向此别名的触发器。

更多信息

  • 别名用于承载极速模式下的启动快照,提前锁定弹性资源,确保别名指向的版本拥有足够的预热资源。具体操作,请参见配置启动快照策略

  • 除了通过控制台,您还可以使用Serverless Devs为函数配置别名。更多操作,请参见Serverless Devs常用命令