如何切换提供商无服务器框架?
How to switch provider serverless framework?
我已经在 AWS Lambda 上使用无服务器框架部署了一些功能。我想将提供程序切换到 IBM Functions,因为他们正在使用 OpenWhisk,这是一个非常酷的开源项目,由 apache 支持。
我假设仅更改 yml 中的提供程序是行不通的,因为 openwhisk 函数的签名与 lambda 不同。另外,我在我的函数中使用了上下文对象,但 openwhisk 没有将它作为参数传递。
我该如何切换? (或者我应该说迁移?)
如果我不能以透明的方式切换到另一个提供商,为什么它说无服务器是云不可知的?
提前致谢!
Serverless 框架是一种工具,可以处理您需要使用 Web 控制台手动执行的所有耗时任务,并允许您在给定提供商的基础架构上快速安装处理程序功能,但它实际上并没有以任何方式转换这些功能,当您在 AWS 或 Azure Web 控制台中看到这些功能时,您可以看到这一点(我假设 IBM 也是这种情况,但我还没有使用过该提供程序)。
这意味着只要提供者之间存在任何差异 - 例如不同的上下文对象、不同的事件数据、不同的请求响应方式等 - 您目前需要自己处理这些差异。
当我第一次发现它时,这也让我感到惊讶,我的想法是编写一个简单的抽象层来处理 AWS 和 Azure 之间的这些差异,并将处理程序写入该通用抽象而不是目标提供商。
如果这对其他人有用,那么我想我可能会为无服务器框架开源该微框架。
但最重要的是,据我所知,在撰写本文时,无服务器框架本身并不处理部署到不同提供商的功能之间的差异。如有错误请在评论中指正。
我已经在 AWS Lambda 上使用无服务器框架部署了一些功能。我想将提供程序切换到 IBM Functions,因为他们正在使用 OpenWhisk,这是一个非常酷的开源项目,由 apache 支持。
我假设仅更改 yml 中的提供程序是行不通的,因为 openwhisk 函数的签名与 lambda 不同。另外,我在我的函数中使用了上下文对象,但 openwhisk 没有将它作为参数传递。
我该如何切换? (或者我应该说迁移?) 如果我不能以透明的方式切换到另一个提供商,为什么它说无服务器是云不可知的?
提前致谢!
Serverless 框架是一种工具,可以处理您需要使用 Web 控制台手动执行的所有耗时任务,并允许您在给定提供商的基础架构上快速安装处理程序功能,但它实际上并没有以任何方式转换这些功能,当您在 AWS 或 Azure Web 控制台中看到这些功能时,您可以看到这一点(我假设 IBM 也是这种情况,但我还没有使用过该提供程序)。
这意味着只要提供者之间存在任何差异 - 例如不同的上下文对象、不同的事件数据、不同的请求响应方式等 - 您目前需要自己处理这些差异。
当我第一次发现它时,这也让我感到惊讶,我的想法是编写一个简单的抽象层来处理 AWS 和 Azure 之间的这些差异,并将处理程序写入该通用抽象而不是目标提供商。
如果这对其他人有用,那么我想我可能会为无服务器框架开源该微框架。
但最重要的是,据我所知,在撰写本文时,无服务器框架本身并不处理部署到不同提供商的功能之间的差异。如有错误请在评论中指正。