Cloudflare Sandbox、named tunnel で永続プレビュー URL

292文字
1分
編集

Sandbox SDK 上で動くサービスを、コンテナ外へ公開する sandbox.tunnels が拡張された。SDK はサンドボックス内で cloudflared を起動し、exposePort() や独自ドメインの事前設定なしにプレビュー URL を返す。エージェントや CI 的ワークロードでコンテナ内の HTTP サーバーを一時共有する利用者向けである。

既定の sandbox.tunnels.get(port) は quick tunnel を生成し、*.trycloudflare.com の URL を返す。Cloudflare アカウント、DNS レコード、カスタムドメインは不要で、.workers.dev へのデプロイや手元の試行に向く。

sandbox.tunnels.get(port, { name }) で named tunnel を作成すると、Cloudflare Tunnel とゾーン上の CNAME レコードに紐づく固定ホスト名(例: https://my-app-preview.example.com)が得られる。quick tunnel が起動のたびにランダム URL になるのに対し、named tunnel はコンテナ再起動後も同じ URL を維持する。本番に近いプレビュー配信で URL を固定したい場合に向く。

sandbox.destroy() 呼び出し時に Cloudflare Tunnel と関連 DNS レコードも併せて破棄され、孤立したトンネルやレコードが残らない。

最新版へは pnpm add @cloudflare/sandbox@latest

javascript
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, { name: "my-app-preview" });

console.log(tunnel.url); // → https://my-app-preview.example.com

#参考文献