LoginSignup
5
3

More than 5 years have passed since last update.

Serverless と Lamdba環境設定

Last updated at Posted at 2016-12-29

Serverless とLamdba環境変数

Serverless のコードをVersion 管理する上で 気になるのがAPIなどの認証キー

ソースコード内にコレを含めたくないときには、 .env などのソリューションを思い浮かべる人も多いかもしれない。

AWS Lamdba は ダッシュボードから環境変数の設定が可能で、これはデプロイがあっても通常は消えない。

serverless.yml 内での環境変数設定

ダッシュボードから設定可能な環境変数の他に、serverless.yml 内でも環境変数の設定が可能

ただし、こちらでキーを設定した場合、yml内に登録されていないキーは 消える

provider:
  name: aws
  runtime: nodejs4.3
  environment:
    HOGE_APIKEY: XXXXXXXXXXXXXXXXX
    PIYO_APIKEY: XXXXXXXXXXXXXXXXX

serverless コマンド実行環境の環境変数

service: new-service
provider: aws
functions:
  hello:
      name: ${env:FUNC_PREFIX}-hello
      handler: handler.hello
  world:
      name: ${env:FUNC_PREFIX}-world
      handler: handler.world

serverless.ymlの中ではCLIコマンド実行環境での環境変数を参照する事ができる。

これを上記と組み合わせて、以下のようなことも出来たりする。

provider:
  name: aws
  runtime: nodejs4.3
  environment:
    HOGE_APIKEY: ${env:SLS_HOGE_APIKEY}
    PIYO_APIKEY: ${env:SLS_PIYO_APIKEY}

ちなみにこれは: の後ろにスペース忘れると ServerlessError: Invalid characters in environment variable
というエラーで怒られる。辛い。

まとめ

一昔前にserverless-webpack で作る複数環境運用に耐えるserverless-node環境 - Qiitaみたいな記事を書いたものの、

正直これはオレオレすぎて理解が難しいので、しっかりServerless 標準の環境変数構成を使っていきたいなぁと思った。

認証情報をどこに置くか、は非常に難しい問題なので要件に併せて諸々検討したい。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3