Да, это возможно: у вас будет одно приложение GAE (т.е. один проект GCP) с двумя службами, одним стандартным и одним гибким.Вы в значительной степени начали в этом направлении, но вы упустили несколько вещей.
Время выполнения неверно, и вам не хватает служебного имени (не по умолчанию) flex-module
app.yaml
.Из Общие настройки :
время выполнения: php
Эта настройка обязательна.Это имя среды выполнения App Engine, используемой этим приложением.Чтобы указать PHP, используйте php .Другие среды выполнения доступны;за дополнительной информацией обращайтесь к документации на каждом языке.
service: service_name
Требуется при создании службы.Необязательно для сервиса по умолчанию.Каждый сервис и каждая версия должны иметь имя.Имя может содержать цифры, буквы и дефисы.Он не может быть длиннее 63 символов и не может начинаться или заканчиваться дефисом.Выберите уникальное имя для каждой услуги и каждой версии.Не используйте имена между сервисами и версиями.
Вы также можете сбросить стандартные конфиги env в этом файле - в настоящее время они игнорируются, но на случай, если проверка станет большестрого по дороге).Может быть, посмотрите как-то связанный Как узнать, относится ли страница документации Google App Engine к стандартной или гибкой среде
runtime: php
env: flex # flexible env
service: flex-module
Вы должны проверить Runtime_config раздел также, кажется, является обязательным, но я не пользователь PHP, я не знаю, что предложить здесь:
Вы должны настроить document_root
в разделе runtime_config
, например, в приведенном выше примере.
Вы должны быть осторожны с содержанием dispatch.yaml
.Шаблон для сервиса flex не соответствует URL, который вы выбрали для этого сервиса, он должен.Вы также можете удалить шаблон службы по умолчанию в конце - все, что не соответствует указанным шаблонам маршрутов, все равно переходит к службе по умолчанию.
dispatch:
- url: "*/fileUpload.php"
service: flex-module
Примечание : я всегда использовал шаблон каталога вdispatch.yaml
- то есть - url: "*/some_dir/*"
- никогда не просто конкретный файл, я не уверен на 100%, что вышеприведенное сработает, возможно, потребуется некоторая настройка, если этого не произойдет.
В службе по умолчанию app.yaml
вы можете оставить обработчик для загрузки - это будет обработано flex-module
.Просто косметика.
Также будьте осторожны при развертывании - у вас есть 3 развертываемые: 2 службы (развернутые путем развертывания соответствующих файлов app.yaml
) и файл dispatch.yaml
, которые должны быть специально развернуты.Любая комбинация файлов 3 .yaml
может быть включена в одну команду развертывания (но это просто удобство, поскольку каждый из них фактически развертывается отдельно):
gcloud app deploy standard/app.yaml flexible/app.yaml dispatch.yaml