无服务器离线:处理多个API网关 [英] Serverless Offline: handle multiple API gateways
本文介绍了无服务器离线:处理多个API网关的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当您只有一个API网关/服务时,您可以使用无服务器框架和无服务器离线插件轻松调试您的无服务器应用程序,但当您有多个API网关/服务时,您该如何处理这种情况?
是否应该为每个服务运行serverless offline
,并在每个.yml
中配置不同的端口?
并在环境变量中硬编码该端口,以便在process.env.offline
为真时可以访问该端口?
推荐答案
如果您想在本地同时运行两个或多个无服务器接口网关,您可以通过--port
参数轻松实现。
基本上,打开两个命令行窗口,在第一个窗口中,转到您的第一个服务目录并运行:
sls offline start --port 3001
在另一个窗口中,转到您的第二个服务并运行:
sls offline start --port 3002
这样,您将拥有两个监听两个端口(在本例中为http://localhost:3001
和http://localhost:3002
)的服务。
如果您还使用无服务器-DynamoDB-local插件,那么(目前)有一个问题:
如果您不使用DynamoDB插件,那么您现在就可以停止阅读了:)
DynamoDB插件使用相同的--port
参数,这导致java.net.BindException: Address already in use
查看此问题:https://github.com/99xt/serverless-dynamodb-local/issues/135
解决此问题的方法是仅在一个服务中启用serverless-offline-local
插件(如果您有两个或更多)。
my-service-1
中,您将所有DynamoDB配置保存在serverless.yaml
文件中,并使用默认端口sls offline start --migrate true
启动该服务。在下一个服务中,让我们将其命名为my-service-2
Youserverless-dynamodb-local
fromplugins
inserverless.yaml
(无需任何其他更改),然后您可以使用:sls offline start --port 3001
启动该服务。
第一个服务将启动DynamoDB,第二个服务将能够使用它。
这篇关于无服务器离线:处理多个API网关的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文