#node.js #next.js #gcloud
#google-app-engine #google-облачная платформа
Вопрос:
Как я могу развернуть несколько приложений с одного или разных языков / среды выполнения, созданных из одного проекта в Google Cloud App Engine?
Комментарии:
1. Итак, в чем вопрос?
2. извините за вводящий в заблуждение язык. Только что отредактировано.
3. Также проверьте, не будет ли это нарушением раздела 3.3 (d) Условий предоставления услуг: cloud.google.com/terms
4. Думаю, что нет, потому что я не собираюсь «имитировать или действовать как единое приложение, учетная запись или проект (соответственно) или иным образом получать доступ к услугам таким образом, чтобы избежать взимания платы;». Я бы все равно хотел развернуть его как два разных приложения, с разными версиями, доступными по разным URL-адресам. Во-вторых, Google Cloud предоставляет возможность развертывания нескольких сервисов в проекте: cloud.google.com/appengine/docs/standard/python /…
5. ОК. Но вам нужно предоставить гораздо больше деталей. Вам нужно несколько сервисов? Несколько приложений? Что делает ваше приложение? В чем трудности? В противном случае ответ прост (и, вероятно, бесполезен): Да — вы просто переписываете / корректируете код своего приложения по мере необходимости 🙂 Но обратите внимание, что в зависимости от особенностей вашего приложения это может быть невозможно или может потребовать много работы. Например, совместное использование хранилища данных в нескольких приложениях требует дополнительной работы, постановка задач в очередь между приложениями невозможна.
Ответ №1:
Развертывание нескольких сервисов в Google Cloud App Engine.
Создайте следующие файлы в корневом каталоге приложения
Создайте файл app.yaml с содержимым:
runtime: nodejs14
service: default
Создайте myserviceone.yaml-файл с содержимым:
runtime: nodejs14
service: myserviceone
Создайте файл myservicetwo.yaml с содержимым:
runtime: nodejs14
service: myservicetwo
Развертывание с помощью команды
gcloud app deploy --project your_project_id app.yaml myserviceone.yaml myservicetwo.yaml
Это позволит развернуть службу по умолчанию, а также мою службу один и мою службу два. Проверьте свою облачную консоль.
Вы можете получить к ним доступ с помощью:
https://myserviceone-dot-yourProjectID.appspot.com/ или http://myserviceone .yourProjectID.appspot.com/
https://myservicetwo-dot-yourProjectID.appspot.com/ или http://myservicetwo.yourProjectID.appspot.com/
Комментарии:
1. Спасибо, что поделились, это действительно помогло мне.
2. Какая-либо конкретная причина, по которой Google не позволяет указывать несколько сервисов (разделенных запятой или другим разделителем) в одном файле app.yaml для развертывания кода в нескольких сервисах?
3. как насчет composer.json и поставщика? Должен ли быть единый репозиторий поставщика, общий для всех служб, расположенный на верхнем уровне?
Ответ №2:
Сегодня App Engine имеет однозначное соответствие с проектом Google Cloud Console. Вы не можете развернуть несколько «приложений» в одном проекте. Тем не менее, вы все равно сможете делать то, что хотите, в зависимости от ваших приложений.
App Engine имеет концепцию «сервисов», которые являются независимыми аспектами вашего приложения. В вашем приложении App Engine может быть много служб, и каждая служба может иметь свой собственный язык / время выполнения и даже находиться в разных средах App Engine.
У вас может быть, скажем, служба Python в стандартной среде App Engine, которая используется для обслуживания вашего сайта simple Flask, может быть служба, которая обслуживает API, написанный на Java 8 в стандартной среде, и может быть еще одна служба, скажем Node.js запуск в гибкой среде App Engine.
Ваша служба «по умолчанию» определена в вашем app.yaml
файле. Другие ваши службы могут быть определены в разных папках и могут иметь либо app.yaml
определения своих служб, либо вы можете назвать их как-то иначе backend.yaml
. См. Этот простой проект Python для компоновки файлов конфигурации.
Дополнительные концептуальные сведения о службах в App Engine см. в разделе Архитектура микросервисов в Google App Engine.