I have Next.js website endpoints:
- Next.js API page routes https://jss-nextjs-hosting.netlify.app
- Netlify functions
Both endpoints do the same: output the environment variables.
Netlify function:
export default async (req: Request, context: Context) => {
return new Response(JSON.stringify(process.env));
};
output:
{
"AWS_LAMBDA_FUNCTION_VERSION": "$LATEST",
"AWS_SESSION_TOKEN": "IQoJb3JpZ2luX2VjEIv//////////wEaCXVzLWVhc3QtMiJGMEQCIES3WIYEMe13rFlyF22F335IORnpiVbC55wyRyjwoMs9AiBMSBkEiPu9WH7AAacYmDrjo+W+vv/xFjnRoy/qKThzwyrVAwh0EAEaDDk0ODI3MzI3NjU3MSIMVRSW8E3AWh2WQ3KOKrIDQUHu5I3Saxx+X8KBzY9VrjWwo5K63XEPOar6SmMxXAYPJM0hcFJttkHcL/qyVGnvzMjFZwmBHgML4UWsqOCzkaBRY5ISf4HmXi9bqDgpGBGlzrAhGsT3BeOAFcWjYH5P/JqErG0vU/1bb/Hd2e4hKGcy0qxDG8GZxd/fZXyb6l4dFoeAoBH1snr+Zg6luvRmIH13JuEeNtN7hx9UF/fQlHSe01xsOIwVQHx8t4zo+zoIolyJt+CdKNJrSxFKzqyEW5TsJUmR2nutXiCFm4A5rxrQB1dcyPI698IccA5caGIph6oujHvoaXe7rCzIunYjEuMIPqvSFgRHT4MCqUS2XAbLpnVZnEptTGKiVf9VVYrLyxzyzzdMx8JaKIgR77dFVKvLuAlya3qcxibupQATt3GsLn/qPgKE5a4Zy3LsRuUq8xydtx6mHKBNsRDGl4lFv6PgYrJVcqHwtwD3uqN/oQIroeQrAqi4fock7J5ztv3WerquAIZ4mS8MNcVNzpOwYk9EELkegKAINZPHf7AgMqmv8kTrXHNRVGRK2GREkHWfGqql/9wPD3hVQ72XPasDo94wgPvhrgY6nwEkBIDy7XWXvL+RQN9jlRpmeCJhu4kwo8EIKmYFcO0pCBUMpOLsiU5W3ltJJd7H/tq1k9JWzNB/Gczpycd5sX2CD8acRW8lskPJdtEIBW1B5IvEOfvALWgWOTQiF5bUIBzb2CKe6N7W0fr3gKToQfrKpgIpabN68Gd1GhI0dD79QSl+d3O2I7GqWVMA79nYC/CMpTkW7rg75betNmnH338=",
"AWS_LAMBDA_LOG_GROUP_NAME": "/aws/lambda/c82a1d63a8b72038b757347b770eb79abaaa8c1ae4ad581a947d424bd2f42d75",
"LAMBDA_TASK_ROOT": "/var/task",
"LD_LIBRARY_PATH": "/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib:/opt/lib",
"AWS_LAMBDA_LOG_STREAM_NAME": "2024/02/23/[$LATEST]2052a46f44c044ed80f98e83be5f31ee",
"AWS_LAMBDA_RUNTIME_API": "127.0.0.1:9001",
"AWS_EXECUTION_ENV": "AWS_Lambda_nodejs18.x",
"SITE_ID": "19c948ef-1830-429c-95af-0fde50f897dc",
"AWS_LAMBDA_FUNCTION_NAME": "c82a1d63a8b72038b757347b770eb79abaaa8c1ae4ad581a947d424bd2f42d75",
"AWS_XRAY_DAEMON_ADDRESS": "169.254.79.129:2000",
"PATH": "/var/lang/bin:/usr/local/bin:/usr/bin/:/bin:/opt/bin",
"AWS_DEFAULT_REGION": "us-east-2",
"PWD": "/var/task",
"AWS_SECRET_ACCESS_KEY": "j2CiTPnvonIaO7056syIT+n/V9JKFKO+YGDSaCA0",
"LAMBDA_RUNTIME_DIR": "/var/runtime",
"LANG": "en_US.UTF-8",
"AWS_LAMBDA_INITIALIZATION_TYPE": "on-demand",
"NODE_PATH": "/opt/nodejs/node18/node_modules:/opt/nodejs/node_modules:/var/runtime/node_modules:/var/runtime:/var/task",
"TZ": ":UTC",
"AWS_REGION": "us-east-2",
"URL": "https://jss-nextjs-hosting.netlify.app",
"AWS_ACCESS_KEY_ID": "ASIA5ZSL542N26QLV3MM",
"SHLVL": "0",
"_AWS_XRAY_DAEMON_ADDRESS": "169.254.79.129",
"_AWS_XRAY_DAEMON_PORT": "2000",
"AWS_XRAY_CONTEXT_MISSING": "LOG_ERROR",
"_HANDLER": "___netlify-entry-point.handler",
"AWS_LAMBDA_FUNCTION_MEMORY_SIZE": "1024",
"SITE_NAME": "jss-nextjs-hosting",
"NODE_EXTRA_CA_CERTS": "/var/runtime/ca-cert.pem",
"_X_AMZN_TRACE_ID": "Root=1-65d87d80-10325cbf0499d0ed1a54bc28;Parent=19c8c2e2407fd019;Sampled=0;Lineage=bf1de936:0",
"NETLIFY_BLOBS_CONTEXT": "...",
"NETLIFY_PURGE_API_TOKEN": "...."
}
Next.js API page route:
export default function handler(req, res) {
res
.status(200)
.json({
env: JSON.stringify(process.env),
});
}
output:
{
"AWS_LAMBDA_FUNCTION_VERSION": "$LATEST",
"AWS_SESSION_TOKEN": "IQoJb3JpZ2luX2VjEHoaCXVzLWVhc3QtMiJIMEYCIQCJtxGebUFIZgRRVXR5eAwpAcpMAI1cSZzkLB/GRpHndgIhAN9J1x2QSbt6EMFdLmN9ZjidkAiv8OGtE0Ez8gaZoYNDKtUDCGMQAhoMMzg1MjE2ODIyMzkzIgzpo1l60TalP0EpzlYqsgNKxST0A0yVFrhzcXCKi+e8wuG4Ns4Bt96ODWhxeqhVQh53s12/Onup01Ly/yGR/vPPEv6bSHf73MRJepCVm/+2AmIo0s55UtD+k3YF6eG71e9bnB3laP6nOKgakJceanJUqAjxlYtvPxgvGn/2vxs+ijHC5Bo6qs1vr/5mVLcG6jiEMlZIEGQcuUJprpFI6CynLgd3hm+Q7DPKH8ylGMeYienDRvFtlFhMqq0UO74L4Vo6CbcWnjncVOJF59hmIlVZJ1j/LGfxDUHeonqyCNPglW554gPzfLkBpTDbOqCkHHUhriMzvh5FZA6S7F+19YD0xnno9IlUUck+vNudhQ/J+ZxzQvA3Cmsvs5fEYrTNq0gUXbzXXbklbrgZVPQNLHTdoPqZmER1VkZF8ko95V7rx211Agmkv+HrkmAd4Hwu3fLXxUEkaAVE7D2bc4pzHLMNy0L/oggj8TGLY85Gc1qZVoper0tG7lxivyIKrZixHO6mICtbxRpRK6iFA6/swvPa2w+Py1nJ4d3dE+sUVD6T0yfzYVSWJJ+bqaQHvQwI4pJDmumaJVnCjrjJJ/bj8imawzCTmd6uBjqdAcIy2xOZDrfQ205jUiWYrIxOWmP7PeJzaeK+ZR1i1B5y0PQJ6rO7bcAgTWC6m/RiKlym7cdOir2q86x311akYZZRbFeOjZknsIIdqXLJdtVaGhDDORXDUJ9ANnDXQNexJ+XYgQTw1186oVPWWHms5nmLXqfeJ7XfAnH9V9GT+8KEMu98DIN6sw3kZhmSVTHYYnSnlUMW1gTo8rMAC+c=",
"LD_LIBRARY_PATH": "/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib:/opt/lib",
"LAMBDA_TASK_ROOT": "/var/task",
"AWS_LAMBDA_LOG_GROUP_NAME": "/aws/lambda/d8b33cea294a7d99410f6782b13a8148dcc31166c053ccc8d289564ad8e9bc2b",
"AWS_LAMBDA_LOG_STREAM_NAME": "2024/02/22/[$LATEST]d1a7fd63a236444c83d8cc9ed106062e",
"AWS_LAMBDA_RUNTIME_API": "127.0.0.1:9001",
"AWS_EXECUTION_ENV": "AWS_Lambda_nodejs18.x",
"SITE_ID": "19c948ef-1830-429c-95af-0fde50f897dc",
"AWS_LAMBDA_FUNCTION_NAME": "d8b33cea294a7d99410f6782b13a8148dcc31166c053ccc8d289564ad8e9bc2b",
"AWS_XRAY_DAEMON_ADDRESS": "169.254.79.129:2000",
"PATH": "/var/lang/bin:/usr/local/bin:/usr/bin/:/bin:/opt/bin",
"AWS_DEFAULT_REGION": "us-east-2",
"PWD": "/var/task",
"AWS_SECRET_ACCESS_KEY": "Lrl9onnQsEw23uiottrTmf9V/AyDT5KqcTEV57vH",
"LANG": "en_US.UTF-8",
"LAMBDA_RUNTIME_DIR": "/var/runtime",
"AWS_LAMBDA_INITIALIZATION_TYPE": "on-demand",
"NODE_PATH": "/opt/nodejs/node18/node_modules:/opt/nodejs/node_modules:/var/runtime/node_modules:/var/runtime:/var/task",
"TZ": ":UTC",
"AWS_REGION": "us-east-2",
"URL": "https://jss-nextjs-hosting.netlify.app",
"AWS_ACCESS_KEY_ID": "ASIAVTMFWHR4Y3B6VRLM",
"SHLVL": "0",
"_AWS_XRAY_DAEMON_ADDRESS": "169.254.79.129",
"_AWS_XRAY_DAEMON_PORT": "2000",
"AWS_XRAY_CONTEXT_MISSING": "LOG_ERROR",
"_HANDLER": "___netlify-handler.handler",
"AWS_LAMBDA_FUNCTION_MEMORY_SIZE": "1024",
"SITE_NAME": "jss-nextjs-hosting",
"NODE_EXTRA_CA_CERTS": "/var/runtime/ca-cert.pem",
"NODE_ENV": "production",
"PUBLIC_URL": "https://jss-nextjs-hosting.netlify.app",
"_X_AMZN_TRACE_ID": "Root=1-65d78c93-5c5400673898ab526c80658c;Parent=017ac75363729ae4;Sampled=0;Lineage=dd45a4d6:0",
"__NEXT_PROCESSED_ENV": "true",
"JSS_EDITING_SECRET": "...",
"SITECORE_API_KEY": "",
"SITECORE_API_HOST": "",
"GRAPH_QL_ENDPOINT": "",
"DEFAULT_LANGUAGE": "",
"FETCH_WITH": "GraphQL",
"DISABLE_SSG_FETCH": "",
"__NEXT_OPTIMIZE_FONTS": "true",
"__NEXT_PRIVATE_PREBUNDLED_REACT": ""
}
I expect that I should be able to use the same env variables in both cases. But this list is different.
e.g. I need access to blobs in Next.js API route, but NETLIFY_BLOBS_CONTEXT
is absent there.
Or do I want to access SITECORE_API_HOST
inside the Netlify function? I can’t, it is absent there.
Is it documented somewhere, what will be the difference in the variables depending on where you use them?
Are Next.js API routes transformed to Netlify functions?
If yes, why do they have different environment variables list?