Cloudflare、ヘッドレスブラウザ+Puppeteerがすぐ使える「Workers Browser Rendering API」発表

Cloudflareは、同社が提供するCloudflare Workersの新機能として、ヘッドレスブラウザとそれをコントロールするPupeteerを呼び出せる「Workers Browser Rendering API」(以下、Browser Rendering API)のクローズドベータを発表しました

Browser Rendering APIを用いることで、開発者は自分でヘッドレスブラウザやPuppeteerのインストールや運用などをすることなく、Cloudflareのデータセンター上で実行されているヘッドレスブラウザのプロセスとPuppeteerをCloudflare WorkersのAPI経由で呼び出せます。

そのため、Webブラウザ上に表示される画面のスクリーンショットを定期的に取得してメールをするプログラムや、Webアプリケーションの自動テストのためのプログラムなど、Webブラウザの操作を自動化することで可能になるさまざまなアプリケーションをすぐ実行できるようになります。

ヘッドレスブラウザのインスタンスをプールし、すぐ利用可能に

Cloudflareによると、Browser Rendering APIの具体的な仕組みは以下のようになっています。

まず同社エッジロケーションのデータセンターには、Googleが開発した高度な分離機能を備えるコンテナランタイム「gVisor」を用いて、ヘッドレスブラウザのインスタンスがウォーム状態で多数プールされています。

これはブラウザ上で何らかの悪意のあるプログラムが実行されたとしても、それをそのインスタンス内に封じ込めるためのセキュアな仕組みの1つです。

一方で、Cloudflare WorkersからはラップされたPuppeteerライブラリが呼び出せるようになっています。そしてCloudlare Workersからヘッドレスブラウザがリクエストされると、いずれかのヘッドレスブラウザのインスタンスにWebSocket経由で接続され、Chrome Devtools Protocolを介して通信が行われるようになります。

Browser Rendering APIは現在クローズドベータで、利用にはウェイトリストから申し込む必要があります。