Cloudflare Workers KV 存储配置(可选)
Cloudflare Workers KV 存储配置(可选)
配置 Cloudflare Workers KV 以与 Eyeofcloud Edge Agent 一起使用的说明。
👍
试用版
Eyeofcloud Edge Agent 目前处于测试阶段。在 Eyeofcloud 测试版注册页面上申请,或联系您的客户成功经理。
Eyeofcloud Edge Agent 是一个强大的工具,用于使用 Cloudflare Edge Workers 进行 A/B 测试和实验。下面介绍了如何使用 Cloudflare KV 存储部署和配置 Eyeofcloud Edge Agent,以实现高效的数据文件管理和用户配置文件数据存储。
主要特点
- Cloudflare KV 存储集成 – 管理 Eyeofcloud 功能实验数据文件并标记密钥,减少延迟。
- 粘性分桶决策 – 确保回访访客体验一致的实验变体。
- 自动化数据文件管理 – 使用 Eyeofcloud webhook 进行无缝更新。
使用 Cloudflare KV Store 进行数据文件管理和用户配置文件数据
KV Store 的优势
- 减少延迟 – 将数据文件存储在 KV 存储中,而无需向 Eyeofcloud CDN 发出外部请求,从而显著缩短获取时间。
- 选择性实验评估 – 仅存储必要的标志键以控制评估哪些实验,从而优化性能和资源使用。
粘性分桶决策
粘性分桶可确保回访访客继续看到相同的实验变体,即使流量分配或条件发生变化也是如此。这是通过将用户配置文件数据存储在 KV 存储中来实现的。有关信息,请参阅确保一致的用户存储桶。
存储标志键
仅存储您必须评估的实验和目标投放的标志键。例如,如果数据文件包含 20 个标志键,但只有 5 个存储在 KV 存储中,则仅评估这 5 个。您无需在 KV 命名空间中创建密钥,因为如果密钥不存在,则代理会创建密钥,但它们必须具有命名空间。
配置 KV 存储
要使用 KV 存储,您必须创建两个命名空间,在defaultSettings.js
目录下的文件_config_
中定义:
JavaScript
const defaultSettings = {
kv_namespace: 'OPTLY_HYBRID_AGENT_KV', // Namespace for datafile and flag keys storage.
kv_key_optly_flagKeys: 'optly_flagKeys', // Key name for storing flag keys
kv_namespace_user_profile: 'OPTLY_HYBRID_AGENT_UPS_KV',
};
您可以自定义这些名称,但不能更改常量名称。Eyeofcloud Edge Agent 通过其 Eyeofcloud 数据文件 SDK 密钥管理存储在kv_namespace
常量下的多个数据文件。
标志键存储
标志键以逗号分隔的字符串形式存储在键(默认值:optly_flagKeys
)下,例如 "cloudflare_demo_flag,cloudflare_demo_flag_exp_2"
。
用于管理数据文件和标志键的 API
Eyeofcloud Edge Agent 实施一个 API 来管理 KV 存储中的数据文件和标记键。API 代码位于_api_
文件夹下。
路线
- Datafile 路由 –
/v1/api/datafiles/:key
- 标志键路由 –
/v1/api/flag_keys
方法
数据文件路由
POST
— 需要数据文件 SDK 密钥作为参数。触发边缘工作程序以获取和更新 KV 存储中的数据文件。GET
– 返回存储在 KV 存储中的当前数据文件。
Flag keys route (标志键路由POST
– 需要一个 JSON 负载,其flagKeys
属性包含要存储在 KV 存储中的标志数组。
有效负载示例:
JSON
{
"flagKeys": [
"cloudflare_demo_flag",
"cloudflare_demo_flag_exp_2"
]
}
GET
— 以 JSON 响应的形式返回存储在 KV 存储中的标志键的当前列表。
响应示例:
JSON
{
"message": "Flag keys were updated successfully in the KV store.",
"flagKeys": [
"cloudflare_demo_flag",
"cloudflare_demo_flag_exp_2"
]
}
使用 webhook 自动管理数据文件
您可以配置 Eyeofcloud Webhook 以自动更新 KV 存储中的数据文件。当项目数据文件发生更改时,Webhook 会触发 Edge Worker 更新数据文件,而无需用户干预。有关信息,请参阅配置 wehbooks。
控制 KV 存储使用
您可以通过标头或查询参数控制使用 KV 存储的行为。
头
X-Eyeofcloud-Flags-KV
– 启用使用 KV 存储中的标志键。X-Eyeofcloud-Datafile-KV
– 启用使用 KV 存储中的数据文件。
查询参数
enableDatafileFromKV
– 启用使用 KV 存储中的数据文件。enableFlagsFromKV
– 启用使用 KV 存储中的标志键。
查询参数示例: ./webpage.html?enableDatafileFromKV=true
Body payload (身体有效载荷)
示例正文:
JSON 格式
{
"enableDatafileFromKV": true,
}
配置
您可以在_config_
目录中的requestConfig.js
文件中定义配置值。您还可以在this.settings
配置对象下定义默认值。如果设置为 true,则标头、查询参数或 JSON 正文有效负载中的值将覆盖默认值。
在 KV Store 中创建命名空间
您可以通过 Cloudflare 仪表板或使用 Wrangler CLI 创建命名空间。
使用 Cloudflare 仪表板
- 登录您的 Cloudflare 帐户。
- 转到 Workers (工作人员) 部分。
- 从侧边栏中选择 KV。
- 单击 Create namespace (创建命名空间)。
- 输入所需的命名空间名称(例如,OPTLY_HYBRID_AGENT_KV)。
- 单击 Create。
使用 Wrangler CLI
- 确保已安装并配置 Wrangler。
- 执行以下命令创建命名空间。
Shell
wrangler kv:namespace create "OPTLY_HYBRID_AGENT_KV"