让我们学习 AWS Lambda 的基础知识以及如何逐步运行函数。
介绍
在构建应用程序时,您希望它们能够提供出色的用户体验。 为了让奇迹发生,您的应用程序需要一个运行以响应事件的后端代码。
但是管理用于托管和执行后端代码的基础设施需要您调整、配置和扩展大量服务器,管理操作系统更新,应用安全补丁,然后监控所有这些基础设施的性能和可用性。
如果您可以专注于构建出色的应用程序而不必担心它们的基础架构,那不是很好吗? 这就是 AWS Lambda 发挥作用的地方。
什么是 AWS Lambda?
AWS 拉姆达 是一种无服务器计算服务,可让您运行代码而无需担心配置或管理任何服务器。 您可以使用 AWS Lambda 以零管理方式运行您的应用程序或后端服务。 只需将您的代码上传到 Lambda,它就会运行您的代码,甚至可以扩展具有高可用性的基础设施。
您在 AWS Lambda 上运行的代码称为 lambda 函数。 目前,它支持以下编程语言:
- 爪哇
- Python
- C#
- 节点.js
- 去
- 电源外壳
- 红宝石
它还提供了一个运行时 API,可用于运行以其他(本机)编程语言编写的函数。
要使用 AWS Lambda,只有一个先决条件; 您应该在 AWS 上拥有一个帐户,您可以从中访问 AWS 管理控制台。
你可以称Lambda为AWS的FaaS(Function-as-a-Service)。
AWS Lambda 功能
以下是 AWS Lambda 提供的一些重要功能:
- AWS Lambda 无需任何额外配置即可轻松扩展基础设施。 它减少了涉及的操作工作。
- 它提供了多种选项,如 AWS S3、CloudWatch、DynamoDB、API 网关、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 账户中没有定义任何现有角色,我将继续并选择创建新角色选项。 单击创建函数。
- 您将收到一条成功消息,表明已创建油膏。 单击 Designer 窗口将其最小化。
- 接下来是功能代码窗口。
- 将下面提到的代码放在编辑器中。 您也可以使用 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、持续时间、计费持续时间、配置的资源等详细信息以及日志输出。
- 单击监控选项卡以可视化指定时间内的云监视日志和 lambda 函数性能。
- 如果你进入由 CloudWatch 创建的日志,你可以查看 lambda 函数运行时发生的事情的详细信息,这是由 CloudWatch 监控的。
结论
开始使用 Lambda 真的很容易。 如果您的业务应用程序需要运行后端代码,您可以考虑使用 AWS Lambda 等无服务器平台。
喜欢阅读这篇文章吗? 与世界分享怎么样?