AWS Lambda 初学者简介

探索 AWS Lambda 的基础知识及函数运行步骤

在当今构建应用程序的过程中,出色的用户体验是至关重要的。为了实现这一目标,您的应用程序后端需要代码来响应各种事件。

然而,管理托管和执行后端代码的基础设施,意味着您需要调整、配置、扩展服务器,管理操作系统更新,应用安全补丁,并且持续监控这些基础设施的性能和可用性。 这无疑是一项繁琐且耗时的任务。

想象一下,如果可以将精力集中在构建卓越的应用上,而无需担忧底层的基础设施,那将多么美妙!这正是 AWS Lambda 所提供的价值。

什么是 AWS Lambda?

AWS Lambda 是一种无服务器计算服务,它允许您运行代码,而无需操心服务器的配置或管理。您可以通过 AWS Lambda 以零管理的方式运行应用程序或后端服务。只需上传代码到 Lambda,它便会自动执行代码,并根据需求扩展基础设施,以保证高可用性。

在 AWS Lambda 上运行的代码被称为 Lambda 函数。目前,它支持以下编程语言:

  • Java
  • Python
  • C#
  • Node.js
  • Go
  • PowerShell
  • Ruby

此外,它还提供了运行时 API,允许您运行使用其他原生编程语言编写的函数。

要使用 AWS Lambda,您只需满足一个先决条件:您需要在 AWS 上拥有一个帐户,以便能够访问 AWS 管理控制台。

您可以将 Lambda 视为 AWS 的 FaaS(函数即服务)解决方案。

AWS Lambda 的主要特性

以下是 AWS Lambda 提供的一些关键特性:

  • AWS Lambda 可以轻松扩展基础设施,无需额外的配置,大大减少了运维工作。
  • 它提供了多种事件触发选项,如 AWS S3、CloudWatch、DynamoDB、API 网关、Kinesis、CodeCommit 等。
  • 您无需进行预先投资。您只需为 Lambda 函数实际使用的内存付费,并且请求成本很低,因此具有很高的成本效益。
  • AWS Lambda 非常安全。它利用 AWS IAM 来定义所有角色和安全策略。
  • 它为代码和函数的运行提供了容错能力,无需担心应用程序宕机。

AWS Lambda 的定价策略

AWS Lambda 的定价取决于函数执行的时间以及所使用的内存量。您最多可以为 Lambda 函数分配 3008 MB 的内存,以 64 MB 为增量单位。以下是一个关于内存和持续时间(100毫秒为单位)的定价表。

AWS Lambda 的工作原理

  • 首先,您需要创建一个函数,并添加必要的基本信息,例如函数使用的编程语言。
  • 接着,您可以在 Lambda 编辑器上直接编写代码,或以 ZIP 文件形式上传用支持的编程语言编写的代码。
  • 上传代码后,AWS 服务将自动处理基础设施的扩展、修补和管理。
  • 为了运行代码,您需要使用外部 AWS 服务来触发 Lambda 函数,例如 S3 存储桶。
  • 在几秒钟内,Lambda 将准备就绪,以便在事件发生时自动触发函数。AWS Lambda 会在事件触发时运行您的代码。它负责配置、管理和监控服务器。
  • 如果您的函数需要大量的处理能力,它会选择拥有更强处理能力和 RAM 的实例类型。如果您的 Lambda 代码只运行两秒,它将选择尽可能低的实例,从而节省您的资金和时间。

这就是 AWS Lambda 的基本工作原理。接下来,让我们通过一个示例来演示如何在 AWS Lambda 上创建一个简单的函数。

创建 AWS Lambda 函数

在本文中,我们将使用 Node.js 创建一个简单的掷骰子游戏。Lambda 函数将随机生成 1 到 6 之间的数字,并输出结果。

  • 登录 AWS 管理控制台,在搜索栏中键入 “Lambda”,并单击 Lambda。

  • 进入函数窗口,点击“创建函数”。

  • 您将看到创建函数的不同选项,以及它们的说明。由于我们是从头开始创建,因此选择 “从头开始创作”。

  • 接下来,您需要填写一些必要的信息。输入函数名称,并选择要使用的 Node.js 版本。
  • 还需要选择执行角色。由于您的 AWS 账户中没有定义任何现有角色,请选择“创建新角色”选项。然后,点击“创建函数”。

  • 您将收到一条成功创建的消息。点击“设计器”窗口将其最小化。

  • 接下来是函数代码窗口。
  • 将下面的代码粘贴到编辑器中。您也可以通过 ZIP 文件上传代码,但这里使用 AWS 提供的代码编辑器。

  • 这是一段简单的代码,它会随机生成 1 到 6 之间的数字,并在调用函数时输出结果。
exports.handler = async (event) => {
    const min = 1;
    const max = 6;
    const randomNum = Math.floor(Math.random() * (max - min + 1)) + min;
    const out="Dice throw result is: " + randomNum;
    return out;
  };
  • 现在点击右上角的“测试”按钮。您会看到一个弹出窗口,配置测试事件,输入事件名称,然后点击“配置”。

  • 现在点击“保存”,然后点击“测试”。

在执行结果中,您可以看到我们刚刚编写的函数逻辑的输出,例如 “掷骰子结果为:2″。

  • 向上滚动并单击“详细执行结果”,以获取此 Lambda 函数的完整摘要,以及预期输出,请求 ID,持续时间,计费持续时间,配置的资源等详细信息,以及日志输出。

  • 单击“监控”选项卡,以可视化指定时间内的 CloudWatch 日志和 Lambda 函数性能。

  • 如果您查看由 CloudWatch 创建的日志,您可以找到 Lambda 函数运行时发生的详细信息,这些信息是由 CloudWatch 监控的。

总结

开始使用 Lambda 非常简单。如果您的业务应用程序需要运行后端代码,不妨考虑 AWS Lambda 等无服务器平台。

您喜欢这篇文章吗?欢迎分享给更多人!