课程 在 AWS 技能树

AWS API Gateway 与 Cognito 入门

构建支持请求验证、浏览器客户端以及私有数据登录访问的订单 API。通过可观察的请求与存储结果连接 API Gateway、Lambda、DynamoDB 和 Cognito。

AWS

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

构建支持请求验证、浏览器客户端以及私有数据登录访问的订单 API。通过可观察的请求与存储结果连接 API Gateway、Lambda、DynamoDB 和 Cognito。

5 个引导实验从 HTTP API 过渡到浏览器 CORS、Cognito 登录和 JWT 路由保护。独立挑战修复暴露订单的私有 API,同时保留公开健康检查端点。

你将学到什么

  • 通过 HTTP API 暴露 Lambda 函数
  • 验证订单输入并计算 DynamoDB 支持的结果
  • 配置浏览器来源、方法和请求头的 CORS 行为
  • 通过 Cognito 登录并刷新应用凭据
  • 用 JWT authorizer 保护私有路由
  • 验证被拒绝请求不会改变业务数据
  • 修复私有访问,同时保持公开健康检查正常

适合人群

适合已有 Lambda 和数据访问基础,希望构建并保护应用 API 的学习者。

先修要求: 先掌握 Lambda 部署与配置(FN01/FN02)及其 IAM 角色、CloudWatch Logs 前置。订单 API 另需 Lambda–DynamoDB 访问(FN03)。按各实验具体前置学习:CORS 与登录均可接在订单 API 之后,JWT 路由保护需要先学习登录;完成 JWT 保护后再做挑战。

学习环境: 所有活动都在 LabEx 提供的浏览器 Linux 环境中进行。使用 Terminal 执行 AWS CLI 命令,并在其旁边的 AWS View 查看相同的资源和应用状态。工具与连接已准备好,无需个人 AWS 账户或访问密钥。每个实验都在全新的 VM 中独立开始。 CORS 实验在 AWS View 中提供 Browser Client 入口,用于实际浏览器请求。身份视图仅显示安全元数据,不显示密码或 bearer token。

常见问题

CORS 是身份验证机制吗?

不是。CORS 控制浏览器访问行为,不建立用户身份。应用登录也与 IAM 资源权限不同;有效 JWT 本身不能证明用户拥有某个订单。

如何测试私有路由?

HTTP 请求必须执行目标函数并读取或写入存储项目。授权拒绝应在 Lambda 之前阻止请求,业务数据保持不变。比较网关决策、函数事件/响应日志和记录。仅使用提供的示例身份,并保护认证文件。

覆盖哪些 API 和登录功能?

课程使用 HTTP API、$default AutoDeploy stage、Python payload 2.0 集成,以及限定的 Cognito 密码/刷新和 RS256/JWKS JWT 流程。路由 scope 使用 Cognito 用户自助服务 scope。不涉及自定义业务 scope、按用户隔离订单、托管 OAuth/MFA、生产签名密钥轮换或发布自动化。

完成后可以进入项目吗?

可以。在完成 Secrets Manager 和 Parameter Store 先修后,这些能力可用于私有 API 项目。每个单元独立开始,先完成功能检查,再删除自有资源并保留无关参考资源。

教师

labby
Labby
Labby is the LabEx teacher.