はじめに
Wrangler(Workers CLI)を使って Cloudflare Workers を試してみる。
Wrangler のインストール
% npm install -g wrangler
Cloudflare の認証
2 段階認証にもたもたしてたらタイムアウトしてしまった。
% wrangler login
⛅️ wrangler 2.0.5
-------------------
Attempting to login via OAuth...
✘ [ERROR] Timed out waiting for authorization code, please try again.
もう一度。
% wrangler login
⛅️ wrangler 2.0.5
-------------------
Attempting to login via OAuth...
ブラウザが起動し、ログイン、2 段階認証を通過すると以下の画面になるので、問題なければ[Allow]をクリック。
承認。
プロジェクトの作成
% wrangler init my-worker -y
中身確認。
% ls -1F my-worker
node_modules/
package-lock.json
package.json
src/
tsconfig.json
wrangler.toml
% cat my-worker/src/index.ts
/**
* Welcome to Cloudflare Workers! This is your first worker.
*
* - Run `wrangler dev src/index.ts` in your terminal to start a development server
* - Open a browser tab at http://localhost:8787/ to see your worker in action
* - Run `wrangler publish src/index.ts --name my-worker` to publish your worker
*
* Learn more at https://developers.cloudflare.com/workers/
*/
export default {
async fetch(request: Request): Promise<Response> {
return new Response("Hello World!");
},
};
ローカルで実行
% cd my-worker
% wrangler dev # または npm start
> [email protected] start
> wrangler dev
⛅️ wrangler 2.0.5
-------------------
⬣ Listening at http://localhost:59598
╭────────────────────────────────────────────╮
│ [b] open a browser, [d] open Devtools, [l] turn off local mode, [c] clear console, [x] to exit │
╰────────────────────────────────────────────╯
デプロイ
% wrangler publish # または npm run publish
⛅️ wrangler 2.0.5
-------------------
Uploaded my-worker (0.61 sec)
Published my-worker (3.61 sec)
my-worker.oppara.workers.dev
動作確認
% curl https://my-worker.oppara.workers.dev
Hello World!
ログが見れる。
% wrangler tail
⛅️ wrangler 2.0.5
-------------------
Successfully created tail, expires at 2022-05-17T20:19:21Z
Connected to my-worker, waiting for logs...
GET https://my-worker.oppara.workers.dev/ - Ok @ 5/17/2022, 11:19:47 PM
参考サイト
環境
% wrangler --version
2.0.5
% sw_vers
ProductName: macOS
ProductVersion: 12.3.1
BuildVersion: 21E258