要在 Cloudflare Worker 中使用 Flagship,请将 Flagship 绑定添加到您的 Wrangler 配置文件中。该绑定使您的 Worker 可以访问 env.FLAGS,从而提供评估功能标志的方法。
将 flagship 块添加到您的 Wrangler 配置文件中,并附带绑定名称和您的应用程序 ID。
{
"flagship": [
{
"binding": "FLAGS",
"app_id": "<APP_ID>",
},
],
}[[flagship]]
binding = "FLAGS"
app_id = "<APP_ID>"将 <APP_ID> 替换为您 Flagship 应用程序中的应用程序 ID。如果您还没有创建应用程序,请参阅入门指南。binding 字段设置您在 Worker 代码中用于访问 Flagship 的名称(例如,env.FLAGS)。
单个 Worker 可以绑定到多个 Flagship 应用程序。使用数组形式定义多个绑定:
{
"flagship": [
{
"binding": "FLAGS",
"app_id": "<APP_ID_1>",
},
{
"binding": "EXPERIMENT_FLAGS",
"app_id": "<APP_ID_2>",
},
],
}[[flagship]]
binding = "FLAGS"
app_id = "<APP_ID_1>"
[[flagship]]
binding = "EXPERIMENT_FLAGS"
app_id = "<APP_ID_2>"每个绑定均可作为 env 对象上的单独属性使用(例如,env.FLAGS 和 env.EXPERIMENT_FLAGS)。
添加绑定后,运行 npx wrangler types 生成 TypeScript 类型。这会创建 Env 接口,其中每个绑定的类型为 Flagship。
interface Env {
FLAGS: Flagship;
EXPERIMENT_FLAGS: Flagship;
}调用 env.FLAGS 上的评估方法以在运行时解析标志值。每个方法都接受一个标志键、一个默认值和一个可选的评估上下文。
export default {
async fetch(request, env) {
const isEnabled = await env.FLAGS.getBooleanValue("my-feature", false, {
userId: "user-42",
});
return new Response(isEnabled ? "功能开启" : "功能关闭");
},
};export default {
async fetch(request: Request, env: Env): Promise<Response> {
const isEnabled = await env.FLAGS.getBooleanValue("my-feature", false, {
userId: "user-42",
});
return new Response(isEnabled ? "功能开启" : "功能关闭");
},
};有关方法的完整列表,请参阅绑定 API 参考。
Flagship 绑定支持使用 wrangler dev。本地 Worker 使用由 app_id 配置的实时 Flagship 应用程序。没有本地的标志存储。在测试评估之前,请确保您的本地 Wrangler 配置指向一个有效的 Flagship 应用程序。