Sup*_*Eye 5 django google-app-engine app.yaml reactjs google-cloud-platform
我有两个应用程序想要使用 Google Cloud App Engine 进行部署。
其中之一是 React 前端,我想通过 MYFRONTEND.com 提供此服务
第二个是后端,将通过 api.MYBACKEND.com 提供服务
前端yaml文件react.yaml:
runtime: nodejs16
env: standard
handlers:
- url: /static
static_dir: static
secure: always
- url: www.MYFRONTEND.com/*
service: frontend
script: auto
secure: always%
Run Code Online (Sandbox Code Playgroud)
API yaml 文件,api.yaml :
runtime: python37
entrypoint: gunicorn -b :$PORT MYAPPLICATION*emphasized text*.wsgi
service: "MYBACAKEND-api"
env: standard
handlers:
- url: api.MYBACKEND/*
service: backend
script: auto
secure: always%
Run Code Online (Sandbox Code Playgroud)
这是实现这一目标的正确方法吗?
为这两个交互式通信的独立应用程序提供服务的最佳策略是什么(前端将调用 API 以获取存储 Django 应用程序的对象信息)?
你走在正确的道路上。您正在使用微服务架构,该架构基本上将各个应用程序部署为单个项目下的部件(服务)。
您的前端服务似乎是默认的,因此您不需要它的服务名称。每个 GAE 应用程序都需要一个默认服务。
重命名react.yaml为app.yaml(因为它将成为您的默认服务)并将内容更新为
runtime: nodejs16
env: standard
handlers:
- url: /static
static_dir: static
secure: always
- url: /.*
script: auto
secure: always
Run Code Online (Sandbox Code Playgroud)
还将您的api.yaml名称重命名backend.yaml为,因为这就是您所说的服务(不确定是否需要这样做,但我这样做是为了轻松跟踪控制我的服务的内容)。将文件内容更新为
service: backend
runtime: python37
entrypoint: gunicorn -b :$PORT videoo.wsgi
env: standard
handlers:
- url: /.*
script: auto
secure: always
Run Code Online (Sandbox Code Playgroud)
您需要一个dispatch.yaml文件将流量路由到不同的服务。就像是
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
Run Code Online (Sandbox Code Playgroud)
gcloud app deploy app.yaml dispatch.yaml <path_to_backend.yaml>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4078 次 |
| 最近记录: |