INTEGRITY Dokumentace

Bindings

Když nasazujete User Workery prostřednictvím Workers for Platforms, můžete připojit vazby k tomu, abyste jim poskytli přístup k prostředkům, jako je KV namespaces, Databáze D1, R2 buckety, a další. To umožňuje vašim koncovým zákazníkům vytvářet výkonnější aplikace, aniž byste museli sami budovat infrastrukturní komponenty.

Pomocí bindings může každý User Worker rozšířit funkčnost o:

Izolace zdrojů

Každý User Worker má přístup pouze k bindingům, které jsou k němu explicitně přiřazeny. Pro úplnou izolaci můžete každému User Workeru vytvořit a přiřadit jedinečný prostředek, jako je databáze D1 nebo KV namespace.

Model izolace zdrojů
Model izolace zdrojů

Přidání KV Namespace do uživatelského Workeru

Tento příklad krok za krokem ukazuje, jak vytvořit KV namespace a připojte ho k User Workeru. Stejný postup lze použít i pro připojení k dalším vazby.

1. Vytvořte KV namespace

Vytvořte KV namespace pomocí Cloudflare API.

2. Připojte KV namespace k User Workeru

Použijte API pro nahrání User Workeru k připojení vazby KV namespace k Workeru. Můžete to udělat už při prvním nahrávání skriptu Workeru, nebo později při aktualizaci existujícího Workeru.

Příklad požadavku 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'

Nyní má User Worker přístup k USER_KV binding prostřednictvím env argument pomocí env.USER_KV.get(), env.USER_KV.put(), a další metody KV.

Poznámka: Pokud plánujete do Workeru přidat nové bindingy, použijte keep_bindings parametr, aby se zachovaly stávající bindingy a zároveň přidaly nové.

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"]
  }'