基于JavaScript的无服务器函数:AWS Lambda从入门到精通

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

无服务器与AWS Lambda入门



现代云开发越来越倾向于采用serverless(无服务器)架构。尽管名称如此,服务器并没有消失——你只是不再需要考虑它们。AWS Lambda是亚马逊的一项服务,允许你在无需配置和管理服务器的情况下运行代码。你只需为实际执行时间和请求次数付费。



在本文中,我们将从基础到实际示例,全面讲解JavaScript (Node.js)上的AWS Lambda。你将学习如何创建、配置和部署函数,并了解最佳实践。



适用于Node.js的AWS Lambda基础



什么是Lambda函数?

Lambda函数是一个独立的代码块,用于响应事件(触发器)而执行。函数接收event(事件数据)和context(执行环境信息)作为输入,并返回结果。



最简单的Lambda函数结构

一个基本的Node.js函数如下所示:



exports.handler = async (event, context) => {    const name = event.queryStringParameters?.name || '访客';    const response = {        statusCode: 200,        body: JSON.stringify({ message: `你好,${name}!` }),    };    return response;};


  • exports.handler — 必需的入口点。
  • event — 包含触发器传递的数据(例如来自API Gateway的HTTP请求)。
  • context — 提供用于管理执行的方法(时间、日志记录器、标识符)。
  • 函数必须是async或返回一个Promise。


触发器(调用源)

Lambda并非孤立存在。它可以被以下方式调用:

  • API Gateway — HTTP请求(REST/WebSocket)。
  • S3 — 文件上传/删除。
  • DynamoDB Streams — 数据库变更。
  • SQS/SNS — 消息队列。
  • CloudWatch Events — 定时任务(cron)。


创建和部署Lambda函数



步骤1:环境配置

你需要:

  • AWS账户。
  • 已安装AWS CLI并配置好凭据。
  • Node.js(版本18或20,AWS推荐)。


步骤2:通过控制台创建函数

这是新手最快的方法:

  1. 进入AWS Management Console → Lambda。
  2. 点击“创建函数” → “从头开始”。
  3. 指定名称,选择运行时Node.js 20.x。
  4. 点击“创建”。

在代码编辑器中粘贴上面的示例,然后点击“部署”。完成!



步骤3:使用AWS CLI部署

为了实现自动化部署,使用以下命令:

zip -r function.zip index.js node_modulesaws lambda update-function-code \    --function-name my-first-lambda \    --zip-file fileb://function.zip


高级场景与最佳实践



使用环境变量

切勿在代码中存储机密信息。使用process.env:

const dbPassword = process.env.DB_PASSWORD;const tableName = process.env.TABLE_NAME;

变量在函数设置中配置(Configuration → Environment variables)。



错误处理与日志记录

使用内置日志记录器console.log——它会自动将日志发送到CloudWatch:

exports.handler = async (event) => {    console.log('收到事件:', JSON.stringify(event, null, 2));    try {        // 你的代码    } catch (error) {        console.error('错误:', error.message);        throw e                

博客

书籍推荐