Closed5
Honoで環境変数を使いCloudflareにデプロイする

Honoで環境変数を使う場合、Honoの公式ドキュメントには開発環境の話だけで、本番環境での適用はCloudflareのドキュメントを案内している。
そのため、npm create hono@latest my-app
に環境変数を追加した場合、npm run deploy
では環境変数が反映されないことがわかりづらい(こちらは解決済み。後述)のと、そもそも環境変数を含めたデプロイの方法がわからないように思える。
ので、具体的な手順を模索する。
コードは以下にある。

Hello Hono!
を${c.env.MY_CALL} ${c.env.MY_NAME}!
にしたサンプルを作成した。
ローカル開発環境では.dev.vars
を配置すると動作する。.env
ではないことに注意。
.dev.vars
MY_CALL=Hello
MY_NAME=Hono
一方、npm run deploy
すると環境変数がないため、undefined undefined!
になる。

HonoからリンクされているCloudflareの環境変数のドキュメントによれば、
- Wranglerの設定ファイルに
vars
を追加する - ダッシュボードのウェブUIから追加する
とある。が、前者はgit管理されるのであり得なく、後者もメンテの関係から避けたい。

調べるとCloudflareのシークレットのドキュメントに、wrangler secret put
が紹介されている(確かに環境変数と書いたが実際に設定したいのはAPIキーなどのシークレットである)。
$ npx wrangler secret put MY_NAME
⛅️ wrangler 4.10.0
-------------------
✔ Enter a secret value: … **** # Honoと入力
🌀 Creating the secret for the Worker "hono-env"
✨ Success! Uploaded secret MY_NAME
環境変数が一つ設定でき、レスポンスも変わる。

ファイルから一括でやる方法はないものかと適当に--help
を叩いたらwrangler secret bulk
を見つけた。
$ npx wrangler secret bulk .dev.vars
⛅️ wrangler 4.10.0
-------------------
🌀 Creating the secrets for the Worker "hono-env"
✨ Successfully created secret for key: MY_CALL
✨ Successfully created secret for key: MY_NAME
Finished processing secrets file:
✨ 2 secrets successfully uploaded
求めていたものでした。
このスクラップは5ヶ月前にクローズされました