Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Bindings

最終更新 Markdown で表示Agent セットアップ

Workers for Platforms で User Worker をデプロイするとき、バインディング を付けて、KV 名前空間D1 データベースR2 バケット などのリソースへアクセスさせられます。これにより、インフラストラクチャコンポーネントを自分で構築せずに、エンド顧客がより強力なアプリケーションを構築できます。

アップロード時に付けたバインディングは、そのユーザー Worker のすべての呼び出しで使えます。代わりにリクエストスコープのプラットフォーム機能を提供するには、動的ディスパッチの props で RPC スタブを渡します

バインディングにより、各 User Worker は機能を次のように拡張できます。

リソースの分離

各 User Worker がアクセスできるのは、明示的に付けられたバインディングだけです。完全な分離のため、一意のリソース(D1 データベースや KV 名前空間など)を各 User Worker に作成して付けられます。

リソース分離モデル
リソース分離モデル

User Worker に KV 名前空間を追加する

この例では、KV 名前空間 を作成して User Worker に付ける手順を説明します。同じ手順で、他の バインディング にも付けられます。

1. KV 名前空間を作成する

Cloudflare API を使って KV 名前空間を作成します。

2. KV 名前空間を User Worker に付ける

Upload User 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'

これで User Worker は、env.USER_KV.get()env.USER_KV.put()、その他の KV メソッドを使い、env 引数から USER_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"]
  }'

役に立ちましたか?