Cloudflare、ヘッドレスブラウザ+Puppeteerがすぐ使える「Workers Browser Rendering API」発表
今回は「Cloudflare、ヘッドレスブラウザ+Puppeteerがすぐ使える「Workers Browser Rendering API」発表」についてご紹介します。
関連ワード (利用、取得、接続等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Cloudflareは、同社が提供するCloudflare Workersの新機能として、ヘッドレスブラウザとそれをコントロールするPupeteerを呼び出せる「Workers Browser Rendering API」(以下、Browser Rendering API)のクローズドベータを発表しました。
We’re excited to announce a private beta of the Workers Browser Rendering API. With browser automation, you can programmatically do anything that a user can do when interacting with a browser. https://t.co/fGv9gq7d7M #DeveloperWeek
— Cloudflare (@Cloudflare) November 16, 2022
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は現在クローズドベータで、利用にはウェイトリストから申し込む必要があります。