当前位置: 首页 > backend >正文

实战演练:用 AWS Lambda 和 API Gateway 构建你的第一个 Serverless API

实战演练:用 AWS Lambda 和 API Gateway 构建你的第一个 Serverless API


理论千遍,不如动手一遍!在前面几篇文章中,我们了解了 Serverless 的概念、FaaS 的核心原理以及 BaaS 的重要作用。现在,是时候把这些知识运用起来,亲手构建一个简单但完整的 Serverless 应用了。

本次实战,我们将使用 Amazon Web Services (AWS) 这个主流的云平台,结合它的两个核心 Serverless 服务:

  • AWS Lambda (FaaS): 运行我们的后端代码。
  • AWS API Gateway (BaaS): 创建一个公开的 HTTP 接口,接收请求并触发 Lambda 函数。

目标: 创建一个简单的 HTTP GET API 端点,当用户访问这个端点时,它会返回一个 JSON 消息:“Hello from Lambda!”。

听起来很简单?没错!但这将让你体验到 Serverless 开发的核心流程。

准备工作

在开始之前,请确保你已准备好:

  1. 一个 AWS 账户: 如果没有,可以访问 AWS 官网 免费注册一个。新用户通常有一年的免费套餐额度,足够我们本次实验使用。
  2. 登录 AWS 管理控制台: 我们将主要通过 AWS 的网页界面来完成操作,对新手更友好。
  3. (可选) Node.js 环境: 我们将使用 Node.js 编写 Lambda 函数代码。虽然可以直接在 AWS 控制台编辑,但如果你想在本地编写和测试,需要安装 Node.js (LTS 版本即可)。

准备好了吗?我们开始吧!

第一步:创建 Lambda 函数

我们的“大脑”——处理请求的代码,将放在 Lambda 函数中。

  1. 登录 AWS 管理控制台。
  2. 在顶部的搜索栏中输入 Lambda,然后点击进入 Lambda 服务页面。
  3. 点击 “创建函数” (Create function) 按钮。
  4. 选择 “从头开始创作” (Author from scratch)
  5. 基本信息配置:
    • 函数名称 (Function name): 输入一个有意义的名称,例如 myHelloFunction
    • 运行时 (Runtime): 选择一个较新的 Node.js LTS 版本,例如 Node.js 18.xNode.js 20.x
    • 架构 (Architecture): 保持默认的 x86_64 即可。
    • 权限 (Permissions): 展开 “更改默认执行角色” (Change default execution role)。选择 “创建具有基本 Lambda 权限的新角色” (Create a new role with basic Lambda permissions)。这将自动创建一个允许函数将日志写入 AWS CloudWatch 的角色,方便后续排查问题。
  6. 点击 “创建函数” (Create function)。等待函数创建完成。

编写函数代码:

  1. 函数创建成功后,向下滚动到 “代码源” (Code source) 部分。

  2. 你会看到一个默认的 index.mjsindex.js 文件。将其中的全部内容替换为以下 Node.js 代码:

    // 使用 async/await 语法定义 handler
    export const handler = async 
http://www.xdnf.cn/news/5423.html

相关文章:

  • uniapp-商城-53-后台 商家信息(更新修改和深浅copy)
  • 深度解析谷歌TPU架构:从硬件原理到AI模型优化实战
  • USB学习【7】传输模式
  • 【内网渗透】——MS14-068漏洞利用以及复现黄金票据
  • 操作系统: 第三章节 :中断和处理机调度
  • Scrapy 核心组件解析:Request Response 的深度应用与实战
  • 缓存(5):常见 缓存数据淘汰算法/缓存清空策略
  • Oracle Goldengate并行复制进程状态查看没有transaction信息
  • 不可导的几种情况
  • ARMV8 RK3399 u-boot TPL启动流程分析 --start.S
  • TypeScript 装饰器详解
  • 论文阅读与写作:《从探索到突破:解密科研和论文写作的思维密码》
  • 17.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--loki
  • Stream流
  • 一周内学完计算机网络课程之二:计算机网络物理层的理解
  • STM32智能窗帘系统:从零到一的开发实战
  • 如何租用服务器并通过ssh连接远程服务器终端
  • 【计算机网络01】 网络组成与三种交换方式
  • Web 实时通信技术:WebSocket 与 Server-Sent Events (SSE) 深入解析
  • 【RAG】11种Chunking Strategies分块策略介绍和选择
  • VirtualBox中安装并运行ubuntu-24.04.2-desktop虚拟机
  • Linux基础整理
  • Docker Compose 完全指南:从入门到生产实践
  • java的Stream流处理
  • 数据库事务以及JDBC实现事务
  • 模型欠拟合是什么?
  • 基于VSCode + PlatformIO平台的ESP8266的DS1302实时时钟
  • AI日报 · 2025年05月11日|传闻 OpenAI 考虑推出 ChatGPT “永久”订阅模式
  • Linux中常见开发工具简单介绍
  • 05.three官方示例+编辑器+AI快速学习three.js webgl - animation - skinning - ik