我有一个无服务器项目,其中包含3个“层”-api
,services
和db
。每层只是一组单独部署的功能(我在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调用它)。
答案 0 :(得分:0)
绝对!您需要在项目中使用aws-sdk才能在本地和AWS中进行Lambda到Lambda调用。然后,您需要使用serverless-offline-lambda-invoke使呼叫脱机工作(请注意,您需要在本地设置endpoint
配置选项)。