Как развернуть интерфейс и бэкэнд одновременно в App Engine? - PullRequest
1 голос
/ 16 февраля 2020

В настоящее время у меня есть два разных пакета - файл WAR с моим веб-приложением Java (API, et c) и Angular 8 dist zip-файл. Я хочу либо развернуть оба экземпляра в одном и том же экземпляре ядра приложения, либо разделить экземпляры ядра приложения.

Как развернуть оба из них в одном и том же экземпляре ядра приложения и обеспечить их интеграцию?

Является ли хорошей практикой развертывание их обоих в одном и том же экземпляре или их следует использовать отдельно?

Если я разверну их в отдельных экземплярах - как бы я указал один на другой и избежал проблем с CORS?

1 Ответ

2 голосов
/ 16 февраля 2020

Я не рекомендую вам развертывать оба в одном экземпляре. Почему? Потому что, если вы хотите обновить свой фронт, например, обновить CSS или проблему типа, вы должны повторно развернуть полное приложение только для этого.

Кстати, я рекомендую вам развернуть 2 разных экземпляров. Передняя часть экземпляров имени внешнего интерфейса и задняя часть экземпляра внутреннего интерфейса по умолчанию.

Необходимо настроить файл app.yaml. Для внешнего интерфейса, для обслуживания только файлов stati c, я использую этот файл

service: frontend
runtime: python37

handlers:
# Routing for bundles to serve directly
- url: /((?:(?:(?:inline|main|runtime|common|polyfills|styles|vendor)\.[a-z0-9]+\.js)|(?:[0-9]+\.[a-z0-9]+\.js)))
  secure: always
  redirect_http_response_code: 301
  static_files: dist/\1
  upload: dist/.*

# Routing for a prod styles.bundle.css to serve directly
- url: /(styles\.[a-z0-9]+\.css)
  secure: always
  redirect_http_response_code: 301
  static_files: dist/\1
  upload: dist/.*

# Routing for typedoc, assets and favicon.ico to serve directly
- url: /((?:assets|docs)/.*|favicon\.ico)
  secure: always
  redirect_http_response_code: 301
  static_files: dist/\1
  upload: dist/.*

# Any other requests are routed to index.html for angular to handle so we don't need hash URLs
- url: /.*
  secure: always
  redirect_http_response_code: 301
  static_files: dist/index.html
  upload: dist/index\.html
  expiration: 0s
  http_headers:
    Strict-Transport-Security: max-age=31536000; includeSubDomains
    X-Frame-Options: DENY

Только ресурсы stati c подаются в каталоге / stati c. Нет экземпляра экземпляра, без затрат.

Примечание: это было также приложение angular, и я использую python среду выполнения в файле. Никакого влияния, используйте то, что вы хотите, это только данные c обслуженных ресурсов!

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

Дайте мне знать, если это не так, мы рассмотрим вашу конфигурацию.

...