Развертывание FrontEnd и BackEnd как двух отдельных приложений с помощью Google Cloud App Engine

У меня есть два приложения, которые я хочу развернуть с помощью Google Cloud App Engine.

Одним из них является react front end, и я хочу обслуживать его через www.videoo.io

Второй - back-end, который будет обслуживаться через api.videoo.io

Frontend yaml файл react.yaml :

runtime: nodejs16

env: standard
handlers:
- url: /static
  static_dir: static
  secure: always

- url: www.videoo.io/*
  service: frontend
  script: auto
  secure: always%   

API yaml файл, api.yaml :

runtime: python37
entrypoint: gunicorn -b :$PORT videoo.wsgi

service: "videoo-api"
env: standard
handlers:

- url: api.videoo.io/*
  service: backend
  script: auto
  secure: always%   

Правильно ли это?

Какова наилучшая стратегия для обслуживания этих двух отдельных приложений, которые будут интерактивно взаимодействовать (Frontend будет делать вызовы к API для получения информации об объектах, которая хранится в приложении Django)?

Вот также информация о моем доменном имени в настройках Google App Engine :

enter image description here

  1. Вы на правильном пути. Вы используете архитектуру microservices, которая, по сути, представляет собой развертывание отдельных приложений как частей (сервисов) в рамках одного проекта.

  2. Ваша служба фронтенда, похоже, используется по умолчанию, поэтому вам не нужно имя службы для нее. Каждое приложение GAE App нуждается в службе по умолчанию

    .

  3. Переименуйте

    в react.yaml (поскольку это будет ваш сервис по умолчанию) и обновите содержимое до app.yaml

    runtime: nodejs16
    
    env: standard
    handlers:
    - url: /static
      static_dir: static
      secure: always
    
    - url: /.*
      script: auto
      secure: always   
    
  4. Также переименуйте

    в api.yaml, поскольку именно так вы назвали свою службу (не уверен, что это обязательно, но я делаю это, чтобы легко отслеживать, что управляет моей службой). Обновите содержимое файла доbackend.yaml

    service: backend
    runtime: python37
    entrypoint: gunicorn -b :$PORT videoo.wsgi
    env: standard
    
    handlers:
    - url: api.videoo.io/*
      script: auto
      secure: always   
    
  5. Вам понадобится файл

    dispatch.yaml для маршрутизации трафика к различным сервисам. Что-то вроде

  6. dispatch:
      # Send all api traffic to the backend service.
      - url: "api.videoo.io/*"
        service: backend
    
      # Send all other traffic to the default (frontend).
      - url: "*/*"
        service: default
    
    1. Последний шаг заключается в том, что во время развертывания вы развернете 2 службы в дополнение к файлу dispatch.yaml. Файл dispatch.yaml должен находиться в корневой папке вашего проекта
    2. .
    gcloud app deploy app.yaml dispatch.yaml <path_to_backend.yaml>
    
Вернуться на верх