无服务器 interlambda 本地通信
Serverless interlambda local communication
我有一个无服务器项目,其中包含 3 个 "layers" - api
、services
和 db
。每一层只是一组单独部署的功能(我在.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
配置选项)。
我有一个无服务器项目,其中包含 3 个 "layers" - api
、services
和 db
。每一层只是一组单独部署的功能(我在.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
配置选项)。