Gemcook Tech Blog
🗞️

週刊Cloudflare - 2025/03/23週

に公開

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

この記事の主旨

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

2025/03/16 ~ 2025/03/22 の変更

Wrangler

4.4.0

マイナーアップデート

  • Workflows に対する削除 API エンドポイントを追加。
  • Workflows に対してすべてのインスタンスを停止する terminate-all コマンドを追加。
  • Wrangler CLI に Secrets Store コマンドのサポートを追加。
  • @cloudflare/unenv-preset を 2.3.0 に更新し、node:crypto のネイティブ API を有効化。

パッチアップデート

  • Vite の devpreview において assets_navigation_prefer_asset_serving をサポート。
  • Workers with Assets におけるローカル開発中の RPC 機能を正式機能として昇格。
  • 依存関係を更新:
    • miniflare@4.20250320.0

4.3.0

マイナーアップデート

  • Wrangler CLI で MySQL 用 Hyperdrive config を作成できるようになりました。
  • キュー内のすべてのメッセージを削除する新コマンド wrangler queues purge を追加。
  • wrangler.jsonc の IDE での補完体験を向上させる allowTrailingCommas: true オプションを追加。
  • @cloudflare/unenv-preset を 2.2.0 に更新し、node:tls に対して workerd ネイティブ実装を使用。

パッチアップデート

  • wrangler devassets_navigation_prefers_asset_serving 互換性フラグのサポートを追加。
  • wrangler containers に初期サブコマンドを追加。
  • Workers with Assets において、ローカル開発中の RPC 挙動を本番環境と同等に調整。
  • エントリポイントまたはアセットディレクトリが指定されていない場合のエラーメッセージを改善。
  • Pipelines に対する型定義(wrangler types)をサポート。
  • wrangler pipelines update <pipelineName> --transform-worker none でパイプラインの変換を解除可能に。
  • 依存関係を更新
    • miniflare@4.20250319.0
    • @cloudflare/unenv-preset@2.3.0

4.2.0

マイナーアップデート

  • wrangler deploy がスクリプトのアップロード時にコンテナ構成も含めるようになりました。

パッチアップデート

  • cloudchamber build においてビルドに失敗してもイメージをプッシュしようとするバグを修正。
  • cloudchamber images list および cloudchamber images delete コマンドを追加し、Cloudchamber 管理レジストリに保存されたイメージの一覧表示と削除が可能に。
  • 依存関係を更新
    • miniflare@4.20250317.1
    • @cloudflare/unenv-preset@2.2.0

4.1.0

マイナーアップデート

  • hyperdrive コマンドに mTLS 構成オプションを追加し、--ca-certificate-uuid および --mtls-certificate-uuid による証明書指定が可能になりました。

パッチアップデート

  • Pages プロジェクトで no_bundle 設定を devdeploy の両方でサポート(従来はコマンドライン引数 --no-bundle のみ対応)。
  • wrangler check startup で不明な MIME タイプに遭遇した際、明示的なエラーをスローするように改善。
  • wrangler typesimportable env および process.env の型サポートを追加。
  • Wrangler を別のディレクトリから実行した場合でも、Workers Assets の _headers および _redirects メタファイルが正しく解決されるよう修正。
  • 依存関係を更新
    • miniflare@4.20250317.0

Workers AI

max_tokens の適用バグ修正とコンテキストウィンドウの表示追加

  • max_tokens のデフォルト値が正しく適用されていなかったバグを修正し、モデルページに表示されている通り デフォルトのmax_tokensは 256 に統一されました。以前の動作に依存していた場合でトークンをさらに生成したい場合は、必要な値に max_tokens パラメータを設定する必要があります。
  • モデルページに コンテキストウィンドウのサイズ を表示するようになりました(プロンプト + 応答のトークン数)。このサイズを超えるリクエストはエラーとなるため、max_tokens はプロンプト長とコンテキストウィンドウのバランスを考慮して設定する必要があります。

一部のモデルスキーマを更新

  • llama-3.2-1b-instruct のコンテキストウィンドウを正確な値である 60,000 に更新。
  • whisper-large-v3-turboに新しいハイパーパラメータを追加。
  • llama-guard-3-8b モデルでは、messages 配列が ユーザーとアシスタントで交互に並んでいる必要がある 仕様を明記。

Markdown 変換ユーティリティ toMarkdown() の提供開始

Workers AI に新しく toMarkdown() ユーティリティ関数が追加され、PDF や画像などのドキュメントを 簡単に Markdown 形式へ変換・要約できるようになりました。この機能は、env.AI.toMarkdown() 経由、もしくは REST API を通じて利用可能。ドキュメントの内容は AI によって自動的に処理され、テキスト情報(PDF)や画像の説明(画像キャプション)が Markdown 形式で出力されます。

サンプル
import { Env } from "./env";

export default {
  async fetch(request: Request, env: Env, ctx: ExecutionContext) {
    // https://pub-979cb28270cc461d94bc8a169d8f389d.r2.dev/somatosensory.pdf

    const pdf = await env.R2.get("somatosensory.pdf");

    // https://pub-979cb28270cc461d94bc8a169d8f389d.r2.dev/cat.jpeg

    const cat = await env.R2.get("cat.jpeg");

    return Response.json(
      await env.AI.toMarkdown([
        {
          name: "somatosensory.pdf",

          blob: new Blob([await pdf.arrayBuffer()], {
            type: "application/octet-stream",
          }),
        },

        {
          name: "cat.jpeg",

          blob: new Blob([await cat.arrayBuffer()], {
            type: "application/octet-stream",
          }),
        },
      ])
    );
  },
};

結果

[
  {
    "name": "somatosensory.pdf",

    "mimeType": "application/pdf",

    "format": "markdown",

    "tokens": 0,

    "data": "# somatosensory.pdf\n## Metadata\n- PDFFormatVersion=1.4\n- IsLinearized=false\n- IsAcroFormPresent=false\n- IsXFAPresent=false\n- IsCollectionPresent=false\n- IsSignaturesPresent=false\n- Producer=Prince 20150210 (www.princexml.com)\n- Title=Anatomy of the Somatosensory System\n\n## Contents\n### Page 1\nThis is a sample document to showcase..."
  },

  {
    "name": "cat.jpeg",

    "mimeType": "image/jpeg",

    "format": "markdown",

    "tokens": 0,

    "data": "The image is a close-up photograph of Grumpy Cat, a cat with a distinctive grumpy expression and piercing blue eyes. The cat has a brown face with a white stripe down its nose, and its ears are pointed upright. Its fur is light brown and darker around the face, with a pink nose and mouth. The cat's eyes are blue and slanted downward, giving it a perpetually grumpy appearance. The background is blurred, but it appears to be a dark brown color. Overall, the image is a humorous and iconic representation of the popular internet meme character, Grumpy Cat. The cat's facial expression and posture convey a sense of displeasure or annoyance, making it a relatable and entertaining image for many people."
  }
]

新しい AI モデルの追加

Workers AI に複数の新しいモデルが追加されました。これにより、画像分類、埋め込み生成、テキスト分類、OCR など、さまざまなユースケースに対応できるようになりました。

追加された主なモデルは以下のとおりです

  • 画像分類
    • @cf/microsoft/resnet-50(画像の内容を分類)
  • 埋め込み生成
    • @cf/baai/bge-small-en-v1.5(意味ベクトルを生成)
  • テキスト分類
    • @cf/facebook/bart-large-mnli(自然言語の含意判定などに使用)
  • OCR
    • @cf/harvey-ai/trocr-base-handwritten(手書き文字の認識)

AI Gateway

Realtime WebSockets API の提供開始

AI Gateway において、新たに Realtime WebSockets API が利用可能になりました。アプリケーションと AI モデル間で 常時接続かつ低遅延なリアルタイム通信を確立できるようになり、音声対話を含む自然でスムーズな会話型 AI 体験が実現します。

  • Realtime WebSockets API は以下のような外部プロバイダーと連携可能になりました。
    • OpenAI Realtime API
    • Google Gemini Live API
    • Cartesia、ElevenLabs によるリアルタイム音声・テキストインタラクション

Pages

Pages で、ビルドの再実行機能が追加されました。最新のコードをデプロイする際に Git リポジトリの変更をせずに GitHub 上から直前のビルドを再実行できるようになりました。今まではデプロイの問題が発生した際に新しいコミットをプッシュしなければ再ビルドができませんでしたが、この新機能により失敗したビルドや変更のない状態でのデプロイを簡単に再試行できるようになってます。

https://developers.cloudflare.com/changelog/2025-03-17-rerun-build/

Workers

Workers でも、ビルドの再実行機能が追加されました。デプロイに失敗した場合や、外部の依存関係の変更を反映させたい場合に、新しいコードの変更を加えずに GitHub 上から直前のビルドを再実行できるようになりました。これまで Workers のデプロイは新しいコードの変更がない限り再ビルドできませんでしたが、今回のアップデートにより、手動での再実行が可能になり、デプロイの柔軟性が向上しました。

https://developers.cloudflare.com/changelog/2025-03-17-rerun-build/

インポート可能な環境変数のサポート

Cloudflare Workers で、環境変数を ES モジュールとして直接インポートできる機能が追加されました。これにより、従来のenvオブジェクト経由ではなく、import構文で環境変数を明示的にコードに取り込めるようになります。

このアプローチは、依存関係をコード上で明確にしやすくなるため、テストやメンテナンスの効率が向上します。特に、TypeScript やモジュール指向のコードベースとの相性が良く、変数の自動補完や型チェックなどの恩恵も得られます。

利用には、wrangler.tomlで対応する設定が必要です。

サンプル
import { MY_API_KEY, DATABASE_URL } from "env:bindings";

export default {
  async fetch() {
    return new Response(`API Key: ${MY_API_KEY}, Database: ${DATABASE_URL}`);
  },
};

npm i agentsによるインストールに対応

AI エージェント開発向けの SDK であるagentsを、npm i agentsで直接インストール可能にしました。これにより、従来のagents-sdkパッケージから名称が統一され、より直感的でわかりやすい導入方法が提供されるようになりました。

この変更により、AI エージェントを Cloudflare Workers 上で構築・運用する際のセットアップが簡素化され、新規プロジェクトの立ち上げや既存プロジェクトへの導入がよりスムーズになります。

既にagents-sdkを使用している場合も、agentsに置き換えることで今後のアップデートへの対応がしやすくなります。

WAF

Next.js の認証バイパス脆弱性(CVE-2025-29927)に対応する WAF 管理ルールを追加

主な更新内容:

  • 2025 年 3 月 21 日に公開された Next.js の認証バイパス脆弱性(CVE-2025-29927) に対応する 新しい WAF 管理ルール を全サイトに自動で適用しました。
  • このルールは、Cloudflare 上でホストされた Workers / Pages の Next.js サイトだけでなく、外部でホスティングされた Next.js アプリケーションを Cloudflare 経由で保護している場合にも適用されます。
  • 脆弱性の影響を受けるのはほぼすべての Next.js バージョンであり、14.2.25 および 15.2.3 にて修正済みです(11.1.4 ~ 13.5.6 は未修正)。
  • この WAF ルールは、Next.js バージョンに関係なく、x-middleware-subrequest ヘッダー付きの外部リクエストをブロックすることで、攻撃の可能性を軽減します。

補足:

  • 該当ルールは Cloudflare の WAF Managed Ruleset に含まれており、自動的に有効化されています。
  • 必要に応じて、ルール ID 34583778093748cc83ff7b38f472013e に対して例外設定を行うことで無効化することも可能です。
  • Cloudflare は、Next.js 14 または 15 を利用しているユーザーに対し、該当バージョンへのアップグレードを推奨しています。

Radar

流出認証情報に関するインサイトの提供開始

Radar において流出した認証情報に関する可視化機能を追加しました。これにより、パスワード漏洩の傾向や、ダークウェブ上で共有されているログイン情報に関する統計が確認できるようになります。

提供されるインサイトには、以下のような情報が含まれます

  • 最も多く流出したドメインやメールアドレスの傾向
  • よく使われているパスワードの統計
  • リークリストの出どころやタイミングの概要

筆者の感想

ちょっとした変更ですが、タイトルは記事を公開する週の始めの日付にしようと思います。そもそも始めた時にとりあえずで決めたのですが出す週に合わせた方が見やすいような気がしてきたのでこう回収の週始めの日付に変更します。

さてそしてリモート MCP サーバーを Cloudflare にデプロイすることができるようになりました!主要ドキュメントにllms.txtを追加したり、Workers AI や AI Gateway、Agents(SDK)を用意したりこの速度感はさすがですよね 🤔 そもそも MCP が Anthoropic から発表された時も Cloudflare の MCP サーバー対応は爆速だったんですよね…中の人の温度感も高そうなのでこのあたりはウォッチしておきたいですね ☺️

https://blog.cloudflare.com/remote-model-context-protocol-servers-mcp/

Gemcook Tech Blog
Gemcook Tech Blog

Discussion