运行无服务器的“Hello, World!”

在本教程中,您将学习无需预置或管理服务器即可在 AWS Lambda 上运行代码的基础知识。我们将逐步介绍如何使用 AWS Lambda 控制台来创建 Hello World Lambda 函数。然后,我们将向您展示如何使用示例事件数据手动调用 Lambda 函数,以及如何查看您的输出指标。

本教程介绍的所有功能均向免费套餐用户开放。

要使用 AWS 运行无服务器代码,您需要拥有一个账户。

在几分钟内创建免费账户

AWS 免费套餐包含每月向 AWS Lambda 发送 1 百万个免费请求和最高 320 万秒的计算时间。

查看 AWS 免费套餐详细信息 »

 

当您单击此处时,AWS 管理控制台将在新的浏览器窗口中打开,因此您可以将本分步指南保持打开状态。在 Compute 下找到 Lambda,然后单击打开 AWS Lambda 控制台。

create-lambda-function_0

(单击以缩放)

create-lambda-function_0

蓝图提供了示例代码,用于进行一些最低程度的处理。大多数蓝图用于处理来自特定事件源(如 Amazon S3、DynamoDB 或自定义应用程序)的事件。

a. 在 AWS Lambda 控制台中,选择 Get Started Now

如果您已有 Lambda 函数,请选择 Create a Lambda function

create-lambda-function_1

(单击以缩放)

create-lambda-function_1

b. 在“Filter”框中,键入 hello-world-python,然后选择“hello-world-python”蓝图。

create-lambda-function_2

(单击以缩放)

create-lambda-function_2

Lambda 函数包含您提供的代码、关联依赖项和配置。您提供的配置信息包括要分配的计算资源(例如内存)、执行超时和 AWS Lambda 可以承担的 IAM 角色(用来代表您执行 Lambda 函数)。


a. 现在,您可以配置自己的 Lambda 函数。下面的列表介绍了配置过程并提供了示例值。

配置函数
  • Name:您可以在此为您的函数命名。在本教程中,请输入 hello-world-python
  • Description:您可以在此输入对函数的简短描述。此处已经预填充为 A starter AWS Lambda Function
  • Runtime:目前,您可以在 Java、Node.js 或 Python 2.7 中编写您的 Lambda 函数代码。在本教程中,请在此保留 Python 2.7 作为运行时。

Lambda 函数代码

  • 在本部分中,您可以查看使用 Python 编写的示例代码。

Lambda 函数处理程序和角色

  • Handler:您可以指定一个处理程序(代码中的方法/函数),AWS Lambda 可在其中开始执行您的代码。AWS Lambda 提供事件数据作为处理事件的处理程序的输入。在本示例中,Lambda 从代码示例中找出处理程序,且此处应被预填充为 lambda_function.lambda_handler
  • Role:单击下拉菜单,然后选择 Basic Execution Role
create-lambda-function_13

(单击以缩放)

create-lambda-function_13

b. 您将创建具有必要权限的 IAM 角色(称为执行角色),AWS Lambda 可以承担这一角色来代表您调用 Lambda 函数。单击 Allow

您将返回到“Configure function”页面,然后选择 lambda_basic_execution

create-lambda-function_3

(单击以缩放)

create-lambda-function_3

c. 在 Advanced settings 部分,您可以配置内存、超时和 VPC 设置。在本教程中,请保留默认 Lambda 函数配置值,然后单击 Next

create-lambda-function_15

(单击以缩放)

create-lambda-function_15

d. 查看 Lambda 函数,然后单击 Create Function。控制台将代码保存到一个文件中然后压缩该文件,即生成部署程序包。然后,控制台将部署程序包上传到 AWS Lambda 中,从而创建 Lambda 函数。

create-lambda-function_5

(单击以缩放)

create-lambda-function_5

控制台已显示 hello-world-python Lambda 函数。现在,您可以测试该函数、验证结果并查看日志。


a. 单击 Test

create-lambda-function_18

(单击以缩放)

create-lambda-function_18

b. 在弹出的编辑器中输入事件来测试您的函数。 

  • 从输入测试事件页面的“Sample event template”列表中选择 Hello World
  • 您可以更改示例 JSON 中的值,但不要更改事件结构。在本教程中,请将 value1 替换为 hello, world!

单击 Save and test。AWS Lambda 现在可以代表您执行您的函数。

create-lambda-function_17

(单击以缩放)

create-lambda-function_17

c. 成功执行后,请在控制台中查看结果:

  • Execution results 部分确认执行是否成功。
  • Summary 部分显示了“Log output”中报告的关键信息。
  • Log output 部分将显示 Lambda 函数执行过程中生成的日志。
create-lambda-function_20

(单击以缩放)

create-lambda-function_20

AWS Lambda 会自动监控 Lambda 函数,并通过 Amazon CloudWatch 报告各项指标。为帮助您监控代码的执行情况,Lambda 会自动跟踪请求数量、每个请求的延迟以及产生错误的请求数量,并发布相关的指标。 


a. 重复单击 Test 按钮即可多次调用 Lambda 函数。这样可以生成可在下一步骤中查看的指标。

create-lambda-function_16

(单击以缩放)

create-lambda-function_16

b. 选择 Monitoring 选项卡以查看 Lambda 函数的指标。Lambda 指标可通过 Amazon CloudWatch 进行报告。您可以利用这些指标来设置自定义警报。有关 CloudWatch 警报的更多信息,请参阅 Amazon CloudWatch Developer Guide

“Monitoring”选项卡将显示四项 CloudWatch 指标:调用次数、调用持续时间、调用错误以及阻止的调用。

使用 AWS Lambda,您只需按实际使用量付费。达到 AWS Lambda 免费套餐的上限后,您需要按照函数的请求数量(调用次数)以及代码的运行时间(调用持续时间)来支付费用。有关更多信息,请参阅 AWS Lambda Pricing

create-lambda-function_7

(单击以缩放)

create-lambda-function_7

尽管保留 Lambda 函数不收取费用,但您仍可以从 AWS Lambda 控制台将其轻松删除。 


a. 选择 Actions 按钮,然后单击 Delete Function

create-lambda-function_6

(单击以缩放)

create-lambda-function_6

b. 系统会提示您确认终止 – 选择 Yes, Terminate

create-lambda-function_12

(单击以缩放)

create-lambda-function_12

您已创建了第一个 AWS Lambda 函数。这是了解如何在无需预置或管理服务器的情况下运行应用程序的第一步。Lambda 可通过运行您的代码来自动扩展您的应用程序,以回应每次触发,从而根据您的工作负载大小进行精确扩展。

了解了如何创建 Lambda 函数之后,您可以进行下一教程的学习,了解如何触发 Lambda 函数以处理上传至 Amazon S3 存储桶的数据。您将使用 Lambda 函数来实时创建上传至 S3 存储桶的图片的缩略图。

将 AWS Lambda 与 Amazon S3 配合使用»