跳转到内容
搜索文档

绑定

最后更新 查看 MarkdownAgent 设置

当您通过 Workers for Platforms 部署用户 Worker(User Workers)时,您可以附加绑定(bindings),以便让他们访问 KV 命名空间D1 数据库R2 存储桶等资源。这使您的最终客户能够构建更强大的应用程序,而无需您亲自构建基础架构组件。

通过 bindings,每个用户 Worker 可以扩展功能以:

资源隔离

每个用户 Worker 只能访问明确附加到它的 bindings。为了实现完全隔离,您可以为每个用户 Worker 创建并附加一个独特的资源(如 D1 数据库或 KV 命名空间)。

资源隔离模型
Resource Isolation Model

将 KV 命名空间添加到用户 Worker

本示例逐步说明如何创建 KV 命名空间并将其附加到用户 Worker。可以使用相同的过程附加其他绑定(bindings)

1. 创建 KV 命名空间

使用 Cloudflare API 创建 KV 命名空间。

2. 将 KV 命名空间附加到用户 Worker

使用 上传用户 Worker API 将 KV 命名空间绑定附加到 Worker。您可以在首次上传 Worker 脚本或更新现有 Worker 时执行此操作。

示例 API 请求
curl -X PUT \
  "https://api.cloudflare.com/client/v4/accounts/<account-id>/workers/dispatch/namespaces/<your-namespace>/scripts/<script-name>" \
  -H "Content-Type: multipart/form-data" \
  -H "Authorization: Bearer <api-token>" \
  -F 'metadata={
    "main_module": "worker.js",
    "bindings": [
      {
        "type": "kv_namespace",
        "name": "USER_KV",
        "namespace_id": "<your-namespace-id>"
      }
    ]
  }' \
  -F 'worker.js=@/path/to/worker.js'

现在,用户 Worker 可以通过 env 参数使用 env.USER_KV.get()env.USER_KV.put() 和其他 KV 方法访问 USER_KV 绑定。

注意:如果您计划向 Worker 添加新 bindings,请使用 keep_bindings 参数,以确保在添加新 bindings 时保留现有的 bindings。

curl -X PUT \
  "https://api.cloudflare.com/client/v4/accounts/<account-id>/workers/dispatch/namespaces/<your-namespace>/scripts/<script-name>" \
  -H "Content-Type: multipart/form-data" \
  -H "Authorization: Bearer <api-token>" \
  -F 'metadata={
    "bindings": [
      {
        "type": "r2_bucket",
        "name": "STORAGE",
        "bucket_name": "<your-bucket-name>"
      }
    ],
    "keep_bindings": ["kv_namespace"]
  }'

这篇文档对您有帮助吗?