Gemcook Tech Blog
🗞️

週刊Cloudflare - 2025/01/12週

2025/01/23に公開

こんにちは、あさひです 🙋‍♂️
今週は D1 に結構大きい変更が入っていますね。気になる方もいると思うので早速見ていきましょう!🙌

この記事の主旨

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

2025/01/12 ~ 2025/01/18 の変更

Wrangler

3.103.2

パッチアップデート

  • unenv のパス解決に require.resolve を使用するよう修正。

3.103.1

パッチアップデート

  • いくつかの C3 テンプレート(例:Nuxt)に不具合が生じたため、unenv プリセットから @cloudflare/unenv-presetへの変更を revert。

3.103.0

マイナーアップデート

  • wrangler types コマンドの機能が強化され、複数の環境で同じ変数が異なる値を持つ場合に、生成される型がそれらの値のユニオン型として表現されるようになりました。
    • --strict-vars オプションが追加され、wrangler types 実行時にすべての変数が string 型として生成されるようになりました。

以下に例を出しておきます。

wrangler.toml
[vars]
MY_VARIABLE = "production_value"
MY_NUMBERS = [1, 2, 3]

[env.staging.vars]
MY_VARIABLE = "staging_value"
MY_NUMBERS = [7, 8, 9]

wrangler types を実行すると、生成される Env インターフェースは次のようになります。

typescript
interface Env {
        MY_VARIABLE: "production_value" | "staging_value";
        MY_NUMBERS: [1,2,3] | [7,8,9];
}

wrangler types --strict-vars=falseを実行すると、代わりに以下のようなものが生成される。

typescript
interface Env {
        MY_VARIABLE: string;
        MY_NUMBERS: number[];
}

パッチアップデート

  • unenvのプリセットを、@cloudflare/unenv-preset に更新。
  • unenv のバージョンが更新。
  • Sentry にエラーを送信する際に、エラーの cause プロパティを展開して送信するように変更。
  • wrangler typesコマンドに --strict-varsオプションが追加。
  • wrangler.tomlの設定ファイルに指定された database_namebucket_name を使用して、D1 データベースや R2 バケットのプロビジョニングを行う機能が追加。
  • 依存関係の更新。
    • miniflare@3.20241230.2

3.102.0

マイナーアップデート

  • Vectorize クエリ操作において、フィルターのバリデーションロジックが強化され、セットクエリ($in$nin)および レンジクエリ($lte など)を含むフィルターをサポートが追加。

パッチアップデート

  • wrangler dev の開発コンソールにおけるリソースの表示が以下のように修正されました。
    • Vectorize Bindings が従来は「local」と表示されていましたが、実際にはローカルエミュレーションが存在しないため削除。
    • Durable Objects: ローカルでエミュレートされるため、「local」タグが追加。
  • wrangler pages secret bulk コマンドのコピー機能に関する問題を修正。
  • サーバーベースの開発レジストリを削除し、より安定したファイルベースの開発レジストリを採用
  • 依存関係の更新。
    • miniflare@3.20241230.2

D1

2025 年 2 月 10 日より、D1 は Workers Free プランに以下の日次利用枠が適用されます。Free プランでは Rows read が 500 万/日、Rows written が 10 万/日、トータル 5GB までというリミットができました。それ以上を利用する場合は月額 5 ドル+使用量という感じになります。

  • 日次無料枠を超えると、当日中は Workers API や REST API 経由での D1 データベースクエリがエラーを返します(UTC 00:00 にリセット)。
  • サービスを中断なく利用するには、Workers Paid プランにアップグレードしてください。月額最低料金は$5 です。

日次利用枠については以下で詳細を確認できます。

https://developers.cloudflare.com/workers/platform/pricing/

Load Balancing

プロキシ経由のオリジンを解決および監視する方法が変更され、これによりプールのヘルス状況をより正確に評価できるようになりました。

API Shield

API Shield のエンドポイント管理において、セッション識別子が設定されたゾーンでは各エンドポイントの認証詳細を確認できるようになりました。エンドポイントごとの認証ステータスを簡単に確認できるようになり、認証の設定状況を把握し、改善が必要な箇所を特定しやすくなります。

WAF

以下のルールセットが WAF に追加されました。

https://developers.cloudflare.com/waf/change-log/2025-01-13/

筆者の感想

先日は「Cloudflare Workers Tech Talks in Tokyo #4」や「Cloudflare Meetup Nagano Vol.3」があったりと Cloudflare 関連のイベントがありました。筆者はどちらも参加していたのですが、Cloudflare Workers Tech Talks に関しては自分も参加レポートを書いているのでぜひ読んでみてください。主催の@yusukebeさんの記事もあります。

https://zenn.dev/gemcook/articles/cloudflare-workers-tech-tokyo-04-report

https://zenn.dev/yusukebe/articles/6b1b350b3bfcc4

さてイベント続きですが、次はCloudflare Meet-up Osaka #6が開催されます!ワークショップもあり小規模開催のようですが、まだ枠はありそうなので申し込みがまだの方はお忘れなく!🙌

https://cfm-cts.connpass.com/event/343272/

Gemcook Tech Blog
Gemcook Tech Blog

Discussion