如何将无服务器0.X中的“项目”迁移到无服务器1.0?

时间:2016-12-10 00:07:32

标签: amazon-web-services serverless-framework

我曾经使用过无服务器的0.X框架,并拥有一些自己的项目。在那之后,我有一个很长的空白时间半年左右,我回到无服务器1.0。

在Serverless 0.X中,我们有“project”的概念,它可以在同一环境下处理许多功能。但是在Serverless 1.X中,“project”看起来已经退役,根文件夹下只有一个“handler.js”。

如何在相同环境下处理许多功能?我应该在一个handler.js中编写所有函数吗?

我怎样才能避免每个功能的50MB限制?在Serverless 0.X中,很容易避免这种限制,因为每个函数都单独上传,但我不知道如何在Serverless 1.X中避免这种限制。

包括这些问题,有没有关于将无服务器的0.X项目迁移到无服务器1.X的好文档?

1 个答案:

答案 0 :(得分:1)

From official docs

  

如何从0.x升级到1.x

     

由于无服务器1.x是完全重新实现而不是   实现0.x中的所有功能(但还有更多功能)   一般的功能)没有直接的更新路径。基本上是   用户从0.x移动到1.x的最佳方式是阅读我们的指南   以及将向您介绍所有详细信息的AWS提供商文档   无服务器1.x.这应该让它很容易理解   为1.x设置服务并移动代码。我们一起工作过   在无服务器1.x的Beta阶段,不同的团队和他们一样   能够很快将他们的服务转移到新版本中。

现在,回答你的问题:

  

如何在相同环境下处理许多功能?我应该编码   一个handler.js中的所有函数?

您需要查看有关无服务器架构的blog post。答案是您不需要只使用一个功能。您可以拥有多种功能。此外, handler.js 文件不需要具有此名称,也不需要位于根文件夹中。请参阅以下 serverless.yml 示例。

service: my-storage

provider:
  name: aws
  runtime: nodejs4.3

functions:
  my-photos:
    handler: lib/photos.handlePhotos
    events:
      - http: GET photos
      - http: POST photos
      - http: PUT photos
      - http: DELETE photos
      - http: OPTIONS photos
  my-videos:
    handler: lib/videos.handleVideos
    events:
      - http: GET videos
      - http: POST videos
      - http: PUT videos
      - http: DELETE videos
      - http: OPTIONS videos

在此示例中,我们在 lib 文件夹中有两个文件: photos.js videos.js 。每个文件都有一个功能( handlePhotos / handleVideos ),负责处理API网关事件。

  

如何避免每个功能的50MB限制?

使用多种功能。