跳转到内容
搜索文档

配置

最后更新 查看 MarkdownAgent 设置

要在 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.FLAGSenv.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 应用程序。

这篇文档对您有帮助吗?