見出し画像

AWS Lambda × Node.js(webpack)で環境変数を使う

sumi

はじめに

tokenやkeyなどgitignoreしたい変数を扱うのに.envファイルを使いたい時、今まで dotenv を使っていました。しかしwebpackでビルドしてから実行する場合は違う方法で設定することになるので調べたメモです。

ローカル環境

webpackを使って構築したので、dotenv-webpack を使って設定してみました。これはwebpackのDefinePluginをwrapしたpluginになります。

インストール

npm install dotenv-webpack --save-dev

.envファイルを作成

// .env
DB_HOST=127.0.0.1
DB_PASS=foobar
S3_API=mysecretkey

webpack.config

これをwebpackのpluginsに追加するだけです!

ちなみに、webpack.config内で環境変数(process.env.DB_HOST)を取得したいときは dotenv をinstallして「require('dotenv').config()」すると出来ます。

// webpack.config.js
const Dotenv = require('dotenv-webpack');
module.exports = {
 ...
 plugins: [
   new Dotenv()
 ]
 ...
};

ためしてみる

Lambda関数の中でconsole.logしてみます。

exports.lambdaHandler = async (event, context) => {
...
console.log('process.env.DB_HOST: ', process.env.DB_HOST)
...
};

これで無事に取れます。👍

画像1

本番環境では

管理コンソールからキーと値を設定します。

画像2

参考

-----------------------


この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
sumi

息抜きのコーヒー代にさせて頂きます!!♡

sumi
Webエンジニアしてます。学習した内容を書きます。趣味はお笑いラジオ・ゲーム・西洋音楽・西洋美術など。