Для начала я создаю Google App Engine
, где развертываю на своем пользовательском домене (который мы будем называть: mysite.ms
) и API, и внешний интерфейс. API написан на nodejs
с Express
и интерфейсом является React
приложение. Это мой app.yml
файл, который я использую для развертывания:
runtime: nodejs
env: flex
manual_scaling:
instances: 1
resources:
cpu: .5
memory_gb: 0.5
disk_size_gb: 10
handlers:
- url: /
static_files: www/build/index.html
upload: www/build/index.html
- url: /
static_dir: www/build
Теперь я хочу разделить элемент. В домене mysite.ms
разверните только приложение React
, а на поддомене sub.mysite.ms
- API
. Поскольку домен перешел на freenom, для создания поддоменов я добавляю новый DNS
типа CNAME
со значением sub.mysite.ms
и нацеливаю на исходный домен mysite.ms
.
Возможно ли создать эти отдельные развертывания, использующие только Google App Engine и один файл app.yml
, или вам нужно использовать какой-либо другой инструмент для разделения файлов?
Как вы посоветуете мне продолжить? Поскольку я не могу найти ничего понятного в Интернете, не могли бы вы дать мне несколько советов по решению этих проблем?
ОБНОВЛЕНИЕ
Я прочитал предоставленную вами документацию, и у меня есть некоторые сомнения по этому поводу. Прежде всего, как я могу создавать разные сервисы? Поскольку я создаю это (но, скорее всего, неправильно) dispatch.yml
:
dispatch:
- url: "mysite.ms/*"
service: default
- url: "sub.mysite.ms/*"
service: api
, но при развертывании с этой командой gcloud app deploy dispatch.yaml
я получаю сообщение об ошибке, потому что он не может найти модуль 'api'. В предыдущей версии, в моем server.js
у меня есть этот код для обработки React
:
app.use(express.static(path.resolve(__dirname, 'www', 'build')));
app.get('*', (req, res) => { res.sendFile(path.resolve(__dirname, 'www', 'build', 'index.html')); });
Должен ли я сохранить эти две строки кода, даже если я разделю интерфейс а api на другом домене?
Должен ли я добавить sub.mysite.ms
в область пользовательского домена в разделе Google App Engine?
Должен ли я сохранить файл app.yml
даже если у меня есть dispath.yaml
?