R 使用多个端口在单个EC2实例上托管多个管道工API?

R 使用多个端口在单个EC2实例上托管多个管道工API?,r,amazon-ec2,plumber,R,Amazon Ec2,Plumber,遵循R非常好的管道工文档,并从中获得帮助,我能够使用管道工库在EC2实例上设置一个带有两个端点的R API 我在EC2实例的端口8000上有这个API,为了确认,如果我检查我的EC2实例中的进程,我可以在端口8000上看到我的R API: [ec2-user@ip-123-45-67-890 ~]$ lsof -i tcp:8000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME R 16784 ec2-use

遵循R非常好的管道工文档,并从中获得帮助,我能够使用管道工库在EC2实例上设置一个带有两个端点的R API

我在EC2实例的端口8000上有这个API,为了确认,如果我检查我的EC2实例中的进程,我可以在端口8000上看到我的R API:

[ec2-user@ip-123-45-67-890 ~]$ lsof -i tcp:8000
COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
R       16784 ec2-user   11u  IPv4 152626      0t0  TCP *:irdmi (LISTEN)
我想在同一台EC2服务器上启动第二个API,我的问题是,我可以使用EC2服务器上的其他端口为API提供服务吗?例如,在“垂直”API的新API的R文件中,我只需将端口更改为8001:

# clear workspace and load library
rm(list = ls())
library(plumber)

# serve API
r <- plumb("NBA_API.R")
r$run(host="0.0.0.0", port=8001)
#清除工作区并加载库
rm(list=ls())
图书馆(水管工)
#服务API

这不应该是个问题。您可以在任意端口上承载任意数量的端口。您只需确保安全组允许流量通过您的机器,如果适用,机器的本地防火墙也允许流量进入

不过,请务必注意,在服务器上本机运行R并不是最佳的。如果R进程曾经崩溃(例如,由于代码中的一个bug,在不太可能的情况下可能会出错),它将不会自动重新启动。同样,如果服务器需要重新启动,则需要在适当的端口上手动启动适当的进程,以使其重新运行

您可以查看中提到的一些托管选项,了解如何以更“高效”的方式托管水管工。我在文档中没有特别提到EC2,但是其中的一些模式(包括PM2)应该可以在EC2机器上正常工作