AWS Lambda
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Lambda 执行环境和可用库

底层 AWS Lambda 执行环境建立在以下各项的基础之上:

  • 公用 Amazon Linux AMI 版本 (AMI 名称:amzn-ami-hvm-2017.03.1.20170812-x86_64-gp2),可以在此处访问该版本。

    有关使用 AMI 的信息,请参阅Amazon EC2 用户指南(适用于 Linux 实例) 中的 Amazon 系统映像 (AMI)

  • Linux 内核版本 - 4.9.43-17.38.amzn1.x86_64

如果您使用代码中的任何本机二进制文件,请确保在此环境编译这些文件。注意,在 AWS Lambda 上仅支持 64 位二进制文件。

AWS Lambda 支持以下运行时版本:

  • Node.js – v4.3.2 和 6.10.3

  • Java - Java 8

  • Python – Python 3.6 和 2.7

  • .NET 内核 – .NET 内核 1.0.1 (C#)

注意

并不是所有运行时都可以在公用 Amazon Linux AMI 版本或其 yum 存储库中使用。您可能需要从其各自的公共站点手动下载并安装它们。

无论您使用哪个支持的运行时,以下库在 AWS Lambda 执行环境中都可用,因此您无需包含它们:

  • AWS 开发工具包 - 适用于 JavaScript 的 AWS 开发工具包版本 2.128.0

  • 适用于 Python 2.7 的 AWS 软件开发工具包 (Boto 3) 版本 3-1.4.7 botocore-1.7.24

    适用于 Python 3.6 的 AWS 软件开发工具包 (Boto 3) 版本 3-1.4.7 botocore-1.7.24

  • 适用于 Java 的 java-1.8.0-openjdk 的 Amazon Linux 构建。

适用于 Lambda 函数的环境变量

下面是 AWS Lambda 执行环境中适用于 Lambda 函数的环境变量列表。下表表明由 AWS Lambda 预留、无法更改,以及可在创建 Lambda 函数时设置的环境变量。有关将环境变量用于 Lambda 函数的更多信息,请参阅环境变量

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 开发工具包和适用于 Python 的 boto3。
AWS_REGION 执行 Lambda 函数的 AWS 区域。
AWS_DEFAULT_REGION 执行 Lambda 函数的 AWS 区域。
AWS_LAMBDA_LOG_GROUP_NAME Amazon CloudWatch Logs 组的名称,系统将在其中创建包含您的 Lambda 函数日志的日志流。
AWS_LAMBDA_LOG_STREAM_NAME Amazon CloudWatch Logs 流包含 Lambda 函数日志。
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 执行角色生成。
路径 包含 /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 函数,尝试入门练习,然后探讨使用案例。每个使用情形都提供了设置端到端体验的分步说明。