Cloudflare Temporary Deploy
wrangler --temporary を使って、アカウントなしで Worker を公開します。
skill の情報
| 提供元 | 追加で入れるもの — hermes skills install official/web-development/cloudflare-temporary-deploy で導入します |
| パス | optional-skills/web-development/cloudflare-temporary-deploy |
| バージョン | 1.0.0 |
| 作者 | Hermes Agent |
| ライセンス | MIT |
| 対応プラットフォーム | linux, macos, windows |
| タグ | cloudflare, workers, wrangler, deploy, temporary, agent, serverless, web-development |
参考: SKILL.md 全文
Cloudflare Temporary Deploy Skill
wrangler deploy --temporary を使って、アカウントの用意なしに Cloudflare Worker を workers.dev の公開 URL へ出します。Cloudflare が使い捨てのアカウントを用意して公開し、60 分だけ有効な引き取り用の URL を表示します。引き取られなかったアカウントは自動で消えます。おかげでエージェントは、OAuth もサインアップもトークンの貼り付けもなしに、書く → 公開する → 確かめる、という短い輪を回せます。
この skill は本番向けの公開は扱いません(そちらは wrangler login と恒久的なアカウントを使ってください)。また、下にある一時アカウントの上限を超えるような、Worker 以外の Cloudflare 製品も対象外です。
こんなときに使います
次のような場面で、この skill を読み込みます。
- エージェントが書いたコードを公開 URL に出したい、しかも先に Cloudflare のアカウントを作りたくない — 「これを公開してリンクをちょうだい」
- 裏で自動的に進むセッションで反復したい — ブラウザでの OAuth があると、そこで止まってしまいます
- Workers を手早く試したい・評価したい — 使い捨てで、あとから引き取れる先が要るとき
- 自分で確かめられる公開の輪を作りたい — 公開して、公開 URL を
curlして、コードどおりの出力かを確かめて、また公開する
こんなときは使いません
- 本番や CI/CD → 恒久的なアカウントを使ってください(
wrangler loginかCLOUDFLARE_API_TOKEN)。資格情報がひとつでもあると--temporaryはエラーになります。 - wrangler がすでに認証済み →
--temporaryは仕様どおりエラーを返します。使い捨てで公開したいと本人がはっきり望むときだけ、先にwrangler logoutを実行してください。 - 長く置いておきたい → 一時的な公開は、引き取らなければ 60 分で消えます。
事前に必要なもの
- Wrangler 4.102.0 以上。
--temporaryが入ったのがこの版です。これより古い版にはありません。npx wrangler@latest --versionで確かめます。 - Node 18 以上と npm(
npx、yarn、pnpmでも構いません)。全体への導入は不要で、npx wrangler@latestで動きます。 - Cloudflare の資格情報が無いこと。
--temporaryは wrangler が未認証のときだけ動きます。OAuth でのログイン、環境変数のCLOUDFLARE_API_TOKEN/CLOUDFLARE_API_KEY、~/.wrangler/~/.config/.wranglerに残った OAuth の情報、どれも無い状態にしてください。terminalツールの環境はそのまま使い、これらの変数を設定しないでください。 cloudflare.comとworkers.devへの通信ができること。--temporaryを使うことは、Cloudflare の利用規約とプライバシーポリシーに同意することにあたります。
実行のしかた
どの手順も terminal ツールで行います。版は必ず固定してください(wrangler@latest か wrangler@4.102.0 以上)。そうしないと、このフラグを持たない古い wrangler がうっかり動いてしまいます。
- 最小構成の Worker を用意します(すでにプロジェクトがあれば飛ばします)。Worker には
wrangler.toml(またはwrangler.jsonc)と、入口になるスクリプトが要ります。TypeScript での最小例は次のとおりです。write_fileで書き出してください。
wrangler.jsonc: ``jsonc { "name": "hello-agent", "main": "src/index.ts", "compatibility_date": "2025-01-01" } ``
src/index.ts: ``typescript export default { async fetch(): Promise<Response> { return new Response("hello cloudflare"); }, }; ``
- プロジェクトのディレクトリで
--temporaryを付けて公開します:
npx wrangler@latest deploy --temporary 計算量による確認が入るため、自動で少し待ちが入ります。うまくいくと wrangler が Account: <name> (created)(あるいは (reused))の行、Claim URL、そして公開された https://<worker>.<account>.workers.dev の URL を表示します。
- その出力から URL を取り出します。 目で拾わず、付属のスクリプトで確実に抜き出してください:
npx wrangler@latest deploy --temporary 2>&1 | python3 scripts/parse_deploy_output.py (scripts/parse_deploy_output.py は、この skill の絶対パスに読み替えてください。){"live_url", "claim_url", "account", "account_state", "expires_minutes", "deployed"} という JSON が出力されます。
- 本当に公開できているかを確かめます — 公開時のログだけを信じないでください。公開 URL を
curlして、本文がコードの返す内容と一致するかを見ます:
curl -sS <live_url>- 繰り返します。 コードを直したら、同じ
npx wrangler@latest deploy --temporaryでもう一度公開します。60 分のあいだは wrangler が一時アカウントを使い回すので(Account: <name> (reused))、URL は変わりません。もう一度curlして、変更が反映されたかを確かめます。
- 引き取り用の URL をユーザーに渡します。 次のことを伝えてください。60 分以内に開けば、公開したものと関連する資源をそのまま保持できます。引き取らなければ、すべて自動で消えます。この URL はアカウントの所有権そのものなので、秘密として扱ってください。
早見表
| 手順 | コマンド | |
|---|---|---|
| 版を確かめる(4.102.0 以上が必要) | npx wrangler@latest --version |
|
| 公開する(アカウント不要) | npx wrangler@latest deploy --temporary |
|
| 公開して URL を取り出す | `npx wrangler@latest deploy --temporary 2>&1 \ | python3 scripts/parse_deploy_output.py` |
| 公開できたか確かめる | curl -sS <live_url> |
|
| 使い回している一時アカウントを消す | npx wrangler@latest logout |
一時アカウントでの製品ごとの上限
| 製品 | 一時アカウントでの上限 |
|---|---|
| Workers | workers.dev へ公開できます |
| Static Assets | 1,000 ファイルまで、1 つ 5 MiB まで |
| KV | 使えます |
| D1 | データベース 1 つ、1 つあたり 100 MB / 合計 100 MB |
| Durable Objects | 使えます |
| Hyperdrive | 設定 2 つ、接続 10 本 |
| Queues | 10 個まで |
| SSL/TLS の証明書 | 使えます |
つまずきやすいところ
--temporaryはwrangler deploy --helpに出てこず、全体で使えるフラグでもありません。 わざと隠されていて、必要なときだけ出てきます。未認証でwrangler deployが失敗すると、wrangler が「--temporaryを付けて実行し直してください」と表示します。--helpに無いからといって、フラグが存在しないと決めつけないでください。確かめるのは版のほうです。- 古い wrangler が入っている。 全体に入れたままの古い
wrangler(< 4.102.0)には、黙ってこのフラグがありません。版をこちらで決められるよう、必ずnpx wrangler@latest(または>=4.102.0を固定したもの)で呼び出してください。 - 資格情報があると、はっきりエラーになります。 一度でも
wrangler loginを実行していたり、CLOUDFLARE_API_TOKEN/CLOUDFLARE_API_KEYが設定されていたりすると、--temporaryはエラーになります。そのシェルで変数を解除するか、wrangler logoutを実行してください。断りなく本人の資格情報を消してはいけません。 - 回数の制限。 一時アカウントを立て続けに作ると失敗します。新しく作り直さず、60 分のあいだは使い回しているアカウントへ公開し直してください。制限に当たったら、待つか、恒久的なアカウントを使います。
- 60 分でぴったり切れます。延長はできません。 1 時間より長く残す必要があるなら、ユーザーに引き取ってもらうしかありません。ここははっきり伝えてください。
- 公開し直した直後、
curlが古い本文を返すことがあります。workers.devには短いエッジのキャッシュがあります。(reused)の行と新しいCurrent Version IDが出ていれば、数秒のあいだcurlが古い内容を見せても、公開は成功しています。失敗と決める前に、もう一度取得し直すか、キャッシュ避けのクエリ文字列を付けてください。 - 引き取り用の URL を「ただのリンク」として共有の記録に残さないでください。 資格情報と同じものです。
確認
npx wrangler@latest --versionが>= 4.102.0を返す。npx wrangler@latest deploy --temporaryがworkers.devの公開 URL と、claim-preview?claimToken=を含む引き取り用の URL を表示する。curl -sS <live_url>が、Worker のコードどおりの本文を返す。- 2 回目の公開で
Account: <name> (reused)と表示され、公開 URL が変わらない。 - 取り出し用スクリプトの自己確認が通る:
python3 scripts/parse_deploy_output.py --selftest。