google 应用引擎灵活 docker 'site cannot be reached'

google app engine flexible with docker 'site cannot be reached'

我想使用 App Engine 服务器 R 模型。 我按照这个例子 R with app engine,但卡住了。我尝试了几种方法,但仍然有问题。关于这个问题的任何指导?

请参考我的代码 app.yaml

runtime: custom
env: flex

Dockerfile

FROM gcr.io/gcer-public/plumber-appengine
LABEL maintainer="mark"

RUN R -e "install.packages(c('plumber'), repos='http://cran.rstudio.com/')"

WORKDIR /payload/
COPY [".", "./"]

EXPOSE 8080
ENTRYPOINT ["R", "-e", "pr <- plumber::plumb(commandArgs()[4]); pr$run(host='0.0.0.0', port=8080)"]
CMD ["schedule.R"]

schedule.R

#* @get /demoR
get_predict_length <- function(){

  dataset <- iris

  # create the model
  model <- lm(Petal.Length ~ Petal.Width, data = dataset)
  petal_width = "0.4"

  #petal_width = '0.4'
  # convert the input to a number
  petal_width <- as.numeric(petal_width)

  #create the prediction data frame
  prediction_data <- data.frame(Petal.Width=petal_width)

  # create the prediction
  predict(model,prediction_data)
}

我使用 'gcloud app deploy and its successful. I get a link 'https://iris-custom-dot-my-project-name.appspot.com/' 进行部署。

日志中的最终输出

Stackdriver 日志显示:

  Starting server to listen on port 8080   

当我点击应用程序引擎版本 https://iris-custom-dot-my-project-name.appspot.com/' 时,我收到以下消息:

This site can’t be reached

办公网络问题

就我而言,真正的问题是,我的办公室网络阻塞了端口 8080,所以当我从家里或办公室通过移动热点连接时,它起作用了。

一般按照以下步骤解决问题。

1)搜索google'我的publicIP地址

2) 在防火墙规则中添加您的 IP 将解决问题。

要么使用 gcloud 命令

https://cloud.google.com/sdk/gcloud/reference/app/firewall-rules/create

使用 GCP UI(您可以使用任何尚未使用的优先级编号)