全部产品
Search
文档中心

使用别名进行流量切换

更新时间: 2019-06-05

函数计算提供的别名,可以指向一个主版本和一个灰度版本。当直接通过更改别名的主版本来升级您的服务时,往往会出现由于新版本引入带来的不稳定,而通过别名的灰度版本就可以很大限减少这种影响。您可以通过更新别名的 AdditionalVersionWeight 参数,来设置灰度版本以及权重百分比。当确定新版本稳定运行后,再更新别名的主版本从而完全切换到新版本。注意,您无需指定主版本的权重,函数计算会根据您指定的灰度版本权重计算主版本的权重。

使用控制台进行流量切换

您可以在控制台通过创建别名,或者更新别名的灰度版本和权重,来进行流量转移:

通过新建别名进行流量切换

  1. 首先在“版本控件”中查看,确认您需要的主版本和灰度版本都存在。如需要发布版本,请查看 发布版本
  2. 如果还没有别名,在“版本控件”选中您需要的主版本,在“操作控件”中选择“创建别名”。
    createaliascontrol

  3. 填写别名名称、描述、以及灰度版本和权重。如图所示:创建别名 test,主版本为 7,灰度版本为 6。灰度版本的权重为 5%,则主版本的权重为 95%。
    createaliasdetail

  4. 点击ok确认。

通过更新已有别名进行流量切换

  1. 在“版本控件”中选中您要使用的别名,在“操作”控件中选择修改别名
    controlalias
  2. 更新灰度版本和权重。如图所示,将灰度版本6的权重更新为10%
    updatealiasdetail

3.点击 “ok” 确认。

使用命令行工具进行流量切换

同样的也可以通过在创建/更新别名时配置 route 参数来进行流量切换。

新建别名时切换流量

以下命令在 myService 服务里创建一个名为 myAlias 的别名,其指向的主版本是 1,灰度版本是 2,灰度版本的权重是 5%。

  1. fcli alias create -s myService -a myAlias -v 1 -r 2=0.05

更新别名时切换流量

以下命令更新 myService 服务的 myAlias 别名,灰度版本 2 的权重改为 10%

  1. fcli alias update -s myService -a myAlias -r 2=0.10

如何确定被调用的服务版本

当别名的灰度发布功能被使用时,函数计算将会按照您指定的权重来分配流量,您可以通过以下三种方式来确定被调用的服务版本:

日志服务

每次函数调用,您都可以在配置的日志服务中看到相应的请求。日志中的 “isDarkLaunch” 字段表示,此次调用命中的是灰度发布的版本。日志中的 “externalServiceVersion” 字段表示此次调用使用的具体服务版本。更多版本管理相关的日志字段,参见 调用统计及监控报警

Context对象

每次函数调用,Context 对象的 Service 信息中会包括 “qualifier” 和 “versionId” 两个字段

同步函数调用的响应

同步函数调用的响应包含 “x-fc-invocation-service-version” header以指示已调用的服务版本。