Open3
Next.js on Pages, Hono on Workersでの環境変数の取得方法の違い
Next.js on Pages
import { getRequestContext } from '@cloudflare/next-on-pages';
const { env } = getRequestContext();
を利用するのが良さそう。なおトップレベルには書くことができず、サーバーで実行されるコード(api router, server components)で動く。
↓あまり役に立たなかった
Hono on Workers
type Bindings = {
MY_BUCKET: R2Bucket
USERNAME: string
PASSWORD: string
}
const app = new Hono<{ Bindings: Bindings }>()
// Access to environment values
app.put('/upload/:key', async (c, next) => {
const key = c.req.param('key')
await c.env.MY_BUCKET.put(key, c.req.body)
return c.text(`Put ${key} successfully!`)
})
Bindingsとして与えることでc.env
からアクセスできる。
↓あまり役に立たなかった
なお、環境変数とシークレットの書き分け
wrangler.toml [vars]
# wrangler.toml
[vars]
YOUR_ENV=public_value
.dev.vars
YOUR_KEY=secret_value
その他、参照