shiichan

Cloudflare Python SDK v5.0.0、Python 3.8 対応終了は知ってた?

やっほー、しぃちゃんだよ!今日は Cloudflare の Changelog をのぞいてたら、開発者向けにけっこう大きめのニュースを見つけちゃった。Python で Cloudflare の API を触ってる人は要チェックの内容だから、さっそく紹介するね。

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog によると、公式の Cloudflare Python SDK がメジャーバージョンアップして「v5.0.0」になったよ。ベータではなく正式リリースなのがポイント。原文では「メジャーリリースで、Python 3.8 のサポートを打ち切り、新しい API サービスを 11 個追加、非同期クライアント向けに aiohttp バックエンドをオプションで導入、API 全体にわたる数百件の型・メソッド更新を含む」と説明されてるよ。

盛りだくさんの内容だから、要点を順番に見ていくね。

今までどうだったの?

これまでの Python SDK(v4 系)は Python 3.8 以降に対応していて、非同期クライアントは標準の HTTP バックエンドだけで動いていたの。typing-extensions の必要バージョンも >=4.10 と、今よりゆるめの条件だったんだよね。

API サービスの面でも、AI Search や Connectivity テストのような比較的新しい Cloudflare の機能は、まだ SDK に組み込まれていなかった。使うには別の手段を探す必要があったみたい。

これで何が変わるの?

公式の発表をもとに、変更点を整理してみたよ。

対応 Python バージョンが見直されたの。

  • Python 3.8 のサポートが終了。最低ラインは Python 3.9 に引き上げ
  • Python 3.13 と 3.14 が新たにテスト・サポート対象に追加

依存パッケージのバージョンも上がったよ。

  • typing-extensions の最小バージョンが >=4.10 から >=4.14 に引き上げ

非同期通信の面では、aiohttp バックエンドが選べるようになったのが大きいポイント。非同期クライアントに、並行処理のパフォーマンス向上を狙ったオプションの aiohttp HTTP バックエンドが加わったよ。使い方はこんな感じ。

pip install cloudflare[aiohttp]

でインストールして、http_client パラメータに DefaultAioHttpClient() を渡すだけ。大量のリクエストを非同期でさばきたい場面で効いてきそうだね。

そして今回いちばんのボリュームは、新しく仲間入りした 11 個の API サービス。SDK から直接叩けるトップレベルのサービスが、一気に 11 個も増えたの。

  • AI Search — AI を使った検索機能
  • Connectivity — 接続テスト・診断
  • Email Sending — メール送信(send / send_raw エンドポイント)
  • Fraud — 不正検知・防止
  • Google Tag Gateway — Google タグの管理
  • Organizations — 組織の監査ログ・管理
  • R2 Data Catalog — R2 Data Catalog の操作
  • Realtime Kit — リアルタイム通信(Calls / TURN)
  • Resource Tagging — リソースへのタグ付け・ラベリング
  • Token Validation — トークン検証の設定・ルール
  • Vulnerability Scanner — 脆弱性スキャン、認証情報セット、対象環境の管理

これまで別の手段で補うしかなかった領域が、SDK の中でひとつにまとまった形になったよ。

深く潜ってみよう

今回は breaking changes もまとまった量あるから、アップグレード前に見ておきたいポイントをまとめておくね。

原文によると、以下の 15 リソースに破壊的変更が入ってるよ。

  • abusereports
  • acm.totaltls
  • apigateway.configurations
  • cloudforceone.threatevents
  • d1.database
  • intel.indicatorfeeds
  • logpush.edge
  • origintlsclientauth.hostnames
  • queues.consumers
  • radar.bgp
  • rulesets.rules
  • schemavalidation.schemas
  • snippets
  • zerotrust.dlp
  • zerotrust.networks

具体的な移行手順は Migration Guide にまとまってるみたいだから、上のどれかを使ってる人はそちらを確認するのが確実だよ。

破壊的変更だけじゃなく、既存サービスへのエンドポイント追加もかなりあるの。たとえば次のような具合。

  • api_gateway: Labels 関連のエンドポイント
  • billing: PayGo の使用量エンドポイント
  • brand_protection: v2 エンドポイント
  • browser_rendering: DevTools 系メソッド
  • cache: Origin cloud regions リソース
  • dns: dns_records/usage エンドポイント
  • iam: ユーザーグループ・グループメンバーのリソース
  • zero_trust: Access Users、DEX ルール、WARP Connector まわりなど多数
  • zones: ゾーン環境のエンドポイント

このほかにも Pipelines や DLP、Radar などで細かな型のバグ修正も入っていて、「hundreds of type and method updates」という説明の通りの規模感だね。

まとめ

  • Cloudflare Python SDK がメジャーバージョン v5.0.0 に(ベータではなく正式リリース)
  • Python 3.8 サポート終了、最低バージョンは 3.9 に。Python 3.13 / 3.14 は新たにテスト・サポート対象
  • typing-extensions の最小要件が >=4.10 から >=4.14
  • pip install cloudflare[aiohttp] で選べる aiohttp バックエンドが登場、非同期処理の並行性能アップ
  • AI Search・Connectivity・Realtime Kit など 11 個の新しい API サービスが SDK に統合
  • 15 リソースに破壊的変更あり、既存サービスにも多数のエンドポイント追加

Python で Cloudflare の API を触ってる開発者、特に Workers・DNS・Zero Trust あたりを SDK 経由で自動化してる人は、アップグレード前に上の変更点をチェックしておくと安心だよ。