代码之家  ›  专栏  ›  技术社区  ›  Or Harel

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

  •  6
  • Or Harel  · 技术社区  · 8 年前

    我在AWS Lambda上使用无服务器框架部署了一些功能。我想将提供者切换到IBM函数,因为它们使用的是OpenWhisk,这是一个由apache支持的非常酷的开源项目。

    我假设仅仅在yml中更改提供者是行不通的,因为openwhisk函数的签名与lambda不同。此外,我在函数中使用上下文对象,但openwhisk不会将其作为参数传递。

    如何切换?(或者我应该说迁移?) 如果我不能以透明的方式切换到另一个提供商,为什么它会说Serverless是云不可知的?

    提前感谢!

    1 回复  |  直到 8 年前
        1
  •  5
  •   rsp    8 年前

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

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

    当我第一次发现这一点时,我也很惊讶,我的想法是编写一个简单的抽象层来处理AWS和Azure之间的差异,并将处理程序编写到该通用抽象而不是目标提供者。

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

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