表示層 - 使用 Amazon API Gateway 和 AWS Lambda 的 AWS 無伺服器多層架構

表示層

表示層負責與邏輯層互動,經由透過網際網路公開的 API Gateway REST 端點。任何支援 HTTPS 的用戶端或裝置都可以與這些端點通訊,使得您的表示層有靈活性可採取多種形式 (桌面應用程式、行動應用程式、網頁、IoT 裝置等)。根據您的要求,您的表示層可以使用以下 AWS 無伺服器產品:任何支援 HTTPS 的用戶端或裝置都可以與這些端點通訊,使得您的表示層有靈活性可採取多種形式 (桌面應用程式、行動應用程式、網頁、IoT 裝置等)。根據您的要求,您的表示層可以使用以下 AWS 無伺服器產品:

  • Amazon Cognito - 無伺服器使用者身分和資料同步服務,使您能夠快速且有效地對您的 Web 和行動應用程式進行新增使用者註冊、登入和存取控制。Amazon Cognito 可擴展到數百萬使用者,並支援透過 SAML 2.0 使用社交身分供應商 (例如 Facebook、Google 和 Amazon) 以及企業身分供應商進行登入。

  • Amazon S3 與 CloudFront - 讓您能夠直接從 S3 儲存貯體為靜態網站 (如單頁應用程式) 提供服務,而無需佈建 Web 伺服器。您可以將 CloudFront 用作受管內容交付網路 (CDN),以提高效能並使用受管或自訂憑證啟用 SSL/TL。

AWS Amplify 是一套可以結合使用或單獨使用的工具和服務,用於協助前端 Web 和行動開發人員採用 AWS 技術建置可擴展的完整堆疊應用程式。Amplify 提供用於在全球範圍內部署和託管靜態 Web 應用程式的全受管服務,透過 Amazon CDN 全球範圍內的數百個連接點為這些應用程式提供服務,以及透過內建的 CI/CD 工作流程來加快應用程式的發佈週期。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。