gpt4 book ai didi

EC2 上的 RSelenium 和 Docker

转载 作者:行者123 更新时间:2023-12-02 18:20:48 32 4
gpt4 key购买 nike

我的最终目标是能够使用 通过我的 EC2 实例 (AWS)。

为此,我读到建议在虚拟机上使用和安装 docker。所以我按照约翰·D·哈里森在这里给出的所有步骤:
https://rpubs.com/johndharrison/RSelenium-Docker

一切都很顺利,除了最后我输入 RStudio在我的 EC2实例。
因为当我尝试连接到远程服务器时,我收到以下错误:
library(RSelenium)
remDr <- remoteDriver(remoteServerAddr = "192.168.99.100", port = 4445L)
remDr$open()

1 "Connecting to remote server" Error in checkError(res) : Undefined error in httr call. httr output: Timeout was reached: Connection timed out after 10001 milliseconds



我按照教程中给出的确切步骤进行操作,所以我真的不知道出了什么问题。

非常感谢任何帮助!

M。

编辑1:
请在下面找到我到目前为止的截图:
enter image description here

enter image description here

enter image description here

enter image description here

EDIT 5: Security Groups Port within EC2

我使用的 EC2 实例如下:
My EC2 instance I use is the following:

最佳答案

以下对我有用。

创建一个安装了 Docker 的 EC2 Ubuntu 实例。我没有使用Windows。

在 EC2 实例上运行 selenium docker 镜像,如下所示

docker run -d -p 4445:4444 selenium/standalone-firefox:2.53.0 

通过在安全组中创建适当的条目,确保从运行 R 的 IP 地址打开端口 4445。

在我可以看到 EC2 实例的台式机上,使用此 R 代码连接...
library(RSelenium)
remDr <- remoteDriver(remoteServerAddr = "ec2-xxx.eu-west-1.compute.amazonaws.com", port = 4445L)
remDr$open()

#[1] "Connecting to remote server"
#$applicationCacheEnabled
#[1] TRUE

#$rotatable
#[1] FALSE

#$handlesAlerts
#[1] TRUE
#...

注意 EC2 实例的地址是“ec2...”。此地址可从 AWS 控制台获得,并且是实例的公有 DNS 名称。如果您碰巧在另一台 AWS 机器上运行 R,那么您可能需要使用私有(private) DNS 地址。

[编辑添加在云中运行 Rstudio 的说明]

找到 Selenium 容器的 IP 地址。一种方法是按如下方式登录
docker exec -it <nameofthecontainer> bash
hostname -i
exit

要在与 Selenium 相同的 EC2 机器上运行 Rstudio,一种选择是使用 Docker。一个好的图像是 rocker/rstudio .

请执行下列操作。
docker run -d -p 8787:8787 -e PASSWORD=<password> --name rstudio rocker/rstudio

确保端口 8787 对您开放,您可以从该端口访问 Rstudio。在实例的安全组中添加条目以执行此操作。

要在 Rstudio docker 容器中安装 RSelenium,请执行以下操作。
docker exec rstudio bash
apt-get update
apt-get install -y libxml2-dev
exit

找到 Rstudio GUI 的 URL - 它会是这样的
http://ec2-xxx:8787 

用户名是 rstudio,密码是您在启动容器时指定的任何内容。

从 Rstudio 安装 RSelenium 包。
install.packages("RSelenium")

最后运行 R 代码来访问 Selenium 实例。
library(RSelenium)
remDr <- remoteDriver(remoteServerAddr = "IP address of the Selenium container", port = 4445L)
remDr$open()

关于EC2 上的 RSelenium 和 Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53916609/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com