🐟
Cloudflare Workersの環境設定
Cloudflare Workersで環境設定を行う場合、いくつかやりかたがありますが、その内の1つを紹介します。
wrangler.tomlの設定
ステージとして、dev
stg
prd
を用意してみました。
[dev.*]
毎に環境に依存したwrangler.toml
の設定と、[dev.*.vars]
で環境設定が出来ます。
compatibility_date = "2023-01-01"
[env.dev]
name = "my-app-dev"
[env.dev.vars]
API_URL = "http://localhost:8080/rest/v1"
API_KEY = "..."
[env.stg]
name = "my-app-stg"
[env.stg.vars]
API_URL = "http://stg.example.com/rest/v1"
API_KEY = "..."
[env.prd]
name = "gem-dev-prd"
[env.prd.vars]
API_URL = "http://example.com/rest/v1"
API_KEY = "..."
ワーカー起動
wrangler dev src/index.ts --env dev
dev
のところは、stg
やprd
にすることができます。
⛅️ wrangler 2.14.0 (update available 2.15.0)
-------------------------------------------------------
Your worker has access to the following bindings:
- Vars:
- API_URL: "http://localhost:8080/rest/v1"
- API_KEY: "..."
⬣ Listening at http://0.0.0.0:8787
- http://127.0.0.1:8787
- http://192.168.1.2:8787
Total Upload: 157.33 KiB / gzip: 29.06 KiB
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ [b] open a browser, [d] open Devtools, [l] turn on local mode, [c] clear console, [x] to exit │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
- Vars:
のところで、設定された環境変数が確認できます。
最後に
環境毎に見えても良い情報については、この方法でも良いですが、API_KEYといったクレデンシャルにあたる情報は、セキュアに扱いたいです。その場合、wrangler.toml
ではなく、.dev.vars
といったファイルをルートに置くか、以下コマンドで保存することが良いでしょう。
wrangler secret put <key>
.dev.vars
を用意すると、以下のようにファイルを見つけて使ってくれるようです。
Using vars defined in .dev.vars
Your worker has access to the following bindings:
- Vars:
- POSTGREST_URL: "(hidden)"
- SUPABASE_API_KEY: "(hidden)"
⎔ Starting a local server...
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ [b] open a browser, [d] open Devtools, [l] turn off local mode, [c] clear console, [x] to exit │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Discussion