制限
Durable Objectsは、Workers Paid planでのみ利用可能です。Durable Objectsの制限は、Workers Limitsと同じであり、Durable Objectsに特有の以下の制限もあります:
| 機能 | 制限 |
|---|---|
| オブジェクトの数 | 無制限(アカウント内または特定のクラス内) |
| 最大Durable Object名前空間 | 500(スクリプト制限と同じ) |
| アカウントあたりのストレージ | 50 GB(Cloudflareに連絡することで増加可能)1 |
| クラスあたりのストレージ | 無制限 |
| オブジェクトあたりのストレージ | 無制限 |
| キーサイズ | 2 KiB(2048バイト) |
| 値のサイズ | 128 KiB (131072バイト) |
| WebSocketメッセージサイズ | 1 MiB(受信メッセージのみ) |
| リクエストあたりのCPU | 30s(WebSocketメッセージを含む)2 |
1 Durable Objectsは、ストレージをギガバイトに基づいて請求および測定します
(1 GB = 1,000,000,000バイト) であり、ギビバイト(GiB)ではありません。
2 各受信HTTPリクエストまたはWebSocket メッセージは、残りの利用可能なCPU時間を30秒にリセットします。これにより、各受信ネットワークリクエストの後にDurable Objectが最大30秒の計算を消費できるようになり、新しいネットワークリクエストごとにタイマーがリセットされます。受信ネットワークリクエストの間に30秒を超える計算を消費すると、個々のDurable Objectが追い出されてリセットされる可能性が高まります。
Durable Objectsは、多くのDurable Objectsに水平スケールできます。各個別のオブジェクトは本質的にシングルスレッドです。
- 個別のオブジェクトは、1秒あたり1,000リクエストのソフトリミットがあります。名前空間ごとに無制限の個別オブジェクトを持つことができます。
- 小さな値に対して直接応答を返す単純なストレージ
get()は、大きなJSON値をシリアライズおよび/またはデシリアライズするDurable Objectと比較して、より高いリクエストスループットを実現する可能性があります。 - 同様に、複数の
list()操作を実行するDurable Objectは、リクエストスループットの観点でより制限される可能性があります。
リクエストが多すぎるDurable Objectは、キューに入れようとした後、呼び出し元に過負荷エラーを返します。
Durable Objectsは、システム内の個別オブジェクトの数を制限する必要がないように設計されており、水平スケールできます。
- 特定のDurable Object名前空間内で、必要なだけ多くの個別のDurable Objectsを作成および実行できます。
- Durable Objectsの使用に対する主な制限は、アカウントあたりの総ストレージ制限です。
- さらにストレージが必要な場合は、アカウントチームに連絡するか、制限増加リクエストフォーム ↗に記入してください。次のステップについてご連絡いたします。