如何切换提供者无服务器框架?

时间:2018-02-13 11:52:16

标签: lambda serverless-framework

我在AWS Lambda上使用无服务器框架部署了一些功能。我想将提供程序切换到IBM Functions,因为他们使用的是OpenWhisk,它是一个非常酷的开源项目,由apache备份。

我假设只是更改yml中的提供程序将无法工作,因为openwhisk函数具有不同的签名然后lambda。另外,我在我的函数中使用了context对象,但是openwhisk没有将它作为参数传递。

我该如何切换? (或者我应该说迁移?) 如果我不能以透明的方式切换到另一个提供商,为什么说无服务器是云无关的呢?

提前致谢!

1 个答案:

答案 0 :(得分:3)

无服务器框架是一个工具,可以处理您需要使用Web控制台手动执行的所有耗时任务,并允许您在给定提供程序的基础结构上快速安装处理程序功能,但它不会实际上,以任何方式转换这些函数,当您在AWS或Azure Web控制台中看到这些函数时,您可以看到这些函数(我假设IBM的情况也是如此,但我还没有使用过该提供程序)。

这意味着只要提供商之间存在任何差异 - 例如不同的上下文对象,不同的事件数据,不同的方式来响应请求等等 - 您当前需要自己处理这些差异。

当我第一次发现它时,这让我感到惊讶,我的想法是编写一个简单的抽象层来处理AWS和Azure之间的差异,并将处理程序写入该公共抽象而不是目标提供程序

如果这对其他人有用,那么我想我可能会为无服务器框架开源微框架。

但最重要的是,据我所知,在撰写本文时,无服务器框架本身并不处理部署到不同提供程序的函数之间的差异。如果我错了,请在评论中纠正我。