Lambdaで環境変数が使えるようになった

  • 3
    いいね
  • 0
    コメント

概要

New for AWS Lambda – Environment Variables and Serverless Application Model (SAM)

これ、Lambderにとっては結構なニュースです。今までLambdaで環境変数を使うとしたら次のような手法を取るしかありませんでした。

  • API Gatewayからステージ環境変数を渡す
  • Lambdaの Description に環境変数を書いてアプリケーション側でパースする
  • 環境変数ファイルをCIで動的生成

それがついに公式に環境変数がサポートされたので、このような対応は今後不要になりました。

使い方

とても簡単。Lambdaファンクションの Code タブに環境変数の項目が追加されてるので、キーと値のペアを入れるだけ。
スクリーンショット_2016-11-19_19_59_30.jpg

NodeJSで環境変数を取得してみる (上図参照)。

console.log(`NODE_ENV: ${process.env.NODE_ENV}`)

CloudFormationで環境変数をセットする

最近趣味でサーバレスな ヘルスケアアプリ を作ってるんですが、デプロイにCloudFormationを利用していたので、デプロイ時に環境変数がセットされるよう対応してみました (今まではAPI Gatewayのステージ変数を使ってた)。
CloudFormation経由でLambdaに環境変数をセットするには Environment プロパティを使えば良いらしいです。テンプレートの修正例はこちら