← Cloudflare for Platforms / cloudflare-for-platforms / workers-for-platforms / configuration
Bindings
Когда вы развёртываете User Workers через Workers for Platforms, вы можете подключить привязки чтобы дать им доступ к таким ресурсам, как Пространства имён KV, Базы данных D1, Бакеты R2, и других возможностей. Это позволяет вашим конечным клиентам создавать более мощные приложения, а вам не нужно самостоятельно создавать инфраструктурные компоненты.
С помощью привязок каждый User Worker может расширять функциональность за счёт:
- Сохраняйте данные с KV, R2, D1, или Durable Objects
- Обрабатывайте задачи асинхронно с Queues и Workflows
- Запускайте контейнеры с Containers (привязан как Durable Object)
- Подключайтесь к частным сетям с Службы VPC, Сети VPC, а также Hyperdrive
- Собирайте метрики с Analytics Engine
Изоляция ресурсов
Каждый User Worker может обращаться только к привязкам, явно прикреплённым к нему. Для полной изоляции к каждому User Worker можно создать и прикрепить уникальный ресурс, например базу данных D1 или пространство имён KV.
Добавление KV Namespace в пользовательский Worker
В этом примере пошагово показано, как создать Пространство имён KV и подключите его к User Worker. Тот же порядок действий можно использовать для подключения к другим привязки.
1. Создайте KV namespace
Создайте KV namespace с помощью Cloudflare API.
2. Привяжите KV namespace к User Worker
Используйте API для загрузки User Worker чтобы привязать KV namespace binding к 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'Теперь User Worker может обращаться к USER_KV binding через env аргумент с помощью env.USER_KV.get(), env.USER_KV.put(), и других методов KV.
Примечание: если планируете добавить в Worker новые привязки, используйте keep_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"]
}'