无服务器 interlambda 本地通信

Serverless interlambda local communication

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

暴露

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

我想将单个无服务器项目拆分为 3 个不同的项目,但卡在本地 运行ning。我可以 运行 它们在本地的不同端口上,但无法从 api 一个项目中调用 db 项目中的 lambda。原因一目了然。

问题:是否可以从 project2 中的 lambda 调用 project1 中的一个 lambda,同时在本地调用两个 运行ning 而不会暴露 API url(我知道我可以调用它AJAX).

当然!您需要使用 aws-sdk in your project to make the lambda-to-lambda call both locally and in AWS. You'll then need to use serverless-offline-lambda-invoke 使呼叫离线工作(请注意您需要在本地设置的 endpoint 配置选项)。