Как развернуть приложение React в облаке Google (App Engine)?

Возможно, вы создали несколько приложений react на локальной машине и получили к ним доступ, запустив npm start. Вы когда-нибудь задавались вопросом, как развернуть их и разместить где-нибудь? В этой статье мы рассмотрим, как развернуть приложение react, созданное с помощью create react app, на Google Cloud App Engine.

Создание приложения react

Если у вас уже есть существующее приложение, перейдите к следующему разделу.

Выполните следующую команду, чтобы создать новое приложение react:

npx create-react-app react-gcp-app-engine
Войти в полноэкранный режим Выйти из полноэкранного режима

Создание файла app.yaml

Google Cloud требует наличия файла app.yaml в корневом каталоге проекта, который указывает ему, как развернуть ваше приложение. Создайте файл с именем app.yaml в корневом каталоге вашего проекта со следующим содержимым:

runtime: nodejs16
handlers:
  # Serve all static files with url ending with a file extension
  - url: /(.*..+)$
    static_files: build/1
    upload: build/(.*..+)$
  # Catch all handler to index.html
  - url: /.*
    static_files: build/index.html
    upload: build/index.html
Войти в полноэкранный режим Выйти из полноэкранного режима

Вышеуказанный файл указывает Google Cloud загрузить все содержимое внутри папки build и направлять любой входящий запрос в корень на build/index.html.

Создание нового проекта в Google Console

Если вы еще не зарегистрировались в Google Cloud, вы можете сделать это, перейдя по адресу http://console.cloud.google.com/.

После регистрации в Google Cloud перейдите на панель Cloud Console Dashboard и создайте новый проект.

Нажмите на кнопку Новый проект:

Дайте имя проекту и нажмите на кнопку Создать:

Создание проекта займет некоторое время. Вы можете просмотреть прогресс, нажав на значок уведомления в заголовке:

Теперь выберите только что созданный проект и откройте его:

Создание App Engine

Теперь давайте создадим App Engine, на котором будет размещено наше приложение.

Найдите «App Engine» в строке поиска и нажмите на App Engine:

Теперь нажмите на Create Application:

Выберите регион, если хотите (выберите регион страны, из которой большинство ваших пользователей), в противном случае оставьте все как есть. В выпадающем списке Service account выберите учетную запись по умолчанию и нажмите Next:

Подождите, пока приложение будет создано. Как только оно будет завершено, в заголовке появится уведомление.

Развертывание на Google App Engine

Существует два способа развертывания в Google Cloud: один — с помощью Google Cloud SDK, другой — с помощью Google Cloud Shell. Мы рассмотрим оба способа.

Развертывание с помощью Google Cloud SDK

Сначала установите Google Cloud SDK, выполнив следующую команду Powershell в Windows:

(New-Object Net.WebClient).DownloadFile("https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe", "$env:TempGoogleCloudSDKInstaller.exe")

& $env:TempGoogleCloudSDKInstaller.exe

Войти в полноэкранный режим Выйти из полноэкранного режима

Если вы используете любую другую операционную систему, вы можете найти инструкции по установке здесь.

После установки SDK откройте командную строку в режиме администратора, перейдите в каталог проекта и выполните следующую команду:

gcloud init
Войти в полноэкранный режим Выйти из полноэкранного режима

Программа попросит вас войти в систему, если вы запускаете ее в первый раз. После входа в систему укажите параметры, как показано ниже:

Теперь соберите проект с помощью следующей команды (в качестве альтернативы можно использовать yarn build):

npm run build
Войти в полноэкранный режим Выйти из полноэкранного режима

После завершения сборки выполните следующую команду deploy, чтобы развернуть файлы сборки на Google App Engine:

gcloud app deploy
Войти в полноэкранный режим Выйти из полноэкранного режима

Когда появится запрос на подтверждение, введите Y:

После завершения развертывания будет выведен URL-адрес, на котором развернуто приложение. Вы можете посетить его (https://my-react-app-338316.uc.r.appspot.com) и проверить, нормально ли загружаются страницы.

Развертывание с помощью Google Cloud Shell

Альтернативным способом развертывания без локальной установки Google Cloud SDK является запуск развертывания из Google Cloud Shell.

Прежде чем продолжить, убедитесь, что вы разместили свой проект в git-репозитории, чтобы мы могли загрузить его на машину Cloud Shell.

Вы можете активировать Cloud Shell, нажав на значок терминала в заголовке вашей консоли Google:

В браузере откроется консоль. Теперь клонируйте свой репозиторий, выполнив следующую команду (замените git URL на свой):

git clone https://github.com/collegewap/react-gcp-app-engine.git
Войти в полноэкранный режим Выйти из полноэкранного режима

Теперь перейдите в клонированный каталог, используя cd react-gcp-app-engine/.

Установите все зависимости, запустив npm i.

После установки зависимостей начните сборку проекта, используя следующую команду:

npm run build
Войти в полноэкранный режим Выйти из полноэкранного режима

После завершения сборки запустите gcloud app deploy, чтобы развернуть ваше приложение.

Может появиться запрос на авторизацию облачной оболочки, пожалуйста, нажмите на Authorize:

После завершения развертывания будет распечатан URL, на котором развернуто приложение, и вы сможете получить к нему доступ.

Настройка пользовательского домена в Google App Engine

App Engine по умолчанию назначит вашему сайту случайный поддомен типа https://my-react-app-338316.uc.r.appspot.com/. Если вы хотите настроить свой собственный домен, вы можете сделать это, нажав Настройки → Пользовательский домен → Добавить пользовательский домен.

Вам придется проверить свой домен и обновить записи DNS у регистратора доменов.

Оцените статью
devanswers.ru
Добавить комментарий