Gemcook Tech Blog
🗞️

週刊Cloudflare - 2026/04/26週

に公開

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

この記事の主旨

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

2026/04/19 ~ 2026/04/25 の変更

Wrangler

4.84.0

マイナーアップデート
  • Artifacts バインディングに対応
    • wrangler.jsoncartifacts 配列で Cloudflare Artifacts のネームスペースを Worker にバインド可能に
    • wrangler typesArtifacts 型が生成されるようになり、Worker 側で型付きに扱える
  • Containers の SSH 設定名を ssh に変更
    • 既存の containers.wrangler_ssh は非公開の後方互換エイリアスとして引き続き受け付け
  • Containers にリージョン・管轄区域の配置制約を追加
    • constraints.regionsconstraints.jurisdiction を設定し、コンテナを動かす場所を制御可能に
  • dev registry 経由のプロセス間連携を安定化
    • workerd の debug port を使い、サービスバインディング、Durable Objects、Tail Workers のプロセス間動作を改善
    • Durable Object RPC も dev registry 経由で扱えるようになりました
パッチアップデート
  • AI バインディングの 403 認証エラー時に、wrangler login を促す分かりやすいエラーメッセージを表示
  • remote binding の長時間 wrangler dev セッションで preview token が期限切れになる問題を修正
    • 50 分で事前更新し、期限切れ後の初回リクエスト失敗を避けるようになりました
  • esbuild context の終了処理を改善し、プロセスが終了せず残る問題を修正
  • R2 CORS 設定ファイルで AWS S3 形式の書き間違いを検出しやすくするバリデーションとエラーメッセージを追加
  • wrangler r2 bucket list が有効な Wrangler 設定ファイルなしでも実行可能に
  • pages deployment deleteforce query parameter を API に渡すよう修正
  • Browser Rendering のユーザー向け表記を Browser Run に変更
  • D1 export が利用できない場合のプロンプトメッセージを追加し、--skip-confirmation で非表示にできるよう変更
  • 依存関係を更新
    • workerd@1.20260420.1
    • miniflare@4.20260420.0
サンプル
// wrangler.jsonc
{
  "artifacts": [
    {
      "binding": "MY_ARTIFACTS",
      "namespace": "default",
    },
  ],
  "containers": [
    {
      "class_name": "MyContainer",
      "image": "./Dockerfile",
      "ssh": true,
      "constraints": {
        "regions": ["wnam"],
        "jurisdiction": "fedramp",
      },
    },
  ],
}

4.84.1

パッチアップデート
  • wrangler types --check--env-interface と追加の --config エントリを正しく考慮するよう修正
    • 以前はオプション解決前に stale check が走っていたため、環境インターフェース名や secondary Worker 構成が変わっていても型が最新と誤判定される場合がありました
  • 依存関係を更新
    • workerd@1.20260421.1
    • miniflare@4.20260421.0

Workers

WebSocket のバイナリメッセージが Blob で届くように

Workers の WebSocket で受信したバイナリフレームが、デフォルトで message イベントの Blob として渡されるようになりました。WebSocket 仕様やブラウザ実装に合わせた変更で、compatibility date が 2026-03-17 以降の Worker では websocket_standard_binary_type フラグにより有効化されています。

これまで ArrayBuffer 前提で event.data instanceof ArrayBuffer のように判定していた処理は、バイナリフレームを取りこぼす可能性があります。従来どおり ArrayBuffer として扱いたい場合は、accept() の前に binaryType = "arraybuffer" を設定します。Worker 全体で戻したい場合は no_websocket_standard_binary_type 互換性フラグを利用できます。

Durable Object の hibernatable WebSocket の webSocketMessage ハンドラには影響せず、引き続き ArrayBuffer を受け取ります。

サンプル
const resp = await fetch("https://example.com", {
  headers: { Upgrade: "websocket" },
});

const ws = resp.webSocket;
ws.binaryType = "arraybuffer";
ws.accept();

ws.addEventListener("message", (event) => {
  if (typeof event.data === "string") {
    console.log("text frame");
  } else {
    console.log("array buffer frame", event.data);
  }
});

https://developers.cloudflare.com/changelog/post/2026-04-21-websocket-standard-binary-type/

Workers AI

Moonshot AI Kimi K2.6 が利用可能に

Moonshot AI の @cf/moonshotai/kimi-k2.6 が Workers AI で利用可能になりました。Kimi K2.6 は、長期的なコーディング作業、UI 生成、能動的なエージェント実行、複数エージェントの協調といった用途を意識したマルチモーダルなエージェント向けモデルです。

1T の総パラメーターと token あたり 32B active の Mixture-of-Experts 構成で、262.1k token のコンテキストウィンドウを持ちます。画像入力、thinking mode、複数ターンにまたがる tool calling にも対応しています。

Kimi K2.5 から移行する場合は、thinking 制御が chat_template_kwargs.enable_thinking から chat_template_kwargs.thinking に変わり、推論内容の返却フィールドも reasoning_content から reasoning に変わる点に注意が必要です。

https://developers.cloudflare.com/changelog/post/2026-04-20-kimi-k2-6-workers-ai/

Workflows

step.do() のコンテキスト拡張と ReadableStream 対応

Workflows の step.do() コールバック内で、追加のステップコンテキストを受け取れるようになりました。既存の attempt に加えて、ステップ名、同名ステップの実行回数、解決済みのタイムアウト・リトライ設定を参照できます。

また、step.do() から ReadableStream を直接返せるようになりました。通常のステップ出力は 1 MiB 制限がありますが、大きなオブジェクトを扱う処理ではストリームとして返すことで扱いやすくなります。ただし、ストリーム出力も Workflow instance storage limit の対象です。

サンプル
type WorkflowStepContext = {
  step: {
    name: string;
    count: number;
  };
  attempt: number;
  config: {
    retries: {
      limit: number;
      delay: string | number;
      backoff?: "constant" | "linear" | "exponential";
    };
    timeout: string | number;
  };
};

const largePayload = await step.do("fetch-large-file", async () => {
  const object = await env.MY_BUCKET.get("large-file.bin");
  return object.body;
});

https://developers.cloudflare.com/changelog/post/2026-04-21-step-context-and-readable-streams/

Containers

Container ログ画面に Worker と Durable Object のログを表示

Cloudflare ダッシュボードの Container ログ画面で、Container のログだけでなく、関連する Worker と Durable Object のログも同じ画面に表示されるようになりました。

コンテナアプリケーションでは、リクエストが Worker、Durable Object、Container をまたいで流れることが多いため、関連ログが同じ場所に並ぶことでデバッグやトレースがしやすくなります。必要に応じて Container / Worker / Durable Object の単位でログソースを絞り込むこともできます。

https://developers.cloudflare.com/changelog/post/2026-04-21-correlated-worker-durable-object-logs/

R2

Data Catalog のスナップショット期限切れ処理が未参照データファイルも削除

R2 Data Catalog の自動スナップショット期限切れ処理が、Iceberg のメタデータファイルだけでなく、期限切れスナップショットから参照されなくなったデータファイルも削除するようになりました。

これまでは manifest などのメタデータはクリーンアップされても、不要になったデータファイルは Spark などから remove_orphan_filesexpire_snapshots を実行して回収する必要がありました。今回の変更により、削除済みデータのストレージコストを自動的に抑えやすくなります。

サンプル
npx wrangler r2 bucket catalog snapshot-expiration enable my-bucket \
  --older-than-days 7 \
  --retain-last 10

https://developers.cloudflare.com/changelog/post/2026-04-22-snapshot-expiration-cleans-data-files/

R2 SQL

JSON 関数、EXPLAIN FORMAT JSON、非パーティションテーブル対応を追加

R2 SQL で、Apache Iceberg テーブルに保存された JSON データを SQL から直接扱うための関数が追加されました。json_get_strjson_get_intjson_get_booljson_contains などを使い、アプリケーション側で JSON をパースせずに絞り込みや抽出ができます。

また、EXPLAIN FORMAT JSON によりクエリ実行計画を構造化 JSON として取得できるようになりました。運用監視やクエリ分析ツールに取り込みやすくなります。

加えて、パーティションキーを持たない Iceberg テーブルも直接クエリできるようになりました。小さめのデータセットや、自然な時系列パーティションを持たないデータに向いています。ファイル数が 1000 を超えるようなテーブルでは、引き続きパーティション設計が推奨されています。

サンプル
SELECT
  json_get_str(doc, 'name') AS name,
  json_get_int(doc, 'user', 'profile', 'level') AS level,
  json_get_bool(doc, 'active') AS is_active
FROM my_namespace.sales_data
WHERE json_contains(doc, 'email');
npx wrangler r2 sql query "${WAREHOUSE}" \
  "EXPLAIN FORMAT JSON SELECT * FROM logpush.requests LIMIT 10;"

https://developers.cloudflare.com/changelog/post/2026-04-20-r2-sql-json-functions-explain-format/

Pipelines

Cloudflare Pipelines が Logpush の送信先に対応

Logpush の送信先として Cloudflare Pipelines を選べるようになりました。Cloudflare Logs を Pipelines に送り、取り込み時に変換したうえで R2 に Parquet ファイルや R2 Data Catalog 管理の Apache Iceberg テーブルとして保存できます。

JSON のまま保存するよりもデータサイズとクエリ効率を改善しやすく、R2 SQL や Iceberg / Parquet 対応のクエリエンジンから分析しやすくなります。Pipelines SQL はログレコードごとに実行されるため、不要フィールドの削除、機密値のマスキング、派生カラム作成などを保存前に行えます。

サンプル
INSERT INTO http_logs_sink
SELECT
  ClientIP,
  EdgeResponseStatus,
  to_timestamp_micros(EdgeStartTimestamp) AS event_time,
  upper(ClientRequestMethod) AS method,
  sha256(ClientIP) AS hashed_ip
FROM http_logs_stream
WHERE EdgeResponseStatus >= 400;

https://developers.cloudflare.com/changelog/post/2026-04-20-pipelines-logpush-destination/

Gateway

Network Session Logs がすべての接続経路に対応

Zero Trust Network Session Logs が、Cloudflare Gateway を通るすべてのトラフィックで生成されるようになりました。これまでセッションログが生成されなかった proxy endpoints(PAC files)や Browser Isolation egress も対象です。

すでに zero_trust_network_sessions データセットを Logpush や Log Explorer で利用している場合、これらの接続経路を使っている環境ではログ量が増える可能性があります。保存先やクエリコストの見積もりは見直しておくとよいでしょう。

https://developers.cloudflare.com/changelog/post/2026-04-24-nsl-all-onramps/

ネットワークセッション分析ダッシュボードを追加

Cloudflare One にネットワークセッション分析ダッシュボードが追加されました。Zero Trust > Insights > Dashboards からアクセスでき、Cloudflare One 経由のネットワークトラフィックを可視化できます。

セッション数、転送バイト数、ユニークユーザー数、地域別のセッション分布、TCP / UDP / ICMP / ICMPv6 のプロトコル内訳、接続終了理由などを確認できます。Gateway や Tunnel などを使っている環境で、トラフィック傾向や接続問題を調査する入口として利用できます。

https://developers.cloudflare.com/changelog/post/2026-04-20-network-session-analytics/

Access

Independent MFA に AAGUID 制限と AMR 照合を追加

Cloudflare Access の Independent MFA に、組織レベルで利用できる 2 つの制御が追加されました。

  • AAGUID による認証器制限: WebAuthn 認証器の AAGUID を使い、登録できる認証器を特定のセキュリティキーや会社支給デバイスに限定できます
  • AMR 照合: IdP 側ですでに同等の MFA が完了している場合、amr claim を見て Access 側の追加 MFA prompt をスキップできます

FIPS 検証済みキーの利用を求める組織や、IdP と Access の二重 MFA を避けたい環境で有用です。

https://developers.cloudflare.com/changelog/post/2026-04-23-independent-mfa-aaguid-amr/

Logs

HTTP リクエストのサブリクエスト統合に対応

Cloudflare Worker が visitor request を受けて外部への fetch() などのサブリクエストを発行する場合、通常はサブリクエストごとに Logpush のログ行が生成されます。今回追加されたサブリクエスト統合を有効にすると、サブリクエスト情報を親リクエストのログレコード内の配列フィールドとしてまとめられるようになりました。

http_requests の zone-scoped データセットが対象で、Logpush job の作成・更新時に merge_subrequests: true を設定します。1 つの親リクエストに最大 50 件までのサブリクエストがマージされ、5 分を超えるサブリクエストや条件に合わないものは従来どおり個別ログとして出力されます。段階的ロールアウト中のため、まだすべての zone で使えるわけではありません。

https://developers.cloudflare.com/changelog/post/2026-04-21-logpush-subrequests-merging/

Analytics

Custom Dashboards がすべての顧客に提供開始

Cloudflare の Custom Dashboards がすべての顧客で利用可能になりました。Cloudflare GraphQL API で提供される 100 以上のデータセットを使い、WAF events、Workers metrics、Load Balancing、Zero Trust logs など、複数プロダクトのシグナルを 1 つのダッシュボードにまとめられます。

Log Explorer の利用者は、ログ調査中のクエリをそのままダッシュボードのチャートとして保存できます。特定のステータスコード、ASN、地域、セキュリティアクションなど、運用上見たい観点に絞った監視ビューを作成できます。

https://developers.cloudflare.com/changelog/post/2026-04-22-custom-dashboards-ga/

WAF

WAF リリース(2026-04-21)

Apache ActiveMQ の RCE 脆弱性(CVE-2026-34197)に対する検知と、Magento 2 - Unrestricted File Upload の追加検知が入りました。あわせて SQLi、XSS、Command Injection などの検出ルールも継続的に調整されています。

  • Apache ActiveMQ (CVE-2026-34197): 特殊に作成されたネットワークパケットの処理により、認証なしのリモート攻撃者が任意コードを実行できる脆弱性
  • Magento 2 - Unrestricted File Upload - 2: Magento / Adobe Commerce 向けの既存保護を補強する追加検知
ルールセット 説明 Previous Action New Action
Cloudflare Managed Ruleset Command Injection - Generic 8 - uri Log Block
Cloudflare Managed Ruleset Command Injection - Generic 8 - body - Beta Disabled Disabled
Cloudflare Managed Ruleset MySQL - SQLi - Executable Comment - Beta Log Block
Cloudflare Managed Ruleset MySQL - SQLi - Executable Comment - Headers Log Block
Cloudflare Managed Ruleset MySQL - SQLi - Executable Comment - URI Log Block
Cloudflare Managed Ruleset Magento 2 - Unrestricted file upload - 2 Log Block
Cloudflare Managed Ruleset Apache ActiveMQ - Remote Code Execution - CVE:CVE-2026-34197 Log Block
Cloudflare Managed Ruleset SQLi - Sleep Function - Beta Log Block
Cloudflare Managed Ruleset SQLi - Sleep Function - Headers Log Block
Cloudflare Managed Ruleset SQLi - Sleep Function - URI Log Block
Cloudflare Managed Ruleset SQLi - Probing - uri Log Block
Cloudflare Managed Ruleset SQLi - Probing - header Log Block
Cloudflare Managed Ruleset SQLi - Probing - body Disabled Disabled
Cloudflare Managed Ruleset SQLi - Probing 2 Disabled Disabled
Cloudflare Managed Ruleset SQLi - UNION in MSSQL - Body Disabled Disabled
Cloudflare Managed Ruleset SQLi - UNION - 3 Disabled Disabled
Cloudflare Managed Ruleset XSS, HTML Injection - Embed Tag - URI Disabled Disabled
Cloudflare Managed Ruleset XSS, HTML Injection - Embed Tag - Headers Log Block
Cloudflare Managed Ruleset XSS, HTML Injection - IFrame Tag - Src and Srcdoc Attributes - Headers Log Disabled
Cloudflare Managed Ruleset XSS, HTML Injection - Link Tag - Headers Log Disabled
Cloudflare Managed Ruleset XSS, HTML Injection - Link Tag - URI Disabled Disabled

多くの新規検知は Log から Block へ移行しているため、Managed Ruleset のアクションを独自調整している場合は Security Events dashboard で事前に影響を確認しておくとよいでしょう。

https://developers.cloudflare.com/changelog/post/2026-04-21-waf-release/

Audit Logs

Audit Logs v2 が組織レベルに対応

Audit Logs v2 API で、組織レベルの監査ログを取得できるようになりました。Org Admin は、組織レベル API で実行されたユーザー起点の操作を GET /organizations/{organization_id}/logs/audit から取得できます。

システム起点の操作、組織向けのダッシュボード UI、組織レベルの Logpush 対応は今後追加予定です。アカウントレベルの操作は従来どおりアカウントレベルの Audit Logs UI、Audit Logs v2 API、Logpush で扱います。

https://developers.cloudflare.com/changelog/post/2026-04-23-audit-logs-v2-organization-level/

Cloudflare Fundamentals

Network Overview ページがダッシュボードに追加

Cloudflare dashboard に Network Overview ページが追加されました。ネットワークセキュリティや接続系プロダクトの入口として、Networking sidebar からアクセスできます。

このページから、Cloudflare Tunnel によるリソース接続、Network Flow によるトラフィック監視、Address Maps の設定、Magic Transit や Cloudflare WAN の確認・導入導線にアクセスできます。すでに Magic Transit や Cloudflare WAN を利用している場合、既存の操作体験は変わりません。

https://developers.cloudflare.com/changelog/post/2026-04-21-network-overview-page/

Billable Usage ダッシュボードと Budget alerts

Pay-as-you-go アカウント向けに、使用量ベースのコストを確認する Billable Usage ダッシュボードと、予算しきい値を設定して通知を受け取る Budget alerts が追加されました。

Billable Usage ダッシュボードでは、請求期間内の日次利用料金、プロダクト別の総使用量・課金対象使用量・累積コスト、過去の請求期間を確認できます。月次請求と同じシステムのデータを使うため、完了済み請求期間の合計は請求書の超過利用料金と一致します。

Budget alerts では、アカウントレベルの使用量支出に対して金額ベースのしきい値を設定し、月末前に月間の予測支出がしきい値へ到達したタイミングでメール通知を受け取れます。Workers、R2、Images など使用量ベースのプロダクトを使う Pay-as-you-go アカウントが対象で、Enterprise 契約アカウントは対象外です。

https://developers.cloudflare.com/changelog/post/2026-04-13-billable-usage-dashboard-and-budget-alerts/

Terraform

Terraform Provider v4 から v5 への移行ツール tf-migrate

Cloudflare Terraform Provider v4 から v5 への移行を支援する CLI ツール tf-migrate が公開されました。Provider v5 は安定版として本番利用が推奨されており、Cloudflare 自身のインフラ移行にもこのツールが使われています。

tf-migrate は、リソースタイプのリネーム、属性名や nested block の変換、Terraform 1.8+ の moved block 生成、ファイルをまたいだ参照更新、dry-run による変更プレビューに対応します。v5.19+ で導入された state upgrader と組み合わせることで、手作業での移行ミスや意図しないリソース置換を減らせます。

すべてのリソースが対応済みではないため、対象外のものは v5 upgrade guide に沿った手動移行が必要です。

https://developers.cloudflare.com/changelog/post/2026-04-24-tf-migrate-tool-released/

Go SDK

Go SDK v6.10.0 がリリース

Cloudflare Go SDK v6.10.0 が公開されました。OpenAPI 定義と codegen の変更に伴い、多くの破壊的変更が含まれています。

主な破壊的変更には、AI Search の instance params の再構成、namespace path への移行、Email Security、Hyperdrive、IAM、Pipelines、Queues、Secrets Store、Stream、Zero Trust Access AI Control MCP Portal まわりの型や戻り値の変更があります。移行する場合は migration guide を確認し、該当 API の変更前後を見ながら更新する必要があります。

新機能としては、Vulnerability Scanner、AI Search Namespaces、Browser Rendering Devtools、Registrar の domain check / search と registration management、Cache Origin Cloud Regions、Zero Trust DLP Settings、Radar の agent readiness / markdown-for-agents 関連 API などが追加されています。

https://developers.cloudflare.com/changelog/post/2026-04-23-go-sdk-v6100/

筆者の感想

来週にも載せると思いますが、ついにAIエージェントもサービスを自律的に使う側に回る時代が来たみたいですね。
前々からAIに支払いをさせることができないかとか先進的な試みをしていることは観測していましたがいきなり実現してしまいましたね😳

https://x.com/Cloudflare/status/2049545195914498139?s=20

Gemcook Tech Blog
Gemcook Tech Blog

Discussion