Gemcook Tech Blog
🗞️

週刊Cloudflare - 2025/04/06週

に公開

こんにちは、あさひです 🙋‍♂️ 今週の Cloudflare のアップデートをまとめていきます!

この記事の主旨

この記事では、前週に Cloudflare のサービスにどんな変更があったかをざっくりと理解してもらい、サービスに興味を持ってもらうことを目的としています。そのため、変更点を網羅することを優先します。

2025/03/30 ~ 2025/04/05 の変更

Wrangler

4.7.2

パッチアップデート

  • R2 データカタログの URI 表記を変更し、アカウント ID とウェアハウス名の区切りをアンダースコアからスラッシュに変更。
  • メンバーシップ情報やユーザーのメールアドレス取得に失敗した際のエラーメッセージを改善し、必要なパーミッションが不足している可能性を明示。
  • 依存関係を更新
    • miniflare@4.20250404.0

4.7.1

パッチアップデート

  • コマンドがローカルリソースかリモートリソースのどちらを操作しているかをログ出力するように改善。
  • wrangler secret bulk で実際のエラー内容を正しく返すよう修正。
  • API エラーに documentation_url が含まれている場合、それを出力に含めるように変更。
  • R2 データカタログ関連コマンドの軽微なリファクタリングを実施。
  • wrangler pipelines create および update において、プライベートベータ期間中は --transform-worker フラグを非表示にし、新たに --shard-count オプションを追加。
  • 依存関係を更新
    • miniflare@4.20250321.2

4.7.0

マイナーアップデート

  • Hyperdrive に sslmode オプションを追加し、mTLS 関連のフラグも更新。

パッチアップデート

  • バインディング名からリソース名を導出する際、すべてのアンダースコアをハイフンに置換するようロジックを修正。
  • 内部 Durable Objects を含む場合に getPlatformProxy がクラッシュする問題を警告を表示するように修正。
  • R2 カタログコマンドに関する動作の安定性と全般的な改善を実施。

Workers

WebSocket クライアントでのエラー変更

WebSocket クライアントで発生する例外が、内部エラーではなく JavaScript の例外として扱われるようになりました。

Workers における Playwright サポート(ベータ)を提供開始 (2025-04-04)

Workers 上で Playwright を使用できる機能をベータ提供として開始しました。Playwright は、Web ブラウザを自動操作できるヘッドレスブラウザライブラリであり、これまで Node.js などの実行環境で用いられてきましたが、今回の対応により、サーバレスな Cloudflare Workers 上でも利用可能になりました。

この機能を活用することで、以下のようなユースケースが実現できます

  • JavaScript で動的に生成されるページのコンテンツ取得
  • スクリーンショットの自動取得
  • SEO 向けのプリレンダリング処理
  • フロントエンドの自動テストや検証

Playwright 機能は Browser Rendering API と連携しており、リクエスト処理の中で Playwright スクリプトを実行できます。

https://developers.cloudflare.com/browser-rendering/platform/playwright/

AI Gateway

キャッシュキーの計算方法が更新されました。そのため、新たなキャッシュエントリーが作成され、移行期間中は通常よりもキャッシュミスが発生する可能性があります。

Browser Rendering

Playwright が Browser Rendering で利用可能に

Cloudflare Workers から Playwright を使用して、ブラウザ自動操作が可能になりました。

Playwright は Microsoft が開発したオープンソースのパッケージで、ソフトウェアテストやデバッグ、スクリーンショットの生成、Web ページのクロールなどに広く使われています。Cloudflare はこの Playwright をフォークし、Workers と Browser Rendering に対応するよう独自に最適化しました。

例として、TODO アプリケーションを操作・検証するコードが紹介されており、Playwright の強力な UI テスト機能を Cloudflare 上で活用できます。

import type { Fetcher } from "@cloudflare/workers-types";
import { launch } from "@cloudflare/playwright";
import { expect } from "@cloudflare/playwright/test";

interface Env {
  MYBROWSER: Fetcher;
}

export default {
  async fetch(request: Request, env: Env) {
    const browser = await launch(env.MYBROWSER);
    const page = await browser.newPage();

    await page.goto("https://demo.playwright.dev/todomvc");

    const TODO_ITEMS =
      todos.length > 0
        ? todos
        : ["buy some cheese", "feed the cat", "book a doctors appointment"];

    const newTodo = page.getByPlaceholder("What needs to be done?");
    for (const item of TODO_ITEMS) {
      await newTodo.fill(item);
      await newTodo.press("Enter");
    }

    await expect(page.getByTestId("todo-title")).toHaveCount(TODO_ITEMS.length);

    await Promise.all(
      TODO_ITEMS.map((value, index) =>
        expect(page.getByTestId("todo-title").nth(index)).toHaveText(value)
      )
    );
  },
};

利用には @cloudflare/playwright パッケージを使用し、詳細は公式ドキュメントを参照してください。

https://developers.cloudflare.com/changelog/2025-04-04-playwright-beta/

Cache

2025 年 4 月 1 日より、Cloudflare のすべてのキャッシュパージ手法が、利用プランに関係なく誰でも利用できるようになりました。これまで Enterprise プラン限定だった高機能なパージ手法が開放され、より柔軟で詳細なキャッシュ制御が可能になります。単一ファイルの更新から大規模な一括無効化まで、ニーズに応じた対応が行えます。

利用可能なキャッシュパージ手法は以下のとおりです:

  • Purge Everything:すべてをパージ
    • サイトに関連するすべてのキャッシュを削除します。
  • Purge by Prefix:プレフィックス指定パージ
    • 特定の URL プレフィックスに一致するキャッシュを削除します。
  • Purge by Hostname:ホスト名指定パージ
    • 指定したホスト名に関連するキャッシュのみを削除します。
  • Purge by URL:URL 指定パージ
    • 単一の URL を指定して、そのコンテンツだけを削除します。
  • Purge by Tag:タグ指定パージ
    • Cache-Tagレスポンスヘッダーを活用し、論理的にグループ化されたキャッシュを一括で削除します。柔軟なキャッシュ管理が可能です。

Audit Logs

Audit Logs - Audit logs (version 2) - Beta Release

新しいバージョンの Audit Logs は、Cloudflare Dashboard やパブリック API を通じて実行されるすべてのユーザーおよびシステムアクションを自動で記録し、標準化されたログ生成を実現します。この更新は Cloudflare の既存の API Gateway と OpenAPI スキーマを活用することで、より一貫性のある自動ログ記録プロセスを提供します。

主なポイント:

  • 自動化と標準化:
    手動で行われていたログ記録が自動化され、全 Cloudflare サービスで一貫性のあるログが生成されます。
  • 製品カバレッジの拡大:
    ログ対象が従来の 75% から 95% に拡大され、/accounts、/zones、/organizations などの主要な API エンドポイントが含まれます。
  • 詳細なフィルタリング:
    ログは統一フォーマットで記録されるため、アクション、ユーザー、メソッド、リソースごとに正確にフィルタリングでき、迅速な調査が可能です。
  • コンテキストとトレーサビリティの向上:
    各ログエントリには、認証方式、実行インターフェース(API または Dashboard)、Cloudflare Ray ID との紐付けなど、詳細なコンテキスト情報が含まれます。
  • 包括的なアクティビティの記録:
    GET リクエストや失敗した試行も含め、あらゆる重要なアクティビティが記録されます。

利用上の注意点(Beta の制限事項):

  • API のエラー処理はまだ実装されていません。
  • 一部ログエントリに抜けや欠落がある可能性があります。
  • UI は現在利用できません。
  • システムレベルおよびユーザーアクティビティログは含まれていません。

このバージョンは Beta リリースとして API 経由でのアクセスが可能であり、詳細な情報やサンプルログについては、公式ブログ記事「Introducing Automatic Audit Logs」をご確認ください。GA リリースは今年後半に予定されています。

https://blog.cloudflare.com/introducing-automatic-audit-logs/

筆者の感想

Cloudflare Developer Week 2025 が始まってますね!来週の分で扱うことになると思います。
X でリアルタイムに情報は流してるので気になる方はフォローお願いします 🙌

https://blog.cloudflare.com/welcome-to-developer-week-2025/

Gemcook Tech Blog
Gemcook Tech Blog

Discussion