Skip to content

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

Dynamic Workers Starter

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

Dynamic Workers を読み込んで実行する Worker をデプロイするための スターターテンプレート です。

Workers にデプロイ

できること

このテンプレートは、Worker Loader API を使って実行時にコードを実行する方法を示します。ホスト Worker は /api/run エンドポイントを公開し、フロントエンドから受け取ったコードをサンドボックス化された Dynamic Worker に読み込み、結果を返します。

アクション完了のためにコード断片の実行が必要な AI エージェントでは、このパターンを使います。

設定

Wrangler ファイルに worker_loaders バインディングを追加します。

{
	"worker_loaders": [
		{
			"binding": "LOADER"
		}
	]
}
[[worker_loaders]]
binding = "LOADER"

Dynamic Worker の読み込みと実行

この例では、次を行います。

  • env.LOADER.load() が一回限りの動的 isolate を作成します
  • globalOutbound: null が Dynamic Worker からの外向きネットワークアクセスをすべて遮断します
export default {
	async fetch(request, env) {
		const { code } = await request.json();

		const worker = env.LOADER.load({
			compatibilityDate: "2026-05-01",
			mainModule: "worker.js",
			modules: {
				"worker.js": code,
			},
			// Block all outbound network access
			globalOutbound: null,
		});

		const result = await worker.getEntrypoint().fetch(request);
		return result;
	},
};
export default {
	async fetch(request, env): Promise<Response> {
		const { code } = await request.json();

		const worker = env.LOADER.load({
			compatibilityDate: "2026-05-01",
			mainModule: "worker.js",
			modules: {
				"worker.js": code,
			},
			// Block all outbound network access
			globalOutbound: null,
		});

		const result = await worker.getEntrypoint().fetch(request);
		return result;
	},
} satisfies ExportedHandler;

ローカル実行

npm install
npm run dev

役に立ちましたか?