在了解了函数计算版本管理的基本概念后,我们来看看如何在事件驱动的模式中使用版本和别名。
阿里云函数计算以事件驱动的方式连接其他服务。事件源是事件的生产者,函数是事件的处理者,而触发器则提供了一种集中的和统一的方式来管理不同的事件源。当事件源触发事件时,如果满足触发器定义的规则,事件源会自动调用关联的函数处理事件。
在没有使用版本管理的情况下,任何一次对函数的更改都像是在生产服务器上进行开发一样,是非常危险的。一个小小的bug就足以破坏所有依赖它的服务。
如果我们发布一个稳定的版本,并让触发器指向这个稳定版本,那接下来我们在“LATEST”版本上所做的任何开发都不会影响这个版本。当下一个版本准备就绪时,再将触发器移动到新版本就好了。
但是,对于一些单向集成的触发器,我们必须要切换到事件源的控制台区更改。此外函数计算支持的触发器种类繁多,每次发布新版本都要去更新所有处理线上事件的触发器也可能会很麻烦。这就是别名进入的地方。我们可以创建一个别名,让触发器指向它,并让它指向一个稳定的版本。当我们发布另一个版本时,需要做的就只是更改别名指向的版本,非常方便!
触发器中如何指定版本或别名?
首先声明触发器本身并没有版本,只是指向服务某个版本下的函数。在触发器的基本信息中,“qualifier”字段用来存放触发器指向的服务版本信息。“qualifier”为可选字段,取值既可以是版本,也可以是别名。如不指定,则触发器指向“LATEST”版本中的函数。以在控制台上创建HTTP触发器为例,在“触发版本/别名”中填入您指定的版本号或者别名即可。和触发器的其他基本信息一样,“触发版本/别名”是可以更改的。这也就意味着您通过更新触发器指向的版本,就可以将线上流量,或是测试请求导向您指定的版本或别名。
目前支持版本管理的触发器有HTTP触发器、定时触发器、LogStore触发器、API网管触发器以及CDN事件触发器,其他触发器对版本管理的支持也在紧锣密鼓地开发中,会陆续更新上线。
有了指向版本和别名的触发器,就可以在事件驱动的模式下灵活使用版本管理了。让我们再回顾一下:
1. 发布稳定的版本,并创建一个别名指向这个版本。
2. 创建需要的触发器,并让触发器指向别名。
3. 待LATEST上开发稳定后,发布新版本,并更新别名指向这个新版本。
更多版本管理的高级用法和最佳实践,会陆续发布文章来介绍,敬请关注!
版本管理功能文档: