1

我在谷歌云平台上的 rstudio pro 上使用管道工。下面的代码在我的本地机器上运行良好,即我可以在提供的链接上查看 swagger UI,但在谷歌云平台上不起作用。

# plumber.R

#' Echo the parameter that was sent in
#' @param msg The message to echo back.
#' @get /echo
function(msg="")
{
  list(msg = paste0("The message is: '", msg, "'"))
}

#' Plot out data from the iris dataset
#' @param spec If provided, filter the data to only this species (e.g. 'setosa')
#' @get /plot
#' @png
function(spec)
{
  myData <- iris
  title <- "All Species"

  # Filter if the species was specified
  if (!missing(spec)) 
    {
    title <- paste0("Only the '", spec, "' Species")
    myData <- subset(iris, Species == spec)
    }

  plot(myData$Sepal.Length, myData$Petal.Length,
       main=title, xlab="Sepal Length", ylab="Petal Length")
}

我运行管道工脚本并得到以下输出

> pr$run(port = 8000 )
Starting server to listen on port 8000
Running the swagger UI at http://127.0.0.1:8000/__swagger__/

当我使用上面的链接时,我得到以下错误,虽然它在我的本地工作正常

 HTTP Error 404. The requested resource is not found.

管道工文档,建议检查是否有防火墙,因为我们在远程服务器上运行,但在谷歌云上我找不到任何防火墙规则阻止这个。

请建议我该怎么做。

4

1 回答 1

0

http://127.0.0.1是您的本地主机。当您在云中运行时,您必须使用 RStudio Pro 实例的云机器的 ip,并确保它公开并可供您使用。此外,水管工只接受 http 请求,因此您的云机器必须接受 http 请求。

你在使用市场上的虚拟机吗?

于 2019-06-07T13:38:28.167 回答