在有了版本的基础上,您可以使用别名控制版本。服务的调用方无需了解服务版本,就可以通过别名调用正确的服务版本。
步骤一:创建别名
- 登录函数计算控制台。
- 在顶部菜单栏,选择地域。
- 在左侧导航栏中,单击服务及函数。在服务列表区域,单击目标服务。
- 在服务及函数页面,单击目标服务,然后单击版本管理页签。
- 在版本管理页签,找到需要创建别名的版本,单击操作列的新建别名。
- 在新建别名对话框中,填写别名的相关信息,单击确定。
参数说明如下。
参数 |
是否必填 |
操作 |
示例 |
名称 |
是 |
填写自定义的别名名称。 |
alias |
描述 |
否 |
填写该别名的描述信息。 |
无 |
主版本 |
否 |
您选择新建别名的版本,无需填写。 |
1 |
灰度版本 |
否 |
若您需要将部分请求切到灰度版本处理,则在灰度版本列表中选择灰度版本。
|
2 |
权重 |
否 |
当需要灰度版本处理部分请求时,该参数必填。填写灰度版本的权重。 |
30 |
在目标服务的
版本管理页签下,单击
别名页签。您可以看到刚创建的别名。本示例中该别名指向版本1,灰度版本为版本2,灰度版本权重为30%。
(可选)步骤二:在触发器中使用别名
若您的函数中创建了触发器,您可以将触发器与别名关联。当线上版本切换时,触发器可以不受影响,平滑切换到别名指向的版本。
本文以OSS触发器为例说明如何在触发器中使用别名。
说明 触发器本身并没有版本,触发器可以被指向特定的服务版本或别名。
- 登录函数计算控制台。
- 在左侧导航栏中,单击服务及函数。在服务列表区域,单击目标服务。
- 在函数列表页签,单击目标函数名称。
- 单击触发器页签。
- 在触发器列表,单击目标触发器名称。
- 在修改触发器面板,将触发版本/别名由LATEST修改为刚创建的别名,然后单击确定。
步骤三:执行指定别名下的函数
您可以通过控制台或API调用的方式验证是否执行了正确版本的函数。
通过控制台执行指定别名下的函数
- 在服务及函数页面,单击目标服务。
- 单击目标函数名称。
- 在函数详情页面的右上角,在服务版本的下拉列表中选择服务别名,然后在别名下拉列表中选择别名。
- 单击代码执行页签。
- 单击执行。
执行完成后,在页面底部可以查看执行日志。从日志中可以看到函数执行时的版本信息
qualifier为
PROD,解析出的
versionId为
1,即本次执行的函数为别名
PROD下的函数,该别名指向版本
1。
通过API调用指定别名下的函数
通过在request path的serviceName后加分隔符“.”,并用qualifier指定别名来调用特定别名下的函数。请求格式如下:
POST /services/{serviceName}.{qualifier}/functions/{functionName}/invocations
本文示例如下:
POST /services/{service}.{qualifier}/functions/{function}/invocations
步骤四:发布灰度版本
当新版本开发完成后,需要使用灰度版本帮助新版本的稳定发布。
- 关于发布新版本操作步骤,请参见发布版本。
发布完成后,您可以在版本列表查看新发布的版本。
- 在版本管理页签下,单击别名页签。
- 在别名列表中找到步骤一中创建的指向版本1的别名PROD,单击操作列的更新别名。
- 在更新别名对话框,将新版本设置为灰度版本,并填写灰度版本的权重。然后单击确定。
设置完成后,您可以将一部分线上流量切换到新版本。
步骤五:全量切换至新版本
当灰度版本运行稳定后,您可以将线上的流量全量切换到新版本。
- 在版本管理页签下,单击别名页签。
- 在别名列表中找到步骤四中指向版本1和灰度版本2的别名PROD,单击操作列的更新别名。
- 在更新别名对话框,将主版本设置为新版本且不设置灰度版本。然后单击确定。
设置完成后,您的线上流量被全量切换至新版本。