メニュー
AWS Lambda
開発者ガイド

Lambda 実行環境と利用できるライブラリ

AWS Lambda の実行環境は、以下に基づいています。

  • こちらでアクセスできるパブリック Amazon Linux AMI バージョン (AMI 名: amzn-ami-hvm-2016.03.3.x86_64-gp2)

    AMI の使用に関する一般的な情報については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「Amazon マシンイメージ (AMI)」を参照してください。

  • Linux カーネルバージョン – 4.4.51-40.60.amzn1.x86_64

コードにネイティブバイナリを使用している場合は、必ずこの環境でコンパイルしてください。AWS Lambda では 64 ビットのバイナリのみサポートされています。

AWS Lambda は次のランタイムバージョンをサポートします。

  • Node.js – v4.3.2 および 6.10.2

  • Java – Java 8

  • Python – Python 3.6 および 2.7

  • .NET Core – .NET Core 1.0.1 (C#)

注記

すべてのランタイムが、パブリック Amazon Linux AMI バージョンまたはその yum リポジトリで使用できるわけではありません。それぞれのパブリックサイトからの手動のダウンロードとインストールが必要になる場合があります。

使用しているサポート対象のランタイムに関わらず、AWS Lambda 実行環境に次のライブラリが用意されているため、ライブラリを含める必要はありません。

  • AWS SDK – AWS SDK for JavaScript バージョン 2.54.0

  • AWS SDK for Python 2.7 (Boto 3) バージョン 3-1.4.4 botocore-1.5.52

    AWS SDK for Python 3.6 (Boto 3) バージョン 3-1.4.4 botocore-1.5.52

  • Java 用 java-1.8.0-openjdk の Amazon Linux ビルド。

Lambda 関数で使用できる環境変数

以下は、AWS Lambda 実行環境の一部であり、Lambda 関数で使用できる環境変数のリストです。下のテーブルは AWS Lambda によって予約されていて変更できないものと、Lambda 関数を作成するときに設定できるものを示しています。Lambda 関数で環境変数を用いる詳細については、「Environment Variables」を参照してください。

Lambda 環境変数

キー リザーブド
LAMBDA_TASK_ROOT はい Lambda 関数コードのパスを含みます。
AWS_EXECUTION_ENV はい 環境変数は Lambda 関数のランタイムに応じて、次のいずれかのオプションに設定されます。
  • AWS_Lambda_java8

  • AWS_Lambda_nodejs

  • AWS_Lambda_nodejs4.3

  • AWS_Lambda_nodejs6.10

  • AWS_Lambda_python2.7

  • AWS_Lambda_python3.6

  • AWS_Lambda_dotnetcore1.0

LAMBDA_RUNTIME_DIR はい Lambda ランタイム関連アーティファクトに制限されます。例えば、このパスで Node.js の aws-sdk と Python の boto3 を確認できます。
AWS_REGION はい Lambda 関数が実行される AWS リージョン。
AWS_DEFAULT_REGION はい Lambda 関数が実行される AWS リージョン。
AWS_LAMBDA_LOG_GROUP_NAME はい Lambda 関数ログを含むログストリームが作成される Amazon CloudWatch Logs グループの名前。
AWS_LAMBDA_LOG_STREAM_NAME はい Lambda 関数ログを含む Amazon CloudWatch Logs ストリーム
AWS_LAMBDA_FUNCTION_NAME はい Lambda 関数の名前。
AWS_LAMBDA_FUNCTION_MEMORY_SIZE はい Lambda 関数のサイズ (MB 単位)。
AWS_LAMBDA_FUNCTION_VERSION はい Lambda 関数のバージョン。

AWS_ACCESS_KEY

AWS_ACCESS_KEY_ID

AWS_SECRET_KEY

AWS_SECRET_ACCESS_KEY

AWS_SESSION_TOKEN

AWS_SECURITY_TOKEN

はい どのランタイムが使用されているかに応じて、Lambda 関数を実行するためにセキュリティ認証情報が必要となります。異なるランタイムがこれらのキーのサブセットを使用します。関数固有の IAM 実行ロールを介して作成されます。
PATH いいえ 実行可能ファイルのための /usr/local/bin, /usr/bin または /bin が含まれます。
LANG いいえ en_US.UTF-8 に設定します。これがランタイムのロケールです。
LD_LIBRARY_PATH いいえ /lib64、/usr/lib64、LAMBDA_TASK_ROOT、LAMBDA_TASK_ROOT/lib が含まれます。ヘルパーライブラリおよび関数コードの保存に使用されます。
NODE_PATH いいえ Node.js ランタイムに設定します。これには LAMBDA_RUNTIME_DIR、LAMBDA_RUNTIME_DIR/node_modules、LAMBDA_TASK_ROOT が含まれます。
PYTHONPATH いいえ Python のランタイムに設定します。これには LAMBDA_RUNTIME_DIR が含まれます。
TZ はい 現在のローカル時刻。デフォルトは UTC です。

推奨事項

AWS Lambda を初めて使用する場合は、「仕組み」セクションのすべてのトピックに目を通し、Lambda の内容を確認しておくことをお勧めします。仕組みから開始してください。

「仕組み」セクションのすべてのトピックに目を通した後は、Lambda 関数のビルドを確認して、ご利用開始にあたっての実習を体験し、ユースケースについて学習することをお勧めします。各ユースケースには、エンドツーエンドエクスペリエンスを体験できるエンドツーエンドの説明が記載されています。