AWS Lambda 是亚马逊提供的一项功能强大的计算服务。它可以让您以无服务器的方式运行代码,而无需为服务器管理或维护付出额外的精力。无论是处理数据、处理网络请求还是执行后台任务,AWS Lambda 都能够高效地完成。 使用 AWS Lambda,您只需编写代码并将其上传到 Lambda 上,然后选择一个触发器来指定代码执行的条件。触发器可以是来自 Amazon S3 存储桶的新文件、来自 Amazon API Gateway 的网络请求,或者来自其他 AWS 服务的事件。一旦触发条件满足,Lambda 就会自动执行您的代码,并将执行结果返回给您。 通过使用 AWS Lambda,您可以实现按需计算,即只在需要时才执行代码。这样可以大大减少计算资源的浪费,并降低成本。此外,AWS Lambda 提供了高度可扩展的架构,可以自动处理大量并发请求,并为您的代码提供高可用性和可靠性。 总之,AWS Lambda 是一项极具吸引力的云计算服务,适用于各种场景和应用。无论您是初学者还是有经验的开发人员,使用 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的“函数即服务”(Function-as-a-Service)。

AWS Lambda功能

以下是AWS Lambda提供的一些重要功能:

  • AWS Lambda可以轻松扩展基础架构,无需进行任何其他配置。它减少了涉及的操作工作。
  • 它提供多个选项,如S3、CloudWatch、DynamoDB、API Gateway、Kinesis、CodeCommit等,可触发事件。
  • 您无需预先投资。您只需要支付由lambda函数使用的内存以及请求数量的最低成本,因此具有成本效益。
  • AWS Lambda是安全的。它使用AWS IAM来定义所有角色和安全策略。
  • 它为运行代码和函数的服务提供了容错性。您不必担心应用程序停机。

AWS Lambda定价

AWS Lambda的定价取决于您编写的lambda函数的运行时间和内存使用量。您可以为lambda函数分配的最大内存是3008 MB,每次递增64 MB。下面是一个价格表,显示了所有内存片段的100毫秒价格。

AWS Lambda如何工作?

  • 首先,您创建一个函数并向其添加基本信息,例如用于函数的编程语言。
  • 然后,您可以在lambda编辑器上编写代码,或者以支持的编程语言将代码上传为zip文件。
  • 一旦lambda代码上传,该服务将处理所有容量扩展、补丁和基础架构的管理工作。
  • 要运行代码,您需要使用外部AWS服务触发lambda函数,该服务可以调用lambda函数。例如,它可以是一个S3存储桶。
  • 几秒钟后,lambda将准备好在事件发生时自动触发您的函数。AWS Lambda在调用触发事件时运行您的代码。它为您提供服务器的配置、管理和监控。
  • 如果您的函数需要大量处理能力,它将选择具有更多处理能力和RAM的实例类型;否则,如果您的lambda代码仅执行两秒钟,它将选择最低可能的实例,从而节省您的时间和金钱。

所以,这是AWS Lambda内部的工作原理。让我向您展示一下AWS Lambda的演示。

创建AWS Lambda函数

我将使用Node.js中的lambda函数在本文中创建一个非常简单的游戏。我将创建一个lambda函数来掷骰子,随机生成一个1到6之间的数字,并将其打印出来。

  • 进入AWS管理控制台,在搜索栏中键入Lambda,然后单击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 = '掷骰子结果为:' + randomNum;
return out;
};
  • 现在单击右上角的“测试”按钮。您将收到一个弹窗以配置测试事件,请输入事件名称,然后单击“配置”。

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

在执行结果中,您将看到我们刚刚编写的函数逻辑的输出。它打印出-掷骰子的结果是2。

  • 向上滚动并单击详细的执行结果,以获取带有预期输出的此lambda函数的完整摘要。还提供了诸如请求ID、持续时间、计费持续时间、配置的资源等详细信息以及日志输出。

  • 单击监控选项卡以查看在定义的时间内的日志和lambda函数性能。

  • 如果您进入由CloudWatch创建的日志中,您可以查看lambda函数运行时发生了什么,以及由CloudWatch监控的细节。

结论

Getting started with Lambda非常简单。如果您的业务应用程序需要运行后端代码,您可以考虑使用像AWS Lambda这样的serverless platform

类似文章