OpenAICloudflare Developer Platform2026/05/29 0:00

Agents - Share sandbox previews through Cloudflare Tunnel

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

元記事

Quick Digest

要約

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

openaijamodel: gpt-5-mini-2025-08-07

Agents — Cloudflare Tunnelでサンドボックスプレビューを共有

Key Points

  • ゼロコンフィグで公開URL
  • 名前付きトンネルで永続URL
  • destroyで自動クリーンアップ

Summary

Cloudflare Agentsのサンドボックスから、コンテナ内で動くサービスをpublicプレビューURLで簡単に共有できるようになりました。サンドボックス内でcloudflaredが利用され、デフォルトはゼロコンフィグのquick tunnel(*.trycloudflare.com)を発行します。名前付きトンネルを使えばカスタムサブドメイン(CNAME + Cloudflare Tunnel)で永続的なプレビューを提供できます。sandbox.destroy()はトンネルとDNSレコードをコンテナと一緒に削除します。

Key Points

  • quick tunnel: sandbox.tunnels.get(port) は認証やDNS設定不要で https://*.trycloudflare.com の一時URLを返す。開発やWorkersデプロイに便利。
  • 名前付きトンネル: sandbox.tunnels.get(port, { name: "my-app-preview" }) で永続的なホスト名(例: https://my-app-preview.example.com)を割り当て可能。
  • 内部的に cloudflared を利用するため、exposePort() やカスタムドメインの事前設定無しで共有できる(quick tunnelの場合)。
  • 後片付け: sandbox.destroy() によりトンネルと関連DNSレコードを自動で破棄し、残置を防止。
  • アップグレード: @cloudflare/sandbox@latest を npm/yarn/pnpm/bun でインストールして最新APIを利用可能。

Quick usage (参考)

  • 一時URL: const tunnel = await sandbox.tunnels.get(8080)tunnel.url
  • 名前付き: const tunnel = await sandbox.tunnels.get(8080, { name: "my-app-preview" }) → 永続URL

実運用では名前付きトンネルでホスト名管理と再起動耐性を確保し、開発用途ではquick tunnelで素早く共有してください。

Full Translation

翻訳

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

openaijamodel: gpt-5-mini-2025-08-07

Agents - Cloudflare Tunnel を使ってサンドボックスのプレビューを共有

Agents — Cloudflare Tunnel を使ってサンドボックスのプレビューを共有

公開日: 2026-05-29

サンドボックスはコンテナ内で動作するサービスを公開プレビュー用の URL で公開できます。sandbox.tunnels 名前空間を使うと、SDK がサンドボックス内で cloudflared を利用しているため、exposePort() やカスタムドメインの設定なしで実行中のサービスを共有できます。既定では、sandbox.tunnels.get(port) はゼロコンフィグの *.trycloudflare.com URL を使ったクイックトンネルを作成します — Cloudflare アカウント、DNS レコード、カスタムドメインは不要です。これは素早い開発や .workers.dev 展開に最適です。

クイックトンネルの例

JavaScript / TypeScript 共通の例:

import { getSandbox } from "@cloudflare/sandbox" ;
const sandbox = getSandbox ( env . Sandbox , "my-sandbox" ) ;
await sandbox . startProcess ( "python -m http.server 8080" ) ;
const tunnel = await sandbox . tunnels . get ( 8080 ) ;
console . log ( tunnel . url ) ;
// → https://random-words-here.trycloudflare.com

名前付きトンネル (Named tunnels)

より細かい制御が必要な場合は、sandbox.tunnels.get(port, { name }) で名前付きトンネルを作成できます。名前付きトンネルはホスト名(<name>.<your-zone>)を Cloudflare Tunnel とゾーン上の CNAME レコードで紐付け、例えば https://my-app-preview.example.com のようになります。クイックトンネルが毎回ランダムな URL を生成するのに対し、名前付きトンネルはコンテナ再起動後も存続する永続的な URL を生成します。したがって、トンネルとオリジンを制御したい本番に近いユースケースに適しています。

JavaScript / TypeScript の例:

const tunnel = await sandbox . tunnels . get ( 8080 , { name : "my-app-preview" } ) ;
console . log ( tunnel . url ) ;
// → https://my-app-preview.example.com

sandbox.destroy() を呼び出すと、Cloudflare Tunnel と関連する DNS レコードがコンテナとともに削除されるため、トンネルやレコードが残置されることはありません。

アップグレード

最新バージョンに更新するには:

  • npm: npm i @cloudflare/sandbox@latest
  • yarn: yarn add @cloudflare/sandbox@latest
  • pnpm: pnpm add @cloudflare/sandbox@latest
  • bun: bun add @cloudflare/sandbox@latest

詳細な API は Sandbox tunnels reference を参照してください。


その他のリソース: API、Directory、Sponsorships、Open Source、Cloudflare Research、Help Center、System Status など。