CloudflareのBrowser Renderingを使ってみる
使うためには paid user であることが必要
Get started
動いた
https://scrapbox.io/files/6617ef8a8d3d810024fa83d6.png
https://scrapbox.io/files/6617f02b691add0023b3eacb.png
簡単に動いて楽しい ykyki.icon
ローカルだとエラーになる. npx wrangler dev ではなく npx wrangler dev --remote で動かす
[wrangler:err] TypeError: Cannot read properties of undefined (reading 'fetch') になる
仕様:
クエリパラメータにURLを入れてアクセスするとそのページのスクリーンショットを撮って画像として表示する
初回アクセスは時間がちょっとかかるが, KVに保存するので2回目以降は素早くアクセスできる (期限付き)
処理内容:
searchParmsから対象URLを取得
対象URLでKVをチェック. あればそれを返して終わり
なければ Puppeteer を使って対象URLにアクセスしてスクショを取る
結果をKVに保存して画像を返す
Reuse sessions
Get Startのチュートリアルのコードだとリクエストの度に browser インスタンスを作成してしまう
そのためかレスポンスに3秒以上かかることがあるし, F5キーを3回くらい連打すると Too Many Requests 429 エラーが発生していしまう
ドキュメントに載っている方法を使って改善できる
まだ試してないykyki.icon
こっちは導入が簡単
セッション再利用を使ってみたところ
レイテンシは少し良くなる
F5連打にも少し強くなる
とはいえF5連打を続けるとエラーになる