Browser Rendering APIをセッション管理の改善と共にすべての有料Workers顧客に提供開始
2023年5月、弊社はBrowser Rendering APIオープンベータプログラムを発表しました。Browser Renderingにより、ヘッドレス・ブラウザ・インスタンスをプログラムで制御・操作し、アプリケーションや製品の自動化フローを作成できるようにます。
同時に、Browser Renderingで動作するPuppeteerライブラリのバージョンも発表しました。これにより、Cloudflare Workers上で使い慣れたAPIを用い、ページのスクリーンショットやソフトウェアの自動テストなど、あらゆる種類のワークフローを作成できます。
本日、弊社はBrowser Renderingをさらに一歩進め、ベータ版を終了しすべての有料Workersプランで利用できるようにしました。さらに、APIを強化し、オープンベータコミュニティで長い間議論してきたセッション管理の新機能を導入しています。
セッション管理
セッション管理により、Workerのスクリプト間で以前に開いたブラウザを再利用できます。ブラウザのセッションを再利用することで、リクエストやタスクごとに新しいブラウザをインスタンス化する必要がなくなり、パフォーマンスの大幅な向上、コスト削減のメリットが得られます。
以前は、ブラウザのインスタンスを維持し再利用するためには、Durable Objectsで複雑なコードを実装する必要がありました。現在では、ブラウザをバックグラウンドで実行し続け、Puppeteer APIを新たなセッション管理メソッドで拡張することで、実行中のすべてのセッション、アクティビティ履歴、アクティブな制限にアクセスできるようになり、この問題を簡素化することに成功しました。
アクティブなセッションをリストアップする方法は次のとおりです:
セッション管理の使用方法に関するWorkerスクリプトの例を、開発者ドキュメントに追加しています。
const sessions = await puppeteer.sessions(env.RENDERING);
console.log(sessions);
[
{
"connectionId": "2a2246fa-e234-4dc1-8433-87e6cee80145",
"connectionStartTime": 1711621704607,
"sessionId": "478f4d7d-e943-40f6-a414-837d3736a1dc",
"startTime": 1711621703708
},
{
"sessionId": "565e05fb-4d2a-402b-869b-5b65b1381db7",
"startTime": 1711621703808
}
]
分析およびログ
観測可能性は、Cloudflare製品にとって根本的な要素です。ダッシュボードのお客様のアカウントのWorker & Pagesセクションで、Browser Renderingの使用に関する詳細な分析とログをご覧いただけます。
Browser Renderingは現在、有料Workersプランをご利用のすべてのお客様にご利用いただけます。各アカウントは、1分間に2つの新しいブラウザと2つの同時ブラウザの実行に制限されています。開発者ページをご覧ください。
Cloudflare Snippetsへのアクセス提供を展開
強力、プログラム可能、かつ無償のSnippetsは、Cloudflareで複雑なHTTPリクエストとレスポンスの変更を実行する最良の方法です。かつてはRules製品を使って実現するには高度すぎたことが、Snippetsで実現するようになります。2022年の最初のDeveloper Weekでの発表以来、シンプルなJavaScriptコードを書くだけですぐに使えるRulesの機能を拡張するの約束を果たす形で、Cloudflareコミュニティの期待を高め続けています。
2024年の最初の3カ月間だけで、Snippetsを経由するトラフィック量は7倍以上に増加し、1月初旬には1秒あたり平均2,200リクエストだったものが3月には17,000を超えました。
しかし、期待されない方法で門戸を開き、何百万人ものCloudflareユーザーをSnippetsをテストする(そして場合によっては壊すことになる)ために参加させるのではなく、弊社は自分たちのペースを守り、Workersで新しく展開する漸次的ロールアウトのように、Workers段階的なロールアウトを実施します。
今後数週間で、Cloudflareユーザーの5%が、ダッシュボードのゾーンレベルメニューのRulesタブに「Snippets」と表示されるのを見ることになります。もしご自身が最初の5%に含まれる場合、ヘッダーの日付を動的に変更したり、`math.random`関数を活用したA/BテストなどのSnippetsの高度なユースケースでさえ、いかに高速で強力に機能するかを実感してみてください。Snippetsをどのような用途に使うにせよ、1つだけお留め置きいただきたいのは、まだアルファ版であるため、Snippetsを本番トラフィックに使うのは現時点ではお控えください。
それまでは、Cloudflareダッシュボードの新しいSnippetsタブに注目し、開発者向けドキュメントでSnippetsがいかに強力で柔軟であるかをご覧ください。
近日公開:stale-while-revalidateによる非同期再バリデーション
お客様から最もご要望の多かった機能の1つに、stale-while-revalidate(SWR)キャッシュディレクティブによる非同期再バリデーションがあります。この機能は、パフォーマンスとメモリの安全性を最優先に考え、Rustを使用して構築されている新しいCDNアーキテクチャの一部として、設計上利用できるようになります。
現在、クライアントがWebページや画像などのリソースをリクエストすると、そのアセットがキャッシュ内にあるかどうかをCloudflareがチェックし、利用可能であればキャッシュコピーを提供します。ファイルがキャッシュ内にない場合、または有効期限が切れて古くなった場合、Cloudflare配信元サーバーに接続してファイルの新しいバージョンをチェックし、この新しいバージョンをエンドユーザーに転送します。この待ち時間がこれらのリクエストにおける遅延時間を増加させ、パフォーマンスに影響を与えます。
Stale-while-revalidateはキャッシュディレクティブで、有効期限が切れたり古くなったバージョンのアセットをエンドユーザーに提供できるようにすると同時に、Cloudflareがオリジンをチェックして利用可能なリソースの新しいバージョンがあるかどうかを確認できるようにします。更新されたバージョンが存在する場合、オリジンはそれをCloudflareに転送し、その過程でキャッシュを更新します。この仕組みにより、クライアントは常に最新のコンテンツにアクセスできるようにしながら、キャッシュから素早くレスポンスを受け取れます。Stale-while-revalidateは、コンテンツの効率的な配信と鮮度の確保を両立させ、パフォーマンスの向上とスムーズなユーザーエクスペリエンスを実現します。
ベータ・テスターの一員となってこの期待を「キャッシュ」されたいお客様は、こちらからご登録いただけます!
2024年4月16日発表:Workers for Platforms プランを従量制に
本日、4月16日にWorkers for Platformsを25ドルの新しい従量課金プランにて、すべての開発者に提供開始することをお知らせします。
Workers for Platformsは、パーソナライゼーションとカスタマイゼーションを製品に直接組み込めます。Workers for Platformsを使えば、ユーザーに代わってカスタムコードをデプロイしたり、ユーザーが自分のコードを直接プラットフォームにデプロイできるようになります。Workers for Platformsは、このDeveloper Weekで発表したすべての期待に満ちた製品・サービスと併せて利用できます。Workers for Platformsは、Workersに付属するすべてのバインディング(Workers AI、D1、Durable Objectsを含む)だけでなく、Python Workersもサポートしています。
以下、大手企業から新興企業まで、Workers for Platformsを利用しているお客様の一例を挙げます。
Shopify Oxygen-RemixベースのeコマースフレームワークHydrogenのホスティングプラットフォームであり、Workers for Platforms上に構築されています。HydrogenとOxygenの組み合わせにより、Shopify加盟店は一般的なストアフロントテンプレートの制約を受けることなく、バイヤーエクスペリエンスをコントロールできます。
Grafbase-ビジネス全体のデータソースを1つのエンドポイントで統合するサーバーレスGraphQL APIを作成するための開発者向けデータプラットフォーム。同社は、JavaScript/TypeScriptまたはWASMで書かれた独自のコードをデプロイするためのコントロールと柔軟性を開発者にもたらすに当たり、Workers for Platformsを使用しています。
Triplit-サーバーとブラウザ間でリアルタイムにデータを同期するオープンソースのデータベース。リレーショナルクエリ、スキーマ管理、サーバーサイドストレージなどの機能を内蔵し、低遅延のリアルタイムアプリを構築できます。クエリと同期のエンジンはDurable Objects上に構築されており、Workers for Platformsを用いて、顧客がカスタムJavaScriptをTriplit DBインスタンスと一緒にパッケージ化できるようにしています。
観測可能性とプラットフォームレベルの制御のためのツール
Workers for Platformsは、Workersをプラットフォームにデプロイできるだけにはとどまりません。加えて、ユーザーのWorkersを観察し、コントロールすることがいかに重要であるかを理解しています。これを可能にする複数のソリューションを用意しています。
カスタム制限:WorkersユーザーのCPU時間またはサブリクエストの上限を設定できます。Cloudflareのコストをコントロールしたり、独自の価格設定やパッケージングモデルを形成するための制限を設定するために使用できます。例えば、貴社のプラットフォームでフリーミアムモデルを実行する場合、無料クラスの顧客のためのCPU時間の制限を下げられます。
Tail Workers:Tail Workersイベントには、Workerについてのメタデータ、console.log()メッセージ、および処理されなかった例外が含まれます。開発者にライブログを提供し、リアルタイムでエラーを監視し、トラブルシューティングを行うために使用できます。
Outbound Workers:Workers Outbound Workersは、ユーザーのWorkersとそのユーザーが行うfetch()リクエストの間に位置するため、インターネットに送信される前のリクエストを完全に把握できます。
価格設定
弊社は、Workers for Platformsが熱狂的な利用者やソロ開発者、インディー開発者にとって手頃な価格で提供できることを目指しました。Workers for Platformsは、25ドルの新しい従量制プランの一部であり、以下の内容が含まれます:
.tg {border-collapse:collapse;border-color:#ccc;border-spacing:0;} .tg td{background-color:#fff;border-color:#ccc;border-style:solid;border-width:1px;color:#333; font-family:Arial, sans-serif;font-size:14px;overflow:hidden;padding:10px 5px;word-break:normal;} .tg th{background-color:#f0f0f0;border-color:#ccc;border-style:solid;border-width:1px;color:#333; font-family:Arial, sans-serif;font-size:14px;font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;} .tg .tg-buh4{background-color:#f9f9f9;text-align:left;vertical-align:top} .tg .tg-0lax{text-align:left;vertical-align:top}
Included Amounts | |
---|---|
Requests | 20 million requests/month +$0.30 per additional million |
CPU time | 60 million CPU milliseconds/month +$0.02 per additional million CPU milliseconds |
Scripts | 1000 scripts +0.02 per additional script/month |
含まれる金額
リクエスト
2000万リクエスト/月追加100万ごとに、+$0.30
CPU時間
6000万CPUミリ秒/月追加100万CPUミリ秒につき+0.02ドル
スクリプト
1000スクリプト追加スクリプト1本につき+0.02ドル/月
Workers for Platforms、2024年4月16日に販売開始!
Workers for Platformsは、2024年4月16日にCloudflare DashboardのWorkers for Platformsタブで購入できるようになります。
Workers for Platformsの詳細については、スタータープロジェクトと開発者向けドキュメントをご覧ください。