无服务器层间本地通信

时间:2019-09-16 09:41:06

标签: serverless serverless-offline

我有一个无服务器项目,其中包含3个“层”-apiservicesdb。每层只是一组单独部署的功能(我在package.individually === true中设置了.serverless.yml)。能够使用调用机制从顶部(api)到底部(db)进行通信的所有层。只有api层具有API网关URL,其他层中的所有功能都不需要由API URL公开。

现在项目在增长,我们有更多的开发人员。我想防止有人在const accountDb = require('../db/account')模块中使用api的问题(api必须仅通过调用包装器来调用db层)。

我想将单个无服务器项目拆分为3个不同的项目,但会在本地运行。我可以在不同端口上本地运行它们,但是无法从db的{​​{1}}项目中调用lambda。很清楚为什么。

问题:是否可以从project2中的lambda调用project1中的一个lambda,而两者都在本地运行而不暴露API网址(我知道我可以通过AJAX调用它)。

1 个答案:

答案 0 :(得分:0)

绝对!您需要在项目中使用aws-sdk才能在本地和AWS中进行Lambda到Lambda调用。然后,您需要使用serverless-offline-lambda-invoke使呼叫脱机工作(请注意,您需要在本地设置endpoint配置选项)。