#chrome #instance #health-check #provider #applications #cloud #shutdown

app chrome_server

Chrome代理API,用于管理云提供商中的Chrome

3个版本

新版本 0.1.2 2024年8月23日
0.1.1 2024年8月23日
0.1.0 2024年7月13日

#53 in WebSocket

MIT 许可证

19KB
370

chrome

Chrome实例和面板,用于轻松管理启动和关闭。

安装

cargo安装 chrome_server

用法

  1. 可以启动和关闭多个Chrome实例。
  2. 获取chrome ws连接和状态。

当前实例在通过API启动时将Chrome绑定到0.0.0.0。

使用环境变量 REMOTE_ADDRESS 在物理或网络之间更改Chrome实例的地址。

使用端口 6000 获取Chrome容器的状态时,应用程序将通过alp健康检查。

需要加载应用程序才能在负载均衡器上运行Chrome,这是控制面板的主要目的之一。

Chrome的默认端口是 9222

Docker

您可以使用以下Docker镜像: a11ywatch/chromea11ywatch/chrome-xvfb

无Docker构建

为了无Docker构建,请设置环境变量 BUILD_CHROME 为 true。

Mac

如果您在本地运行,请使用以下命令启动args,第一个参数为 chrome_server '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'

API

  1. POST: fork 启动新的Chrome实例或使用 fork/$port 通过端口启动实例。
  2. POST: shutdown/$PID 关闭实例。例如:curl --location --request POST 'https://127.0.0.1:6000/shutdown/77057'
  3. POST: /json/version 获取要连接到Web Sockets的Chrome实例的JSON信息。

Curl 示例

fork

curl --location --request POST 'https://127.0.0.1:6000/fork'

shutdown

curl --location --request POST 'https://127.0.0.1:6000/shutdown'

/json/version

curl --location --request GET 'https://127.0.0.1:6000/json/version' \
--header 'Content-Type: application/json'
{
   "Browser": "HeadlessChrome/114.0.5735.133",
   "Protocol-Version": "1.3",
   "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/114.0.5735.133 Safari/537.36",
   "V8-Version": "11.4.183.23",
   "WebKit-Version": "537.36 (@fbfa2ce68d01b2201d8c667c2e73f648a61c4f4a)",
   "webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/browser/74f18759-f4b3-4b1f-a68c-942570542f0e"
}

参数

  1. 第一个参数是Chrome应用程序的位置,例如在Linux上:'/opt/google/chrome/chrome'.
  2. 第二个参数是Chrome地址:127.0.0.1.
  3. 您可以将init作为第三个参数传入,以在9222上自动启动Chrome。

启动Chrome的示例(所有参数都是可选的)

chrome_server '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' 127.0.0.1 init
# Chrome PID: 87659
# Chrome server at localhost:6000
# DevTools listening on ws://127.0.0.1:9222/devtools/browser/c789f9e0-7f65-495d-baee-243eb454ea15

环境变量

# the chrome path on the OS
CHROME_PATH=
# the remote address of the chrome intance
REMOTE_ADDRESS=

Docker

您可以使用以下方法构建此镜像

  1. Dockerfile(默认)
  2. Dockerfile.playwright(自定义Playwright Chrome)
  3. Dockerfile.xvfb(虚拟显示)

依赖项

~9–18MB
~244K SLoC