= Как использовать AWS Amplify для развертывания приложения React = == Руководство по развертыванию приложений React с помощью AWS Amplify == ![ ](httpsmiro.medium.com/max/1400/1*pKiBeVwoxaHc_QlhIpVgSA.gif) С тех пор, как я начал консультировать в качестве инженера-программиста, я хотел создать веб-сайт-портфолио, демонстрирующий личные и профессиональные проекты, над которыми я работал. Этими зимними каникулами я потратил время на проектирование, разработку и развертывание своего сайта-портфолио, и в этой статье я расскажу вам, как я развернул его с помощью AWS Amplify. Вы можете просмотреть веб-сайт по адресу dan-murphy.com и код на GitHub. = Краткая предыстория = Большая часть моей профессиональной деятельности связана с созданием приложений, управляемых данными, и оптимизацией конвейеров данных. Для выполнения этих задач я регулярно использую Python и Ruby и включаю JavaScript для любой работы с интерфейсом. Чтобы освоиться с React, я решил использовать фреймворк для создания своего веб-сайта-портфолио. = Настройка приложения = Первым шагом, который я предпринял, было решение о том, как структурировать приложение. я использовал create-react-app в качестве базового шаблона для моих каталогов, а затем реструктурировал приложение, добавив несколько дополнительных папок. Окончательная установка выглядит так: источник составные части âÃÂÃÂархивы âÃÂÃÂдополнения âÃÂÃÂданные âÃÂÃÂimgs страницы âÃÂÃÂсодержание âÃÂÃÂданные стили тесты светильники Некоторые из заметных изменений заключаются в **составные части** , и **страницы** каталоги. **стили** , : Здесь я храню все компоненты приложения. Хранение компонентов в централизованной папке упрощает повторное использование и рефакторинг моего кода и делает его более интуитивно понятным для других. Некоторые из компонентов, которые составляют мой веб-сайт портфолио: составные части Заголовок, Нижний колонтитул и Боковая панель проекта. : Здесь я создаю отдельные страницы для приложения. Я импортирую необходимые компоненты из страницы папку, а затем объединить их для оформления страницы. Вот пример того, как я сделал это для главная страница компонентов: : здесь я определяю глобальные стили CSS для приложения. я люблю использовать стили styled-components для отдельных компонентов, но я также счел полезным создавать глобальные стили, доступные для каждой страницы. Наконец, чтобы сопоставить запросы с правильными страницами, мы используем реагировать-роутер-дом. Маршруты определены в Файл App.js, как показано ниже: Это будет отображать домашняя страница, /проекты запросы к ПроектыСтраница, /о запросах к О странице и /bookshelf просит Страница книги. Теперь, когда разработка приложения завершена, нам нужно развернуть его, чтобы им могли пользоваться другие! / просит = Развертывание с помощью AWS Amplify = == Обзор == Есть несколько способов развернуть веб-сайт React, но я обнаружил, что один из самых простых — использовать **AWS Amplify Amplify описывается как «самый быстрый и простой способ создания масштабируемых мобильных и веб-приложений». Для этого AWS экстраполирует все сложности настройки сервера, установки зависимостей и создания рабочей сборки вашего веб-сайта, позволяя вам сосредоточиться исключительно на создании интуитивно понятного UX. Чтобы узнать больше о том, что AWS Amplify предлагает для приложений, управляемых данными (в частности, веб-сайтов с **интерфейсом** и **сервером, ознакомьтесь с их документацией. == Подключение репозитория == Чтобы разместить свое веб-приложение на AWS Amplify, сначала необходимо подключить репозиторий, содержащий ваш исходный код. Для этого можно перейти к *AWS Amplify* *Начало работы* **Разместите мое веб-приложение и нажмите **Подключить репозиторий приложений *страница, прокрутите до*страницы, прокрутите до ![ ](httpsmiro.medium.com/max/1400/1*2OLIf9dDvf2ZDqjhXUXuGw.png ) Затем вы будете перенаправлены на отдельную страницу, где сможете подключить репозиторий, содержащий ваш исходный код. В этом примере я выберу GitHub, но AWS Amplify также поддерживает BitBucket, GitLab, AWS CodeCommit и даже развертывание без поставщика Git. ![ ](httpsmiro.medium.com/max/1400/1*Dq8nN8mntiNegYIXarbtAw.png) После успешной авторизации вы можете выбрать, какой репозиторий вы хотите развернуть, и выбрать ветку, которую AWS Amplify должен использовать для производственных сборок. ![ ](httpsmiro.medium.com/max/1400/1*OOlYA6q2eCplw4hW2IQP8Q.png) После этого нажмите **Далее**, и AWS попросит вас настроить параметры *сборки* и *теста*. Базовый шаблон, предоставляемый AWS, показан ниже. версия: 1 внешний интерфейс: фазы: предварительная сборка: команды: - сборка установки npm: команды: - запустить сборку npm артефакты: базовый каталог: построить файлы: - кеш: пути: - node_modules Кроме того, под **расширенные настройки**, вы можете установить переменные среды и собственный контейнер сборки. Наконец, просмотрев настройки вашего приложения, нажмите **Сохранить и развернуть **и **AWS начнет настройку и развертывание вашего приложения. Когда AWS завершит развертывание, вы можете перейти на домашнюю страницу Amplify и увидеть, что ваше недавно развернутое приложениеAWS начнет настройку и развертывание вашего приложения. Когда AWS завершит развертывание, вы сможете перейти на домашнюю страницу Amplify и увидеть только что развернутое приложение. Теперь давайте настроим URL, используя **Управление доменом AWS Amplify == Добавление личного домена == Чтобы начать добавление личного домена, перейдите на левую боковую панель и выберите **управление доменом ![ ](httpsmiro.medium.com/max/1400/1*fo8ZsKK7c3QvAwpjzMXcWg.png) **управление доменом**настройка. Затем выберите **добавить домен **настроить домен **введите имя вашего домена (как показано ниже) и нажмите **введите имя вашего домена (как показано ниже) и нажмите ![ ](httpsmiro.medium.com/max/1400/ 1*e57WryLTPPC7Ro-_d5XAgQ.png) После этого вы можете настроить любые редиректы, необходимые для вашего домена. Например, в следующем примере я создаю перенаправление с httpsdan-murphy.com на httpswww.dan-murphy.com. ![ ](httpsmiro.medium.com/max/1400/1*yvEwLJmVK41H7ZPqDLB9Tg.png) Наконец, после правильной настройки личного домена AWS предоставит вам **Сертификат проверки Вы также можете просмотреть этот сертификат в консоли AWS Certificate Manager. == Добавление записи CNAME == Последним шагом в настройке личного домена является добавление записи CNAME. В следующем примере я использую домены Google, но основные понятия остаются одинаковыми для разных регистраторов доменов. Сначала прокрутите вниз до **Пользовательские записи ресурсов** в Google Domains. Создайте запись *CNAME *, указывающую все субдомены на домен AWS Amplify: Имя: введите имя субдомена. Если субдомен www.domain.com, введите . Если это www app.domain.com, введите app. Данные. На странице управления доменом нажмите «Действия» и выберите «Просмотреть записи DNS». Затем введите домен AWS Amplify, доступный в разделе «Настройка поставщика DNS». ![ ](httpsmiro.medium.com/max/1400/1*SSRoAAkYjf5dT2rD-kmEQw.png) На странице **Управление доменами** выберите **Действия **Просмотр записей DNS**. В целом запись пользовательского ресурса будет выглядеть следующим образом: ![ ](httpsmiro.medium.com/max/1400/1*bZh8t77JswwonKCFyp7tog.png) Далее добавляем еще один Запись *CNAME*, указывающая на сервер проверки AWS Certificate Manager. Проверенный менеджер сертификатов AWS обрабатывает TLS для вашего приложения: Имя: введите субдомен сервера проверки. Если запись DNS для подтверждения права собственности на ваш домен — _1234.example.com, введите только _1234. Данные: введите сертификат проверки ACM. Если сервер проверки — _1234.abcdefg.acm-validations.aws., введите _1234.abcdefg.acm-validations.aws. Вся информация о ваших сертификатах проверки находится в консоли AWS Certificate Manager. После второго Добавлен *CNAME*, ваши пользовательские записи должны выглядеть так: ![ ](httpsmiro.medium.com/max/1400/1*79yex2fObLiK0Q0f0X4zeA.png) Наконец, давайте добавим **Синтетическая запись** для настройки субдомена вперед: Субдомен: введите URL-адрес домена: www. ![ ](httpsmiro.medium.com/max/1400/1*xi6ivE7Vsfz9AheFAHxPZQ.png) = Подведение итогов = В целом, в этой статье мы узнали, как структурировать приложения React и развертывать их с помощью AWS Amplify. Во-первых, мы обсудили, как разбить реагирующее приложение на модули. *компоненты* *страницы* папки. Затем мы узнали об **AWS Amplify** и о том, как с его помощью развертывать статические приложения и приложения, управляемые данными. Наконец, мы узнали об использовании **AWS Amplify Domain Management** и **Google Domains** для настройки домена нашего приложения. **и и Если у вас есть какие-либо вопросы, проблемы или отзывы об этой статье или моем сайте-портфолио, не стесняйтесь комментировать или пишите мне по адресу *[email protected]*. Спасибо за чтение!