AWS Lambda
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 Python 构建 Lambda 函数

您可以在 AWS Lambda 中运行 Python code。Lambda 为执行代码来处理事件的 Python 提供运行时。您的代码在包含适用于 Python 的 开发工具包 (Boto3)的环境中运行,其中包含来自您管理的 AWS Identity and Access Management (IAM) 角色的凭证。

Lambda 支持以下 Python 运行时。

Python 运行时

名称 标识符 适用于 Python 的 AWS 开发工具包 操作系统

Python 3.7

python3.7

boto3-1.9.42 botocore-1.12.42

Amazon Linux

Python 3.6

python3.6

boto3-1.7.74 botocore-1.10.74

Amazon Linux

Python 2.7

python2.7

不适用

Amazon Linux

Lambda 函数使用执行角色来获取将日志写入 Amazon CloudWatch Logs 以及访问其他服务和资源的权限。如果您还没有函数开发的执行角色,请创建一个。

创建执行角色

  1. 打开 IAM 控制台中的“角色”页面

  2. 选择 Create role (创建角色)

  3. 创建具有以下属性的角色。

    • 可信任的实体Lambda

    • 权限AWSLambdaBasicExecutionRole

    • 角色名称 (角色名称)lambda-role

    AWSLambdaBasicExecutionRole 策略具有函数将日志写入 CloudWatch Logs 所需的权限。

您可以稍后向此角色添加权限,或将其与特定于单一函数的其他角色交换。

创建 Python 函数

  1. 打开 Lambda 控制台

  2. 选择创建函数

  3. 配置以下设置:

    • 名称my-function

    • 运行时Python 3.7

    • 角色选择现有角色

    • 现有角色lambda-role

  4. 选择创建函数

  5. 要配置测试事件,请选择测试

  6. 对于事件名称,输入 test

  7. 选择创建

  8. 要执行函数,请选择测试

控制台将创建一个带有单个名为 lambda_function 的源文件的 Lambda 函数。您可以在内置代码编辑器中编辑此文件并添加更多文件。要保存您的更改,请选择 Save。然后,要运行代码,请选择 Test (测试)

注意

Lambda 控制台使用 AWS Cloud9 在浏览器中提供集成开发环境。您还可以使用 AWS Cloud9 在您自己的环境中开发 Lambda 函数。有关更多信息,请参阅《AWS Cloud9 用户指南》中的使用 AWS Lambda 函数

lambda_function 文件导出一个名为 lambda_handler 的函数,此函数接受事件对象和上下文对象。这是在调用函数时 Lambda 调用的处理程序函数。Python 函数运行时从 Lambda 获取调用事件并将它们传递到处理程序。在函数配置中,处理程序值为 lambda_function.lambda_handler

每次保存函数代码时,Lambda 控制台都会创建一个部署程序包,它是一个包含函数代码的 ZIP 存档。随着函数开发的进行,您需要将函数代码存储在源代码控制中、添加库和实现部署自动化。首先,通过命令行创建部署程序包并更新代码。

除了调用事件之外,函数运行时还将上下文对象传递给处理程序。上下文对象包含有关调用、函数和执行环境的其他信息。环境变量中提供了更多信息。

您的 Lambda 函数附带了 CloudWatch Logs 日志组。函数运行时将发送有关对 CloudWatch Logs 的每个调用的详细信息。它会中继调用期间函数输出的任何日志。如果您的函数返回错误,则 Lambda 将为错误设置格式,并将其返回给调用方。