Cloudflare

Cloudflare Workers の環境構築と自動デプロイ手順

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

前提条件と環境準備

このセクションでは、Cloudflare Workers をローカルで動作させるために最低限必要なツールとアカウントの取得手順を解説します。Node.js と npm(または Yarn)が正しくインストールされていないと wrangler コマンドが実行できず、以降のすべての作業が失敗するため、最初に環境構築を完了させることが重要です。

必要なツール

  • Node.js(v18 以上)
  • npm(標準付属)または Yarn(任意)
  • Cloudflare アカウント(無料で作成可能)

Node.js のインストール(公式・パッケージマネージャ推奨)

Node.js を tar 圧縮から展開して手動配置する方法は保守性が低く、バイナリの更新やパス設定にミスが起きやすいです。ここでは OS 別に公式インストーラまたは主流パッケージマネージャを利用したインストール例を示します。

OS 推奨インストール方法 コマンド例
macOS (Intel/Apple Silicon) Homebrew で管理するとアップデートが容易 brew install node@18
brew link --overwrite node@18
Linux (Ubuntu/Debian系) apt 経由で公式リポジトリを追加 bash<br># NodeSource のセットアップスクリプトを取得<br>curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -<br>sudo apt-get install -y nodejs<br>
Windows 公式 MSI インストーラ(インタラクティブ) をダウンロードして実行 https://nodejs.org/dist/v18.x/node-v18.20.0-x64.msi

バージョン確認

ポイント
- nvm(Node Version Manager)を利用すれば複数バージョンの切り替えが簡単です。
- インストール後は必ず PATH が正しく通っていることを which node で確認してください。


Wrangler CLI のインストールと認証方法

Wrangler は Cloudflare Workers 用の公式 CLI です。最新バージョンは npm パッケージとして配布されており、グローバルにインストールした後 OAuth 認証 または API Token による非対話モードで認証できます。

インストール

認証オプション

方法 実行コマンド・手順 主な利用シーン
OAuth(対話型) wrangler login
ブラウザが起動し、Cloudflare アカウントでログインすると自動的にトークンが保存されます。
ローカル開発・手動デプロイ
API Token(非対話型) 1. Cloudflare ダッシュボード > My Profile > API Tokens → 「Create Token」→「Edit Cloudflare Workers」権限を付与
2. 発行したトークンを環境変数 CLOUDFLARE_API_TOKEN に設定
bash\nexport CLOUDFLARE_API_TOKEN=YOUR_TOKEN # シェルに永続化する場合は ~/.bashrc 等へ追記\nwrangler whoami # トークンが有効か確認\n
CI/CD、GitHub Actions など自動デプロイ環境

注意: wrangler login --api-token は現在非推奨です。代わりに上記の環境変数または wrangler config コマンドでトークンを設定してください。


プロジェクト作成と wrangler.toml 設定

テンプレート生成から wrangler.toml の必須項目まで、プロジェクトの土台を正しく構築することがデプロイ成功の鍵です。特に compatibility_date は毎月更新しないと「エンジンバージョンが古い」エラーが発生します。

テンプレート生成

src/ 配下に index.js または index.ts が生成され、基本的な package.json も自動作成されます。

wrangler.toml の主要項目と自動更新スクリプト

毎月の compatibility_date 自動更新例(GitHub Actions 用)

ポイント
- sed コマンドで行単位の置換を行うだけなので、CI の実行環境に依存しません。
- git-auto-commit-action により自動的にリポジトリへプッシュされるので、次回デプロイ時には常に最新の日付が使用されます。


ハンドラ実装とローカルテスト

Workers のエントリポイントは fetch イベントです。ここでは最小構成のハンドラを TypeScript と JavaScript 両方で示し、wrangler dev によるローカルテスト手順も併せて解説します。

fetch ハンドラ(TypeScript)

JavaScript バージョン

ローカル開発サーバー

  • デバッグconsole.log をコードに埋め込み、ターミナル上でリアルタイムに確認できます。
  • wrangler dev --local で純粋な Node.js 環境だけを使うことも可能です(Edge ランタイムの差異検証向け)。

デプロイ手順と npm スクリプト

ローカルテストが完了したら 本番環境へデプロイします。wrangler publish が直接デプロイを行い、npm スクリプトでラップすれば CI でも同一コマンドを利用できます。

package.json にスクリプトを追加

手動デプロイ

デプロイ前のチェックポイント

  1. npm run build で TypeScript のコンパイルエラーが無いか確認。
  2. wrangler secret list で必要なシークレットがすべて登録済みか検証。

CI/CD 自動デプロイ(GitHub Actions)とトラブルシューティング

CI 環境では対話型認証が使えないため、API Token環境変数 を組み合わせた非対話モードでのデプロイが標準です。また、compatibility_date の自動更新も同じワークフローに統合できます。

完全版 GitHub Actions ワークフロー

シークレット管理のベストプラクティス

  • API TokenCLOUDFLARE_API_TOKEN)は Edit Cloudflare Workers 権限だけを付与し、最小権限の原則に従います。
  • Workers のシークレットwrangler secret put <NAME> で事前に登録し、GitHub Actions 側では同名環境変数として参照します(例: API_KEY)。

よくあるエラーと対処法

エラー 主な原因 推奨対策
Authentication failed (wrangler whoami がエラー) トークンの権限不足、シークレット未設定、または名前ミス Cloudflare ダッシュボードで Edit Cloudflare Workers 権限を持つトークンを再作成し、GitHub の CLOUDFLARE_API_TOKEN に正しく登録
compatibility_date is required wrangler.toml が空白やフォーマットエラーになっている YYYY-MM-DD 形式で必ず設定。CI では上記の sed スクリプトで自動更新を組み込む
Secret not found (wrangler secret get) Workers 側にシークレットが未登録、または名前相違 ローカルで wrangler secret put <NAME> を実行し、GitHub Actions の env でも同名変数を使用
Build failed (tsc error) TypeScript の型エラーや依存パッケージ未インストール ローカルで npm run build(dry-run)を先に走らせ、コンパイルエラーをすべて解消

ポイント:CI のログはそのまま対処法のヒントになることが多いです。エラーメッセージをコピーして公式ドキュメントや GitHub Issues を検索すると迅速に原因が特定できます。


まとめ

  • Node.js は公式インストーラまたは Homebrew / apt 等のパッケージマネージャで導入し、バージョン管理ツール (nvm など) の活用を推奨。
  • Wrangler CLI は npm グローバルインストール後、OAuth(対話型)か API Token(非対話型)で認証。CI 環境では環境変数 CLOUDFLARE_API_TOKEN を使用。
  • プロジェクト作成は wrangler init … --type=javascript|typescriptwrangler.toml の必須項目は namecompatibility_datevars/secret。毎月の compatibility_date は GitHub Actions のスクリプトで自動置換可能。
  • ハンドラ実装は fetch イベントをエクスポートし、wrangler dev でローカルテスト。デバッグは console.log が有効。
  • デプロイは wrangler publish(または npm script)で実行。--dry-run を活用すればビルドエラーを事前に検出できる。
  • CI/CD は GitHub Actions で API Token 認証+自動 compatibility_date 更新を組み合わせ、シークレットは Cloudflare と GitHub の二重暗号化で安全に管理。
  • トラブルシューティングはエラーメッセージを手掛かりに、上表の対策を順に試すと速やかに復旧できる。

以上のフローを実行すれば、Cloudflare Workers の開発・テスト・本番デプロイが一貫した手順で完了し、継続的インテグレーション/デリバリーまで自動化できます。ぜひ実際に試して、サーバーレス開発の生産性向上を体感してください。

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Cloudflare