= Jak używać AWS Amplify do wdrażania aplikacji React = == Przewodnik po wdrażaniu React Applications z AWS Amplify == ![ ](httpsmiro.medium.com/max/1400/1*pKiBeVwoxaHc_QlhIpVgSA.gif) Odkąd zacząłem konsultować się jako inżynier oprogramowania, chciałem stworzyć witrynę z portfolio, która prezentuje projekty osobiste i zawodowe, nad którymi pracowałem. Tej przerwy zimowej spędziłem czas projektując, rozwijając i wdrażając moją witrynę z portfolio, aw tym artykule przeprowadzę Cię przez proces wdrażania jej z AWS Amplify. Witrynę można obejrzeć pod adresem dan-murphy.com, a kod w serwisie GitHub. = Krótkie tło = Większość mojej pracy zawodowej polega na budowaniu aplikacji opartych na danych i usprawnianiu potoków danych. Aby wykonać te zadania, regularnie używam Pythona i Ruby oraz włączam JavaScript do wszelkich prac frontendowych. Aby lepiej poznać Reacta, zdecydowałem się użyć tego frameworka do zbudowania mojej strony z portfolio. = Konfigurowanie aplikacji = Pierwszym krokiem, jaki podjąłem, było podjęcie decyzji, jak ustrukturyzować aplikację. wykorzystałem create-react-app jako podstawowy szablon dla moich katalogów, a następnie zreorganizowałem aplikację, dodając kilka dodatkowych folderów. Gotowa konfiguracja wygląda następująco: źródło składniki Archiwa âÃàdodatki ¢ÃÃÂdane âÃÃÂimgs strony ¢ÃÃÂspis ¢ÃÃÂdane style testy armatura Niektóre z godnych uwagi zmian to **składniki** , oraz **strony** katalogi. **style** , : Tutaj przechowuję wszystkie komponenty aplikacji. Przechowywanie komponentów w scentralizowanym folderze ułatwia ponowne użycie i refaktoryzację mojego kodu oraz jest bardziej intuicyjne dla innych do zrozumienia. Niektóre elementy, które składają się na moją witrynę z portfolio, to składniki Nagłówek, Stopka i Pasek boczny projektu. : W tym miejscu tworzę odrębne strony dla aplikacji. Importuję potrzebne komponenty z strony folder, a następnie agregować je w celu zaprojektowania strony. Oto przykład, jak to zrobiłem dla strona główna komponentów: : Tutaj definiuję globalne style CSS dla aplikacji. Uwielbiam używać style styled-components dla poszczególnych komponentów, ale odkryłem również, że przydatne jest tworzenie globalnych stylów, które są dostępne dla każdej strony. Na koniec, aby zmapować żądania na odpowiednie strony, używamy reaguj-router-dom. Trasy są określone w Plik App.js, jak pokazano poniżej: Spowoduje to zmapowanie Strona główna, /projekcje żądań do ProjektyStrona, /o prośbach do O stronie i /prośby o półkę na książki do Strona książki. Teraz, gdy rozwój aplikacji jest zakończony, musimy ją wdrożyć, aby inni mogli z niej korzystać! /prośby do = Wdrażanie za pomocą AWS Amplify = == Przegląd == Istnieje kilka sposobów wdrożenia witryny React, ale odkryłem, że jednym z najprostszych jest użycie **AWS Amplify Amplify jest opisywane jako „najszybszy i najłatwiejszy sposób tworzenia skalowalnych aplikacji mobilnych i internetowych”. Aby to osiągnąć, AWS ekstrapoluje wszystkie komplikacje związane z konfiguracją serwera, instalacją zależności i tworzeniem wersji produkcyjnej Twojej witryny, pozwalając Ci skupić się wyłącznie na budowaniu intuicyjnego UX. Aby dowiedzieć się więcej o tym, co AWS Amplify oferuje dla aplikacji opartych na danych (w szczególności stron internetowych z **frontendem** i **backendem), zapoznaj się z ich dokumentacją. == Łączenie twojego repozytorium == Aby hostować swoją aplikację internetową w AWS Amplify, musisz najpierw połączyć repozytorium zawierające kod źródłowy. Aby to zrobić, możesz przejść do *AWS Amplify* *Pierwsze kroki* **Hostuj moją aplikację internetową i kliknij **Połącz repozytorium aplikacji *stronę, przewiń do*strony, przewiń do ![ ](httpsmiro.medium.com/max/1400/1*2OLIf9dDvf2ZDqjhXUXuGw.png ) Następnie zostaniesz przekierowany na oddzielną stronę, na której możesz podłączyć repozytorium zawierające Twój kod źródłowy. W tym przykładzie wybiorę GitHub, ale AWS Amplify obsługuje również BitBucket, GitLab, AWS CodeCommit, a nawet wdrażanie bez dostawcy Git. ![ ](httpsmiro.medium.com/max/1400/1*Dq8nN8mntiNegYIXarbtAw.png) Po udanej autoryzacji możesz wybrać repozytorium, które chcesz wdrożyć, i wybrać gałąź, której AWS Amplify ma używać do kompilacji produkcyjnych. ![ ](httpsmiro.medium.com/max/1400/1*OOlYA6q2eCplw4hW2IQP8Q.png) Następnie kliknij **Next** i AWS poprosi o skonfigurowanie ustawień *kompilacji* i *testu*. Podstawowy szablon udostępniany przez AWS pokazano poniżej. wersja 1 nakładka: fazy: prekompilacja: polecenia: - npm zainstaluj kompilację: polecenia: - npm uruchom kompilację artefakty: Bazowy katalog: kompilacja pliki: - Pamięć podręczna: ścieżki: -moduły_węzłów Dodatkowo pod **zaawansowane ustawienia** przełączają, możesz ustawić zmienne środowiskowe i niestandardowy kontener kompilacji. Na koniec, po przejrzeniu ustawień aplikacji, kliknij **Zapisz i wdróż **i **AWS rozpocznie konfigurowanie i wdrażanie Twojej aplikacji. Po zakończeniu wdrażania AWS możesz przejść do strony głównej Amplify i zobaczyć, jak nowo wdrożona aplikacja AWS rozpocznie konfigurowanie i wdrażanie Twojej aplikacji. Po zakończeniu wdrażania AWS możesz przejść do strony głównej Amplify i zobaczyć swoją nowo wdrożoną aplikację. Teraz dostosujmy adres URL za pomocą **AWS Wzmocnij zarządzanie domeną == Dodawanie domeny niestandardowej == Aby rozpocząć dodawanie domeny niestandardowej, przejdź do lewego paska bocznego i wybierz **zarządzanie domenami![ ](httpsmiro.medium.com/max/1400/1*fo8ZsKK7c3QvAwpjzMXcWg.png) **zarządzanie domeną**ustawienie. Następnie wybierz **dodaj domenę **skonfiguruj domenę **wprowadź nazwę swojej domeny (jak pokazano poniżej) i kliknij **wprowadź nazwę swojej domeny (jak pokazano poniżej) i kliknij ![ ](httpsmiro.medium.com/max/1400/ 1*e57WryLPTPC7Ro-_d5XAgQ.png) Następnie możesz skonfigurować przekierowania, które są niezbędne dla Twojej domeny. Na przykład w poniższym przykładzie tworzę przekierowanie z httpsdan-murphy.com do httpswww.dan-murphy.com. ![ ](httpsmiro.medium.com/max/1400/1*yvEwLJmVK41H7ZPqDLB9Tg.png) Na koniec, po poprawnym skonfigurowaniu domeny niestandardowej, AWS dostarczy Ci **Certyfikat walidacyjny Możesz również wyświetlić ten certyfikat w konsoli Menedżera certyfikatów AWS. == Dodawanie rekordu CNAME == Ostatnim krokiem w konfigurowaniu domeny niestandardowej jest dodanie rekordu CNAME. W poniższym przykładzie używam Google Domains, ale podstawowe pojęcia pozostają takie same w przypadku różnych rejestratorów domen. Najpierw przewiń w dół do **Niestandardowe rekordy zasobów** w Google Domains. Utwórz rekord *CNAME *, który wskazuje wszystkie subdomeny na domenę AWS Amplify: Nazwa: wprowadź nazwę subdomeny. Jeśli subdomena to www.domena.com, wprowadź . Jeśli jest to www app.domain.com, wpisz app. Dane: na stronie zarządzania domeną kliknij Czynności, a następnie wybierz Wyświetl rekordy DNS. Następnie wprowadź domenę AWS Amplify dostępną w Konfiguruj dostawcę DNS. ![ ](httpsmiro.medium.com/max/1400/1*SSRoAAkYjf5dT2rD-kmEQw.png) Strona **Zarządzanie domenami**, wybierz **Akcje **Wyświetl rekordy DNS** W sumie niestandardowy rekord zasobu będzie wyglądał następująco: ![ ](httpsmiro.medium.com/max/1400/1*bZh8t77JswwonKCFyp7tog.png) Następnie dodaj jeszcze jeden Rekord *CNAME* wskazujący serwer sprawdzania poprawności Menedżera certyfikatów AWS. Zwalidowany Menedżer certyfikatów AWS obsługuje protokół TLS dla Twojej aplikacji: Nazwa: wprowadź subdomenę serwera weryfikacyjnego. Jeśli rekord DNS służący do weryfikacji własności Twojej domeny to _1234.example.com, wpisz tylko _1234. Dane: wprowadź certyfikat walidacji ACM. Jeśli serwer sprawdzania poprawności to _1234.abcdefg.acm-validations.aws., wprowadź _1234.abcdefg.acm-validations.aws. Wszystkie informacje dotyczące Twoich certyfikatów walidacyjnych znajdują się w konsoli Menedżera certyfikatów AWS. Po drugim Dodano *CNAME*, Twoje niestandardowe rekordy powinny wyglądać tak: ![ ](httpsmiro.medium.com/max/1400/1*79yex2fObLiK0Q0f0X4zeA.png) Na koniec dodajmy **Rekord syntetyczny**, aby skonfigurować przekierowanie subdomeny: Subdomena: wprowadź adres URL domeny: www. ![ ](httpsmiro.medium.com/max/1400/1*xi6ivE7Vsfz9AheFAHxPZQ.png) = Podsumowanie = Ogólnie rzecz biorąc, w tym artykule dowiedzieliśmy się, jak ustrukturyzować aplikacje React i wdrożyć je za pomocą AWS Amplify. Najpierw omówiliśmy, jak zmodularyzować aplikację reagującą *komponenty* *strony* foldery. Następnie dowiedzieliśmy się o **AWS Amplify** i o tym, jak za jego pomocą wdrażać aplikacje statyczne i oparte na danych. Na koniec dowiedzieliśmy się, jak używać **AWS Amplify Domain Management** i **Google Domains **do dostosowywania domeny naszej aplikacji. **i i Jeśli masz jakieś pytania, wątpliwości lub opinie na temat tego artykułu lub mojej witryny z portfolio, napisz do mnie w komentarzu lub napisz do mnie na adres *[email protected]*. Dziękuje za przeczytanie!