您可以在 Google App Engine 中使用多項服務,并且每項服務都可以使用自己的語言。這通常是通過使用不同的 url 前綴來完成的,例如一個 url 是:
- myapp.com/js/*
- myapp.com/python/*
但是,我想知道您是否可以混合匹配端點并使用調度檔案進行設定。到目前為止,這是我對我正在嘗試做的事情的一個想法:
- 默認多/
- 應用程式.yaml
- 調度.yaml
- js/
- js.yaml
- 包.json
- 服務器.js
- py/
- py.yaml
- 要求.txt
- 主檔案
檔案是:
js/js.yaml
runtime: nodejs14
service: js
js/package.json
{
"engines": {
"node": "14.x"
},
"dependencies": {
"express": "^4.17.1"
}
}
js/server.js
'use strict';
const express = require('express');
const app = express();
app.get('/js', (req, res) => {
res.status(200).send('Hello, world!').end();
});
app.listen(8080, () => {});
module.exports = app;
py/requirements.txt
Flask==2.1.3
py/py.yaml
runtime: python39
service: py
py/main.py
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/py')
def hello():
return jsonify(hello='world')
app.yaml
runtime: python39 # requires I add this ?
service: default
dispatch.yaml
dispatch:
- url: "*/py$"
service: py
- url: "*/js$"
service: js
并派遣:
$ gcloud app deploy app.yaml js/js.yaml py/py.yaml dispatch.yaml
有沒有一種實際的方法來完成我在上面嘗試做的事情,或者使用 GAE 是不可能的?
uj5u.com熱心網友回復:
這個有可能。這是我現在擁有的一個作業示例:
- default_multi/
調度.yaml
dispatch: - url: "*/js" service: js - url: "*/py" service: default # 'py'
js/
js.yaml
runtime: nodejs14 service: js
包.json
{ "engines": { "node": "14.x" }, "dependencies": { "express": "^4.17.1" } }
服務器.js
'use strict'; const express = require('express'); const app = express(); app.get('/js', (req, res) => { res.status(200).send('Hello, world!').end(); }); app.listen(8080, () => {}); module.exports = app;
py/
py.yaml
# set this as 'default' yaml runtime: python39 service: default
要求.txt
Flask==2.1.3
主檔案
from flask import Flask, jsonify app = Flask(__name__) @app.route('/py') def hello(): return jsonify(hello='world')
以及運行它的命令:
$ gcloud app deploy py/py.yaml js/js.yaml dispatch.yaml
這里的要點是:
- 一臺服務器需要注冊為
default
服務,即使包被拆分并且優先級相同。 - 只有
dispatch.yaml
在頂層。它現在充當服務路由器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/507761.html
標籤:Google Cloud Collective Python 节点.js 烧瓶 谷歌应用引擎 谷歌云平台
上一篇:com.google.cloud.datastore.DatastoreException:重試資料存盤失敗200次