无服务器部署多个功能

问题描述 投票:8回答:2

我最近更新了我的无服务器项目,并且我发现在最近的几次更新中有很多变化。

https://serverless.com/

我不完全了解有多个lambda函数和api网关端点与同一项目相关的正确方法。使用旧的无服务器,我将每个lambda和端点作为一个完全独立的功能,这对我来说非常好。

我似乎不能再这样做,如果我尝试我的第二个lambda函数会覆盖我的第一个,大概是因为我的“服务名称”都是相同的。我的服务名称是相同的,因为我希望两个休息端点都在API网关的相同API中。由于无服务器根据服务名称创建API名称。

所以我试着将两个函数添加到同一个“服务”中。这在大多数情况下都有效,除了现在我需要将我的所有函数的自定义角色语句包含到同一个角色中(因为这个角色现在被链接到我的所有函数)。有效地为每个单独的功能提供比它应有的更多权限。另一个问题是,不同功能的所有处理程序文件都被放入每个功能部署包中。

所以基本上,我不确定具有多个与同一个项目相关但功能分离的函数的正确方法是什么。它曾经有意义,现在没有。

如果有人能给我一些指示,请

谢谢

aws-lambda serverless-framework
2个回答
6
投票

我理解你的沮丧。在我深入了解新版本并形成更好的理解之前,我有同感。有一点需要注意的是,新版本尚未完全完成。因此,如果某些内容完全丢失,您可以提交问题并在1.0发布之前对其进行优先级排序。

您应该在functions:serverless.yml部分下的同一服务下定义多个函数。要单独打包这些函数(不包括其他函数的代码),您必须在individually: true部分下设置package:。然后,您可以在根级别和功能级别使用包含和排除选项。即将发生的更改将允许您在include和exclude选项中使用glob语法(例如** / * - fn.js)。你可以在这里找到更多关于包装的信息https://serverless.com/framework/docs/guide/packaging/

不确定如何在同一服务下为不同的功能使用不同的角色..你是如何用0.5做的?


1
投票

我试图找到每个功能的个人iam角色的解决方案。我找不到办法,但在查看文档的过程中,我找到了一句话:“每个功能支持单独的IAM角色即将推出。”在this page,所以至少我们知道他们正在努力。

© www.soinside.com 2019 - 2024. All rights reserved.