Cloudflare 资源绑定

默认模板在 wrangler.jsonc 中声明的 Cloudflare 资源绑定。

默认模板在 wrangler.jsonc 中配置 D1、KV、R2、Queue 和 Durable Object 等 Cloudflare 资源。worker-configuration.d.ts 根据该文件生成 CloudflareBindings 类型,业务代码通过 c.env 或 WorkerCtx.env 访问这些资源。

下文的 saavo-template-* 是模板源文件中的名称。CLI 初始化项目时,会按项目名改写 D1、R2、Queue 及 Worker 的名称,Binding 标识保持不变。例如项目名为 my-app 时,主数据库名称是 my-app-db,代码仍通过 c.env.DB 访问。

D1

DB

Prop

Type

模板默认数据库名称为 saavo-template-db,初始化脚本为 schema/db-init.sql。

ANALYTICS_DB

Prop

Type

模板默认数据库名称为 saavo-template-analytics-db,初始化脚本为 schema/analytics-init.sql。

两个 D1 配置都没有填写默认 database_id,只能用于本地开发。执行 npm run deploy:init 创建远程数据库后,部署脚本会把远程 ID 写回 wrangler.jsonc。

KV 和 R2

MAIN_KV

Prop

Type

模板默认没有远程 Namespace ID。npm run deploy:init 创建远程 KV Namespace 后会补充 id。

MAIN_R2

Prop

Type

模板默认存储桶名称为 saavo-template-storage,必须与普通变量 R2_BUCKET_NAME 完全一致。

邮件

EMAIL

Prop

Type

模板默认使用 Resend,因此 wrangler.jsonc 中的 send_email 配置处于注释状态,EMAIL 也属于可选 Binding。改用 Cloudflare Email 后,必须取消注释或由部署脚本写入该绑定,并确保允许使用 config/base.ts 中配置的发件地址。

Queue

ASYNC_POLICY_TASK_QUEUE

Prop

Type

模板默认 Queue 名称为 saavo-template-policy-task,消费者每批最多处理 1 条消息,批处理等待时间为 5 秒,最大并发数为 1,最多重试 3 次。

ASYNC_LOGGER_QUEUE

Prop

Type

模板默认 Queue 名称为 saavo-template-async-logger,消费者每批最多处理 50 条消息,批处理等待时间为 5 秒,最大并发数为 1,最多重试 3 次。

ANALYTICS_QUEUE

Prop

Type

模板默认 Queue 名称为 saavo-template-analytics-events,消费者每批最多处理 8 条消息,批处理等待时间为 5 秒,最大并发数为 1,最多重试 3 次。

每个 Queue 都同时配置了生产者和消费者。ASYNC_POLICY_TASK_QUEUE_NAME、ASYNC_LOGGER_QUEUE_NAME 和 ANALYTICS_QUEUE_NAME 必须分别与相应的 Queue 名称一致,Queue 处理函数会根据这些普通变量判断消息来自哪个队列。

Durable Object

SAAS_RATE_LIMITER_DO

Prop

Type

SAAS_COUNTER_DO

Prop

Type

SAAS_NONCE_DO

Prop

Type

SAAS_TOKEN_BUCKET_DO

Prop

Type

SAAS_TIMER_DO

Prop

Type

五个 Durable Object 类都由 src/index.tsx 导出。wrangler.jsonc 的 v1 迁移使用 new_sqlite_classes 注册这些类。

模板默认配置

Binding资源类型模板默认资源名称
DBD1saavo-template-db
ANALYTICS_DBD1saavo-template-analytics-db
MAIN_KVKVwrangler.jsonc 未指定资源名称
MAIN_R2R2saavo-template-storage
EMAILEmail Sending无,模板默认使用 Resend
ASYNC_POLICY_TASK_QUEUEQueuesaavo-template-policy-task
ASYNC_LOGGER_QUEUEQueuesaavo-template-async-logger
ANALYTICS_QUEUEQueuesaavo-template-analytics-events
SAAS_RATE_LIMITER_DODurable ObjectRateLimiterDO
SAAS_COUNTER_DODurable ObjectCounterDO
SAAS_NONCE_DODurable ObjectNonceDO
SAAS_TOKEN_BUCKET_DODurable ObjectTokenBucketDO
SAAS_TIMER_DODurable ObjectTimerDO

资源名称必须成组修改

修改 R2 或 Queue 名称时,必须同步修改资源配置、生产者、消费者和对应普通变量。只改其中一处会导致 npm run doctor 检查失败,Queue 消息也可能无法被正确识别。

修改 wrangler.jsonc 后,应执行 npm run cf-typegen 重新生成 worker-configuration.d.ts。该文件是生成文件,不要直接编辑。