我曾经使用过无服务器的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的好文档?
答案 0 :(得分:1)
如何从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限制?
使用多种功能。