全部产品

使用别名切换流量

更新时间:2018-11-27 17:14:57

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

使用控制台切换流量

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

通过新建别名切换流量

  1. 登录 函数计算管理控制台

  2. 首先在“版本控件”中查看,确认您需要的主版本和灰度版本都存在。如需要发布版本,请查看 发布版本

  3. 如果还没有别名,在“版本控件”选中您需要的主版本,在“操作控件”中选择“创建别名”。

    createaliascontrol

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

    createaliasdetail

  5. 点击ok确认。

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

  1. 登录 函数计算管理控制台

  2. 在“版本控件”中选中您要使用的别名,在“操作”控件中选择修改别名。

    controlalias

  3. 更新灰度版本和权重。如图所示,将灰度版本6的权重更新为10%。

    updatealiasdetail

  4. 点击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以指示已调用的服务版本。