无服务器离线:处理多个API网关 [英] Serverless Offline: handle multiple API gateways

查看:0
本文介绍了无服务器离线:处理多个API网关的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当您只有一个API网关/服务时,您可以使用无服务器框架和无服务器离线插件轻松调试您的无服务器应用程序,但当您有多个API网关/服务时,您该如何处理这种情况?

是否应该为每个服务运行serverless offline,并在每个.yml中配置不同的端口? 并在环境变量中硬编码该端口,以便在process.env.offline为真时可以访问该端口?

推荐答案

如果您想在本地同时运行两个或多个无服务器接口网关,您可以通过--port参数轻松实现。

基本上,打开两个命令行窗口,在第一个窗口中,转到您的第一个服务目录并运行:

sls offline start --port 3001

在另一个窗口中,转到您的第二个服务并运行:

sls offline start --port 3002

这样,您将拥有两个监听两个端口(在本例中为http://localhost:3001http://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-2Youserverless-dynamodb-localfrompluginsinserverless.yaml(无需任何其他更改),然后您可以使用:sls offline start --port 3001启动该服务。

第一个服务将启动DynamoDB,第二个服务将能够使用它。

这篇关于无服务器离线:处理多个API网关的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆