R 使用多个端口在单个EC2实例上托管多个管道工API?
遵循R非常好的管道工文档,并从中获得帮助,我能够使用管道工库在EC2实例上设置一个带有两个端点的R API 我在EC2实例的端口8000上有这个API,为了确认,如果我检查我的EC2实例中的进程,我可以在端口8000上看到我的R 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
[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机器上正常工作