Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Stellen Sie eine React-basierte Einzelseitenanwendung auf Amazon S3 bereit und CloudFront
Erstellt von Jean-Baptiste Guillois () AWS
Code-Repository: React-basierte einseitige Anwendung CORS | Umgebung: Produktion | Technologien: Web- und mobile Apps; Serverlos |
Arbeitslast: Alle anderen Workloads | AWSDienste: Amazon API Gateway; Amazon CloudFront |
Übersicht
Eine einseitige Anwendung (SPA) ist eine Website oder Webanwendung, die den Inhalt einer angezeigten Webseite dynamisch aktualisiert, indem JavaScript APIs sie Dieser Ansatz verbessert die Benutzererfahrung und Leistung einer Website, da nur neue Daten aktualisiert werden, anstatt die gesamte Webseite vom Server neu zu laden.
Dieses Muster bietet einen step-by-step Ansatz zum Codieren und Hosten einerSPA, die in React auf Amazon Simple Storage Service (Amazon S3) und Amazon geschrieben ist CloudFront. Das SPA in diesem Muster verwendete eine RESTAPI, die in Amazon API Gateway konfiguriert und über eine CloudFront Amazon-Distribution verfügbar gemacht wurde, um die Verwaltung der ursprungsübergreifenden Ressourcenfreigabe (CORS) zu vereinfachen.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktiver AWS-Konto.
Node.js und
npm
, installiert und konfiguriert. Weitere Informationen finden Sie im Abschnitt Downloadsder Dokumentation zu Node.js. Yarn, installiert und konfiguriert. Weitere Informationen finden Sie in der Yarn-Dokumentation
. Git, installiert und konfiguriert. Weitere Informationen finden Sie in der Git-Dokumentation
.
Architektur
Diese Architektur wird automatisch mithilfe von AWS CloudFormation (Infrastruktur als Code) bereitgestellt. Es verwendet regionale Dienste wie Amazon S3 zum Speichern der statischen Ressourcen und Amazon CloudFront mit Amazon API Gateway, um regionale API (REST) Endpunkte verfügbar zu machen. Die Anwendungsprotokolle werden mithilfe von Amazon gesammelt CloudWatch. Alle AWS API Anrufe werden geprüft. AWS CloudTrail Die gesamte Sicherheitskonfiguration (z. B. Identitäten und Berechtigungen) wird in AWS Identity and Access Management (IAM) verwaltet. Statische Inhalte werden über das Amazon CloudFront Content Delivery Network (CDN) bereitgestellt, und DNS Anfragen werden von Amazon Route 53 bearbeitet.
Tools
AWSDienstleistungen
Amazon API Gateway unterstützt Sie bei der Erstellung, Veröffentlichung, Wartung, Überwachung und Sicherung REST — HTTP und das WebSocket APIs in jeder Größenordnung.
AWS CloudFormationhilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus regionsübergreifend AWS-Konten zu verwalten.
Amazon CloudFront beschleunigt die Verteilung Ihrer Webinhalte, indem es sie über ein weltweites Netzwerk von Rechenzentren bereitstellt, was die Latenz senkt und die Leistung verbessert.
AWS CloudTrailhilft Ihnen bei der Prüfung der Unternehmensführung, der Einhaltung von Vorschriften und des betrieblichen Risikos Ihrer AWS-Konto.
Amazon CloudWatch hilft Ihnen dabei, die Kennzahlen Ihrer AWS Ressourcen und der Anwendungen, auf denen Sie laufen, AWS in Echtzeit zu überwachen.
AWS Identity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.
Amazon Route 53 ist ein hochverfügbarer und skalierbarer DNS Webservice.
Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
Code
Der Beispielanwendungscode dieses Musters ist im GitHub React-basierten CORS einseitigen
Bewährte Methoden
Mithilfe des Amazon S3 S3-Objektspeichers können Sie die statischen Ressourcen Ihrer Anwendung auf sichere, hochbelastbare, leistungsstarke und kostengünstige Weise speichern. Für diese Aufgabe ist es nicht erforderlich, einen dedizierten Container oder eine Amazon Elastic Compute Cloud (AmazonEC2) -Instance zu verwenden.
Durch die Nutzung des Amazon CloudFront Content Delivery Network können Sie die Latenz reduzieren, die Ihren Benutzern beim Zugriff auf Ihre Anwendung entstehen kann. Sie können auch eine Firewall für Webanwendungen (AWS WAF) anbringen, um Ihre Ressourcen vor böswilligen Angriffen zu schützen.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Klonen Sie das Repository | Führen Sie den folgenden Befehl aus, um das Repository der Beispielanwendung zu klonen:
| App-Entwickler, AWS DevOps |
Stellen Sie die Anwendung lokal bereit. |
| App-Entwickler, AWS DevOps |
Lokal auf die Anwendung zugreifen. | Öffnen Sie ein Browserfenster und geben Sie den ein | App-Entwickler, AWS DevOps |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Stellen Sie die AWS CloudFormation Vorlage bereit. |
| App-Entwickler, AWS DevOps |
Passen Sie Ihre Anwendungsquelldateien an. |
| App-Developer |
Erstellen Sie das Anwendungspaket. | Führen Sie in Ihrem Projektverzeichnis den | App-Developer |
Stellen Sie das Anwendungspaket bereit. |
| App-Entwickler, AWS DevOps |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Greifen Sie auf die Anwendung zu und testen Sie sie. | Öffnen Sie ein Browserfenster und fügen Sie dann die CloudFront Verteilungsdomäne (die | App-Entwickler, AWS DevOps |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Löschen Sie den Inhalt des S3-Buckets. |
| AWS DevOps, App-Entwickler |
Lösche den AWS CloudFormation Stapel. |
| AWS DevOps, App-Entwickler |
Zugehörige Ressourcen
Um Ihre Webanwendung bereitzustellen und zu hosten, können Sie auch AWS Amplify Hosting verwenden, das einen Git-basierten Workflow für das Hosten serverloser Full-Stack-Web-Apps mit kontinuierlicher Bereitstellung bietet. Amplify Hosting ist Teil von AWS Amplify, das eine Reihe von speziell entwickelten Tools und Funktionen bietet, mit denen Frontend-Web- und Mobilentwickler schnell und einfach Full-Stack-Anwendungen erstellen können. AWS
Zusätzliche Informationen
Um ungültige Anfragen URLs des Benutzers zu behandeln, die zu 403-Fehlern führen könnten, fängt eine benutzerdefinierte Fehlerseite, die in der CloudFront Distribution konfiguriert ist, 403-Fehler ab und leitet sie an den Einstiegspunkt der Anwendung weiter (). index.html
Um die Verwaltung von zu vereinfachenCORS, REST API wird der über eine CloudFront Verteilung verfügbar gemacht.