Fn中带有初始图像的语言支持更加广泛

Fn的简洁功能之一是将函数定义为容器映像。 只要您可以读取请求和写入响应,Fn就不会对容器中的内容进行任何规定-您可以将容器中打包的所有可以从STDIN读取并写入STDOUT的内容作为函数。 Fn的这种灵活性使Fn与其他通常仅提供少量受支持语言的FaaS平台区分开。

Fn鼓励您使用最有效的语言,并帮助您入门,Fn CLI可以为几种不同的语言生成功能模板(通常为HelloWorld)。 在家尝试:

  fn init --runtime =执行我的第一个功能 
(功能)创造的支柱

这是一个受欢迎的功能。 实际上如此受欢迎,以至于我们热情地增加了对许多不同语言的支持。 随着Fn变得越来越流行,并且开始要求使用不同版本的运行时(例如Java 8和Java 10),…,嗯,我们最终在CLI中获得了16种受支持的运行时,PR每两周到达一次新的。

我们认为: a)这给CLI增添了太多的责任, b)测试矩阵变得一发不可收拾,并且-最重要的是, c)我们想使人们更容易添加自己的功能模板。 因此,从0.4.148版本开始,Fn CLI现在支持我们称为init-images的功能

什么是初始化映像? 这是打包函数创建或实现新运行时的一种方法-作为容器映像。

这是一个例子:

  fn init --init-image = mjg123 / java-init 

该命令提取并运行我的java-init映像,并且输出用于创建新功能(请参阅init-image的操作方法以了解其工作原理)。 这些初始化映像可以由任何人编写并可以托管在任何地方,因此它为我们和我们的用户提供了一种无需更改CLI即可创建和共享新函数运行时的方法。 公司可以创建自己的私有初始化映像-人们可以为他们选择的任何语言创建和共享初始化映像-当然,作为容器本身,可以以您能想到的任何方式来实现初始化映像。

不过,支持的运行时不会消失fn init --runtime=go仍然可以工作(尽管在内部这只是另一个init映像)。 现在,您还可以使用一种灵活而灵活的方法来定义和共享功能模板。 希望您喜欢它,如果您创建自己喜欢的初始化图像,请告诉我们,我们将与世界分享。

运作愉快!

Fn团队。