5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloudflare Workersに「一時アカウント」機能が来たので、ログインなしでデプロイして、ついでにミニゲームも作ってみた

5
Last updated at Posted at 2026-08-27

Cloudflareのブログで、AIエージェント向けの新機能「Temporary Accounts」が発表されました。

事前のアカウント登録もOAuthもMFAもAPIトークンのコピペも無し、wrangler deploy --temporary一発でWorkerをデプロイできて、60分以内にクレームすれば普通のCloudflareアカウントに昇格させられるという内容です。早速触ってみました。

環境

  • mise 2026.7.7
  • Node.js v22.17.0
  • wrangler 4.126.0(miseでプロジェクトスコープに導入)

wranglerはnpm install -gせず、miseのnpmバックエンドでプロジェクト直下に入れました。

mise use npm:wrangler

これでプロジェクト直下にmise.tomlができて、以降はmise exec -- wrangler ...で実行できます。

mise.toml
[tools]
"npm:wrangler" = "4.126.0"

miseのnpmバックエンドはNode.js自体は入れてくれないので、そこだけ別途用意しておく必要があります。

一時アカウントでデプロイしてみた

まずは最小構成のHello World的なWorkerで試します。

src/index.js
export default {
  async fetch(request) {
    return new Response("Hello from a Cloudflare Workers temporary account! 🎉", {
      headers: { "content-type": "text/plain; charset=UTF-8" },
    });
  },
};

wrangler loginは一切せず、いきなりこれを叩きます。

wrangler deploy --temporary
Temporary account ready:
	Account: Uttermost Tarp (created)
	Claim within: 60 minutes
	Claim URL: https://dash.cloudflare.com/claim-preview?claimToken=xxxxxxxxxxxxxxxxxxxx
Total Upload: 0.30 KiB / gzip: 0.24 KiB
Worker Startup Time: 4 ms
Uploaded temp-account-demo (0.98 sec)
Deployed temp-account-demo triggers (0.66 sec)
  https://temp-account-demo.uttermost-tarp.workers.dev

"Uttermost Tarp"というランダムな名前のアカウントがその場で作られて、公開URLまで一気に発行されました。ログインなしで、ほんとにデプロイできました。

すごい。

アクセスすると、ちゃんとレスポンスが返ってきます。

Hello from a Cloudflare Workers temporary account! 🎉

このアカウントは60分間だけ有効で、その間に発行されたClaim URLを開くと既存または新規のCloudflareアカウントに昇格できます。何もしなければ60分後に自動で消えるだけなので、お試し用途には気楽に使えそうです。

ついでにゲームも作ってデプロイしてみた

ブログの導入部、「AIエージェントはブラウザのOAuthもダッシュボードもMFAも突破できずデプロイに詰まる」という話がわりと面白かったので、それをそのままゲームにしてみることにしました。

「Agent Escape」というCanvasの横スクロールゲームで、OAuth・MFA・Dashboard・Token Copy-Pasteという名前の壁がどんどん飛んでくるので、ジャンプで避けながら生き延びるだけの内容です。ゲーム内の制限時間は60秒で、これは一時アカウントの「60分のClaimウィンドウ」に見立てています。

const OBSTACLE_LABELS = ['OAuth', 'MFA', 'Dashboard', 'Token Copy-Paste'];

function spawnObstacle() {
  const label = OBSTACLE_LABELS[Math.floor(Math.random() * OBSTACLE_LABELS.length)];
  obstacles.push({ x: W + 20, y: groundY - h, w: 34 + label.length * 3, h, label, passed: false });
}

HTML・CSS・JSを全部1つのWorkerからそのまま返す構成にしたので、KVもD1も使わず一時アカウントだけで完結します。これも同じコマンドでデプロイ。

wrangler deploy --temporary
Temporary account ready:
	Account: Uttermost Tarp (reused)
	Claim within: 55 minutes
	Claim URL: https://dash.cloudflare.com/claim-preview?claimToken=xxxxxxxxxxxxxxxxxxxx
Deployed agent-escape triggers (0.95 sec)
  https://agent-escape.uttermost-tarp.workers.dev

さっきの一時アカウントがそのまま再利用されました。同じアカウント内なら複数Workerをホイホイ生やせるようです。

タイトル画面はこんな感じ。

image.png

スタートすると、OAuthやMFAの壁がジャンプで避けるべき障害物として飛んできます。

image.png

壁に当たると素直にゲームオーバー。認証の壁、避けられませんでした。。

image.png

デプロイ後、Playwrightのヘッドレスブラウザで実際にアクセスして動作確認していたら、コンソールにTypeError: obstacles is not iterableというエラーが出ていました。

原因を見てみると、タイトル画面(スタートボタンを押す前のidle状態)でも描画ループ自体は毎フレーム回っていて、obstacles変数がまだundefinedのままfor...ofに突っ込まれていました。変数宣言のところで初期値を渡していなかっただけです。

- let agent, obstacles, speed, score, spawnTimer, elapsedMs, best = 0;
+ let agent = { x: 70, y: groundY - 34, w: 30, h: 34, vy: 0, onGround: true };
+ let obstacles = [];
+ let speed = 4.2, score = 0, spawnTimer = 0, elapsedMs = 0, best = 0;

初期値を持たせて直したら、コンソールエラーは消えました。再デプロイして、上のスクリーンショットはこの修正後のバージョンです。

まとめ

ログインなし、OAuthなし、トークンのコピペなしで、コードを書いてからデプロイしてブラウザで確認するところまでノンストップでいけました。今回はゲームのバグをPlaywrightで見つけて直して再デプロイという一連の流れも、人間のアカウント操作を一切挟まずに完結しています。エージェント的な「直す→デプロイ→確認」のループを回すのに、これくらい摩擦が無いのはなかなか快適でした。

おまけ

このブログを書いている時点で、上のClaim URLはもう有効期限切れです。デプロイしたURL自体も、Claimしなければ60分後に消えます。気になった方は同じ手順で自分の一時アカウントを作って試してみてください。

参考


本記事は100%生成AIで書きました!

詳細はこちら

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?