AWSは最近、コード実行環境をカスタマイズするための変数を定義する機能をAWS Lambdaに追加した。AWSのチーフエバンジェリストであるJeff Barr氏によると、これによって、再デプロイメントすることなく、クリーンで再利用可能なコードが書けるという。
環境変数を使うと、実装を変更することなく、所定の状況下で関数の振る舞いを変えることができる。典型的な用途は、ライフサイクルのステージ(たとえば、開発、テスト、プロダクション)に合わせて関数の振る舞いを変化させることだろう。各ステージでは、たとえば、独自のデータベースや異なる接続証明書などを使うことができる。
AWS Lambda環境変数は、AWS Console、CLI、SDKを使って定義できる。以下に、AWS CLIを使って、LD_LIBRARY_PATH
環境変数を使用するAWS Lambdaを定義する方法を示す。
aws lambda create-function \
--region us-east-1
--function-name myTestFunction
--zip-file fileb://path/package.zip
--role role-arn
--environment Variables={LD_LIBRARY_PATH=/usr/bin/test/lib64}
--handler index.handler
--runtime nodejs4.3
--profile default
環境変数を作成したら、プログラミング言語が提供している環境変数アクセス機能を使って読み出すことができる。たとえば、Node.jsではprocess.env
が使える。Pythonを使っている場合、次のようにos
ライブラリをインポートする必要がある。
...
import os
...
print("environment variable: " + os.environ['variable'])
環境変数はキーと値のペアで、暗号化され、必要に応じて復号化される。環境変数は属しているLambdaのバージョンに関連付けられており、Lambdaを公開する前なら自由に変更することができる。Lambdaのバージョンが公開されると、その環境変数は変更できなくなる。以前のバージョンにロールバックすると、その環境変数も復元される。Lambda関数にはいくつでも環境変数を関連付けられるが、合計サイズは4 KBを超えることができない。
Rate this Article
- Editor Review
- Chief Editor Action