使用Node.js和AWS lambda构建无服务器应用程序
您是否正在寻找一种创建和部署无服务器Node.js应用程序的快速简便的方法?别再看!由于其可伸缩性,快速处理大型工作负载的能力以及节省成本,因此无服务器应用程序变得越来越受欢迎。使用无服务器应用程序,您可以专注于编写代码和部署应用程序,而不是管理和配置服务器。在本文中,我们将介绍如何使用node.js和aws lambda构建无服务器应用程序。
为了充分利用本教程,您应该先前使用JavaScript,Node.js和Amazon Web Services(AWS)工作。我们将详细介绍以下主题:
- 无服务器体系结构的概述
- 设置AWS帐户
- 创建AWS lambda函数
- 用node.js编写快递服务器
- 部署应用程序
无服务器体系结构的概述
一词无服务器体系结构具有误导性,因为作为开发人员,您仍在与服务器合作。这里的关键是,您不必成为负责管理服务器的人。 AWS Lambda之类的无服务器平台为您服务服务器的配置和扩展。
无服务器体系结构由三个主要组件组成:
-
aws lambda函数: lambda函数是用支持的语言(node.js,java,python等)编写的一件代码。或事件发生时执行。
-
事件:事件是触发lambda函数的事件,例如用户请求访问网页或添加到数据库中的数据。
-
云基础结构:云基础结构是无服务器体系结构的核心。该组件可以是任何云服务提供商,例如AWS,Microsoft Azure或Google Cloud。
设置AWS帐户
在创建和部署lambda函数之前,您需要创建一个AWS帐户。为此,请前往AWS website并注册一个帐户。完成注册过程后,您将要求配置您的帐户。您可以将所有默认设置作为IS,然后单击“继续”。
设置帐户后,您将被要求输入您的信用卡信息。不用担心 - AWS Lambda每月最多可免费提供100万个请求。如果您保持自由层限制,您将不收取任何费用。
一旦您输入了信用卡信息,就可以开始使用AWS平台了。
创建AWS lambda功能
现在您创建了AWS帐户,您就可以创建一个lambda功能了!为此,请导航到AWS管理控制台。在左侧,您应该看到列出的各种服务。选择lambdaâ,然后单击创建功能。
在下一页上,您将被要求选择一个蓝图。蓝图本质上是用特定语言编写的基本lambda函数的模板。对于本教程,我们将选择用Node.js编写的Hello World蓝图。给您的函数一个名称(我们将称其为“无服务器应用”),然后单击创建函数。
您现在应该能够看到新创建的lambda功能的代码。此代码只是将“ Hello World”打印到控制台。随时探索代码,并更好地了解lambda功能的工作方式。
用node.js编写快递服务器
现在我们创建了lambda函数,我们可以开始为无服务器应用程序编写代码。对于此应用程序,我们将使用流行的Express web framework进行node.js。
Express是一个最小且灵活的Node.js Web应用程序框架,为开发Web和移动应用程序提供了一组强大的功能。它具有简单的API,设计用于易用性,并且是最受欢迎的Node.js Web框架。
让我们从创建Express Server开始。创建一个名为server.js
的新文件并添加以下代码:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
// Send a response here
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
上面的代码创建了Express服务器的实例,并为/
路径设置了路由。当向/
路径提出请求时,将调用GET
处理程序功能。
部署应用程序
现在我们为无服务器应用程序创建了代码,我们可以将其部署到云中。为此,我们需要将代码上传到AWS Lambda。在AWS管理控制台中,选择“无服务器应用”功能,然后单击“上传”按钮。在下一页上,您应该看到上传.zip文件的选项。将您的server.js
文件上传到此字段中,然后单击“上传”按钮。
上传文件后,您可以在控制台中选择“测试”选项。这将触发lambda函数,并调用我们编写的GET
处理程序功能。您应该在控制台中看到成功的响应。
就是这样!现在,您拥有在AWS Lambda上运行的功能齐全的无服务器应用程序。
结论
在本教程中,我们介绍了使用node.js和aws lambda创建无服务器应用程序的过程。我们使用Express Web框架创建了一个简单的端点,该端点是使用Lambda部署到云的。
我们仅刮擦了无服务器应用程序可能的表面。如果您想了解有关无服务器应用程序的更多信息,请查看this blog post有关Nestjs和this blog post的启动,以构建带有打字稿和Express的RESTFUL API。
使用node.js和AWS lambda构建无服务器应用程序是快速开发和部署应用程序的好方法,而不必担心服务器。希望本教程有助于您开始使用无服务器应用程序。
快乐编码!