Open4

Cloudflare Workersで環境変数を取得する方法

ryuryu

Fetchハンドラーから取得する

fetchの第二引数に環境変数がセットされているので、そこから取得できる

export default {
  async fetch(request, env, ctx) {
    return new Response(env.MY_VAR);
  },
};

https://developers.cloudflare.com/workers/runtime-apis/handlers/fetch/

Honoもこの仕組みを活用して、c.envから環境変数が取得できるようになっている

import { Hono } from 'hono'

const app = new Hono()

app.get('/', (c) => {
  return c.text(c.env.MY_VAR)
})

export default app
ryuryu

cloudflare:workersからインポートする

fetchハンドラーから環境変数を受け取る方法はHonoなどを使わない場合は結構面倒。
そこでCloudflare Workers上ではcloudflare:workersからenvを直接インポートすることもできる。

import { env } from "cloudflare:workers";
console.log(env.MY_VAR});
ryuryu

process.envから環境変数を取得する

Cloudflare Workersではある程度Node.jsの互換性がある。
nodejs_compat_populate_process_envというフラグを有効にすることでNode.jsと同じようにprocess.envを使って環境変数を取得することができる。

console.log(process.env.MY_VAR});

この機能を利用する場合は、wrangler.jsonccompatibility_flagsにNode.jsの互換性フラグとnodejs_compat_populate_process_envが必要になる。

wrangler.jsonc
{
  "$schema": "node_modules/wrangler/config-schema.json",
  "name": "example-worker",
  "main": "src/index.ts",
  "compatibility_date": "2025-08-11",
  "compatibility_flags": [
    "nodejs_compat",
    "nodejs_compat_populate_process_env"
  ]
}