Vercel Flags 现已支持时间戳属性

Vercel Flags 现已支持时间戳属性

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

Vercel Flags 新增时间戳属性,用于按时间控制功能开关。可在仪表板或 CLI 配置 timestamp 属性,应用需传入毫秒级 Unix 时间戳。添加定向规则后,支持“在……之后/之前”等条件,实现限时活动、节日促销或按注册时间定向。

🔎

延伸解读

时间戳属性的配置方式

Vercel Flags 的时间戳属性可在仪表板或 CLI 中配置。仪表板中,进入 Flags 的 Entities 页面,创建或选择实体,添加属性并将数据类型设为 timestamp。CLI 则通过 vercel flags entities create 或 update 命令,使用 --attribute 或 --add-attribute 参数指定属性名和 timestamp 类型。配置时需确保实体和属性名称与代码中一致。

应用端传值的关键要求

无论通过仪表板还是 CLI 配置,应用在评估 flag 时都必须提供时间戳值。该值必须是毫秒级 Unix 时间戳,且实体和属性名称需与配置完全匹配。示例代码中,使用 Date.now() 获取当前时间,并通过 dedupe() 包装 identify 函数,确保同一请求内所有 flag 评估使用相同时间,避免因时间不一致导致规则判断偏差。

定向规则与时间条件

在仪表板中为 flag 添加定向规则时,可选择时间戳属性,并设置“在……之后”“在……或之后”“在……之前”“在……或之前”等条件,日期时间选择器使用本地时区。CLI 添加规则时,使用 after、at-or-after、before、at-or-before 操作符,并指定具体时间。这适用于限时活动、节日促销或按用户注册时间定向等场景。

❓

Q&A

Vercel Flags 新增的时间戳属性是什么?

时间戳属性是 Vercel Flags 新增的一种实体属性,用于表示被评估的用户、团队、设备或请求的时间信息。它允许根据时间条件控制功能开关,例如限时活动、节日促销或按注册时间定向。

如何在 Vercel 中配置时间戳属性?

可以在 Vercel 仪表板或通过 CLI 配置。在仪表板中,打开 Flags,选择 Entities,创建或选择实体,添加属性并将数据类型设为 timestamp。使用 CLI 时,可以运行 `vercel flags entities create system --label System --attribute time:timestamp` 或 `vercel flags entities update system --add-attribute time:timestamp`。

应用如何提供时间戳属性的值?

应用在评估标志时必须提供时间戳值,且实体和属性名称需与配置匹配,值必须是毫秒级的 Unix 时间戳。例如,在 Flags SDK 中,可以使用 `Date.now()` 返回毫秒值,并通过 `dedupe()` 确保同一请求中的所有标志评估使用相同时间。

时间戳属性支持哪些定向规则条件?

支持的条件包括:is after、is at or after、is before、is at or before。在仪表板中,日期时间选择器使用本地时区;使用 CLI 时,可以使用 after、at-or-after、before 或 at-or-before 来添加基于时间的定向规则。

如何用 CLI 为标志添加基于时间的定向规则?

可以使用 `vercel flags rules add` 命令,指定环境、条件和变体。例如:`vercel flags rules add promotion --environment production --condition system.time:at-or-after:2026-09-02T13:00:00Z --condition system.time:before:2026-09-16T22:00:00Z --variant on`。

时间戳属性有哪些典型使用场景?

典型场景包括:仅在两个日期之间显示活动页面、运行黑色星期五促销、或定向在某个截止日期之前注册的用户。

🏷️

标签

➡️

继续阅读