表示层 - 使用 Amazon API Gateway 和 AWS Lambda 的 AWS 无服务器多层架构

表示层

表示层负责通过互联网上公开的 API Gateway REST 端点与逻辑层进行交互。任何支持 HTTPS 的客户端或设备都可以与这些端点进行通信,从而使表示层能够灵活地采用多种形式(桌面应用程序、移动应用程序、网页、IoT 设备等)。根据您的要求,表示层可使用以下 AWS 无服务器产品:任何支持 HTTPS 的客户端或设备都可以与这些端点进行通信,从而使表示层能够灵活地采用多种形式(桌面应用程序、移动应用程序、网页、IoT 设备等)。根据您的要求,表示层可使用以下 AWS 无服务器产品:

  • Amazon Cognito – 一项无服务器用户身份和数据同步服务,使您能够快速、高效地将用户注册、登录和访问控制添加到您的 Web 和移动应用程序中。Amazon Cognito 可扩展至数百万用户,并支持使用社交身份提供商(如 Facebook、Google 和 Amazon)以及企业身份提供商通过 SAML 2.0 登录。

  • 具有 CloudFront 的 Amazon S3 – 使您能够无需预置 Web 服务器,直接从 S3 存储桶为静态网站(例如单页应用程序)提供服务。您可以将 CloudFront 用作托管式内容分发网络(CDN)以提高性能,并使用托管式或自定义证书启用 SSL/TL。

AWS Amplify 是一组既可组合使用也可单独使用的工具和服务,能够帮助前端 Web 和移动开发人员构建由 AWS 提供支持的可扩展全栈式应用程序。Amplify 中的完全托管式服务依托于 Amazon 可靠的 CDN,凭借全球数百个节点以及可加快应用程序发布周期的内置 CI/CD 工作流,可在全球范围内部署和托管静态 Web 应用程序。Amplify 支持常见的 Web 框架(包括 JavaScript、React、Angular、Vue、Next.js)以及移动平台(包括 Android、iOS、React Native、Ionic 和 Flutter)。根据您的网络配置和应用程序要求,您可能需要使您的 API Gateway API 符合跨源资源共享(CORS)标准。符合 CORS 标准允许 Web 浏览器直接从静态网页中调用您的 API。

当您使用 CloudFront 部署网站时,系统会为您提供一个 CloudFront 域名以访问您的应用程序(例如 d2d47p2vcczkh2.cloudfront.net)。您可以使用 Amazon Route 53 注册域名并将其定向到您的 CloudFront 分配,或者将已拥有的域名定向到您的 CloudFront 分配。这样,用户就可以使用熟悉的域名访问您的站点。请注意,您还可以使用 Route 53 将自定义域名分配给 API Gateway 分配,这样用户就可以使用熟悉的域名调用 API。