ClaudeCloudflare Developer Platform2026/03/26 0:00

Containers - Easily connect Containers and Sandboxes to Workers

要点だけを先に読めるように短く再構成したセクションです。

元記事

Quick Digest

要約

要点だけを先に読めるように短く再構成したセクションです。

claudejamodel: claude-sonnet-4-20250514

Containers と Sandboxes が Workers への直接 HTTP 接続をサポート

Key Points

  • Containers から Workers への直接 HTTP 接続が可能に
  • KV や R2 などのバインディングにアクセス可能
  • Durable Object 状態との連携をサポート

Summary

Cloudflare の Containers と Sandboxes が Workers への直接 HTTP 接続をサポートし、コンテナ内から Workers の関数や KV、R2 などのバインディングを呼び出せるようになりました。

Key Points

  • アウトバウンドハンドラー: outboundoutboundByHost を使用して HTTP リクエストをキャプチャし、Workers 関数を実行
  • バインディングアクセス: コンテナから標準的な HTTP リクエストで KV や R2 などの Workers バインディングにアクセス可能
  • Durable Object 連携: ctx.containerId を使用してコンテナ専用の Durable Object 状態にアクセス
  • セキュリティ: HTTP トラフィックは同一マシン上で安全に実行、HTTPS インターセプトは近日対応予定
  • 利用開始: @cloudflare/containers v0.2.0 以降または @cloudflare/sandbox v0.8.0 以降にアップグレードが必要

Full Translation

翻訳

原文の流れを保ったまま読める翻訳セクションです。

claudejamodel: claude-sonnet-4-20250514

Containers - ContainerとSandboxをWorkersに簡単に接続

ContainerとSandboxをWorkersに簡単に接続

2026年3月26日

ContainerとSandboxがHTTP経由でWorkersに直接接続することをサポートしました。これにより、特定のホスト名でコンテナ内からWorkers関数やKVやR2などのbindingsを呼び出すことができます。

Workerコードの実行

任意のHTTPリクエストをキャプチャするoutboundハンドラーを定義するか、個別のホスト名とIPへのリクエストをキャプチャするoutboundByHostを使用します。

export class MyApp extends Sandbox {}

MyApp.outbound = async (request, env, ctx) => {
  // 任意のHTTPリクエストでWorkerで定義された任意の関数を実行できます
  return await someWorkersFunction(request.body);
};

MyApp.outboundByHost = {
  "my.worker": async (request, env, ctx) => {
    return await anotherFunction(request.body);
  },
};

この例では、コンテナからhttp://my.workerへのリクエストはoutboundByHost内で定義された関数を実行し、その他のHTTPリクエストはoutboundハンドラーを実行します。これらのハンドラーはコンテナサンドボックスの外側で、完全にWorkersランタイム内で実行されます。

TLSサポートは近日公開予定

ContainerとSandboxは現在HTTPトラフィックのみをインターセプトします。HTTPSインターセプションは近日公開予定です。これにより、認証情報の注入のためにWorkersを透過プロキシとして使用できるようになります。

これはHTTPを使用しているだけですが、Workersへのトラフィックは安全で、コンテナと同じマシン上で実行されます。必要に応じて、Worker自体からリクエストをTLSにアップグレードすることもできます。

Workers bindingsへのアクセス

各ハンドラーはenvにアクセスできるため、Wrangler configで設定された任意のbindingを呼び出すことができます。コンテナ内のコードはそのホスト名に標準的なHTTPリクエストを行い、outbound Workerがそれをbinding呼び出しに変換します。

export class MyApp extends Sandbox {}

MyApp.outboundByHost = {
  "my.kv": async (request, env, ctx) => {
    const key = new URL(request.url).pathname.slice(1);
    const value = await env.KV.get(key);
    return new Response(value ?? "", {
      status: value ? 200 : 404
    });
  },
  "my.r2": async (request, env, ctx) => {
    const key = new URL(request.url).pathname.slice(1);
    const object = await env.BUCKET.get(key);
    return new Response(object?.body ?? "", {
      status: object ? 200 : 404
    });
  },
};

これで、コンテナサンドボックス内からcurl http://my.kv/some-keyでWorkers KVにアクセスし、curl http://my.r2/some-objectでR2にアクセスできます。

Durable Object状態へのアクセス

ctx.containerIdを使用して、コンテナの自動プロビジョニングされたDurable Objectを参照します。

export class MyContainer extends Container {}

MyContainer.outboundByHost = {
  "get-state.do": async (request, env, ctx) => {
    const id = env.MY_CONTAINER.idFromString(ctx.containerId);
    const stub = env.MY_CONTAINER.get(id);
    return stub.getStateForKey(request.body);
  },
};

これにより、任意のコンテナインスタンスと状態を関連付ける簡単な方法が提供され、組み込みのSQLiteデータベースが含まれます。

今すぐ始める

outbound Workersを使用するには、@cloudflare/containersバージョン0.2.0以降、または@cloudflare/sandboxバージョン0.8.0以降にアップグレードしてください。詳細と例については、Containers outbound trafficとSandboxes outbound trafficを参照してください。