アカウントを選択して進みます。
R2 のホーム画面が表示されます。
モーダルが開きます。以下を入力:
| 項目 | 入力値 |
|---|---|
| Bucket name | |
| Region |
→ リージョンは東京(asia-tokyo)を含む APJC を選択
[Create bucket] で確定。
parky が表示され、「Settings」タブが見える状態になります。
[Create API token] をクリック
📝 Token 設定:
| 項目 | 値 |
|---|---|
| Token name | |
| Permissions | |
| TTL |
Token 作成後、以下の 3 つの値が画面に表示されます。すべて安全に保管してください:
📌 必要な値:
| 環境変数 | コピー元 | 説明 |
|---|---|---|
R2_ACCESS_KEY_ID |
Token 画面の「Access Key ID」 | API 認証用 ID(秘密) |
R2_SECRET_ACCESS_KEY |
Token 画面の「Secret Access Key」 | API 認証用シークレット(秘密) |
R2_ENDPOINT |
Token 画面の「S3 API Endpoint」 | 例:https://[account-id].r2.cloudflarestorage.com |
.env ファイルは .gitignore に含めてください。
プロジェクトの api/wrangler.toml の以下の行をコメント解除:
(行頭の # を削除)
parky バケットが表示されている.env に 4 つの R2 環境変数が設定されているwrangler.toml の R2 バインディングがコメント解除されている[Create Hyperdrive] ボタンをクリック
| 項目 | 入力値 |
|---|---|
| Name | |
| Database Type |
別タブで Supabase Dashboard を開きます:
📋 以下を確認・コピー:
| 項目 | Supabase での位置 | 例 |
|---|---|---|
| Mode | Connection pooler > Mode ドロップダウン | Transaction |
| Port | 自動表示 | 6543 |
| Host | pooler ホスト(コピーボタン有) | db.xxxxx.supabase.co |
| User | User フィールド | postgres.[project-ref] |
| Password | Database password(Project Settings > Database) | あなたの DB パスワード |
| Database | 固定値 | postgres |
Cloudflare の Hyperdrive 作成画面に以下を入力:
| Hyperdrive フィールド | 入力値(Supabase から) |
|---|---|
Hostname |
|
Port |
|
Database |
|
User |
|
Password |
[Create Hyperdrive] で確定後、ダッシュボードに戻ります。
作成された Hyperdrive をクリックし、詳細ページの右上または URL から ID を確認:
この ID を以下に記録してください:
プロジェクトの api/wrangler.toml で以下を有効化:
(行頭の # を削除し、ID を記入)
parky-db が表示されているwrangler.toml の Hyperdrive バインディングがコメント解除され、ID が入力されている[Create Queue] ボタンをクリック
キュー 1:ストア同期ジョブ用
| 項目 | 値 |
|---|---|
| Queue name |
→ [Create Queue] でキュー作成
失敗メッセージを保存するキューを作成(オプションですが推奨):
プロジェクトの api/wrangler.toml で以下を有効化:
(行頭の # を削除)
各設定の説明:
| 設定項目 | 値 | 説明 |
|---|---|---|
max_batch_size |
10 | 一度に処理するメッセージ数(最大) |
max_batch_timeout |
30 | メッセージ蓄積待機時間(秒)。これを超えたら処理開始 |
max_retries |
3 | 失敗時のリトライ回数(3 回失敗後は DLQ へ) |
dead_letter_queue |
parky-store-sync-dlq | 失敗メッセージ移動先(DLQ を作成済みの場合) |
すべてのリソース設定が完了したら、デプロイします:
✅ デプロイ後の確認:
wrangler tail --env dev202 Accepted + sync_run_id が返ってくるparky-store-sync が表示されているparky-store-sync-dlq も表示されている(DLQ 作成時)wrangler.toml の Queues セクションがコメント解除されているwrangler deploy でエラーなし)202 が返される以下のすべてが設定されているか確認:
すべてのバインディングが有効化されているか確認:
※ すべて行頭の # が削除されているか確認
✅ 完了メッセージが表示されれば成功
リアルタイムログが流れます。Ctrl+C で終了。
エラーメッセージがないか確認
キャッシュミドルウェア テスト:
レスポンスヘッダーに以下が含まれているか確認:
ストア同期 Trigger テスト:
レスポンス例:
各 Cloudflare ダッシュボードでリアルタイム監視:
| リソース | ダッシュボード | 確認ポイント |
|---|---|---|
| R2 | Workers > R2 > parky | Object count が増えているか |
| Hyperdrive | Workers > Hyperdrive > parky-db | Status が「Connected」か、Query count が増えているか |
| Queues | Workers > Queues > parky-store-sync | Message count が増えて処理されているか |
| Analytics | Workers > parky-api-dev > Analytics | Request count、Error rate をチェック |
原因: API キーが無効 or 期限切れ
対処:
.env を更新wrangler deploy --env dev 再実行原因: Postgres 接続不可 or 認証エラー
対処:
原因: Consumer が起動していない or コンシューマーコードにバグ
対処:
wrangler logs --env dev でエラーを確認api/src/queue/store-sync.ts のエラーハンドリングを確認原因: wrangler.toml のバインディングがコメント状態のまま
対処:
api/wrangler.toml を開く[[env.dev.r2_buckets]], [[env.dev.hyperdrive]], [[env.dev.queues.*]] の行頭 # を削除wrangler deploy --env dev原因: Worker コードエラー or 外部依存(DB など)がダウン
対処:
wrangler tail --env dev でエラーメッセージを確認wrangler dev --env dev テストGenerated: 2026-04-18