我不认为我的gae python应用程序有一个灵活的环境,因为我多年前创建它。现在我想尝试创建一个具有另一个运行时而不是python的模块,并保持python应用程序与新的运行时,自定义或另一个运行python。也许混合PHP和python或类似。我不需要它,但我想学习和探索可能性。我也有兴趣学习Erlang并使用appengine部署Erlang代码。我已经看到有关于它的问题
但我们应该怎么做呢?如果我们提供允许的自己的运行时。
我的app.yaml看起来像
application: montaoproject
version: newsearch
runtime: python27
api_version: 1
threadsafe: true
module: default
instance_class: F1
automatic_scaling:
min_idle_instances: 5
max_idle_instances: automatic
min_pending_latency: automatic
max_pending_latency: 30ms
max_concurrent_requests: 50
default_expiration: "14d 5h"
env_variables:
GAE_USE_MONTAO : 'anyvalue'
KOOL_VERSION : '17a'
includes:
- br.yaml # Brazil
- in.yaml # India
- us.yaml # USA
- pk.yaml
- search.yaml # search pages
- admin.yaml # admin pages
- providers.yaml # auth providers
- statics.yaml # static content
handlers:
- url: /(business|ai|newindia|insert-ad.html)
script: montao.app
- url: /blobview.*
script: kool_update.app
login: admin
- url: /market.*
script: main.app
- url: /
script: montao.app
- url: /(index.html|sign-up.html|login.html)
script: montao.app
- url: /(login.*|login|googlogin|googlogout|create/)
script: login.app
- url: /(customer_service.htm|contactfileupload|support.html|faq.html)
script: customer_service.app
- url: /stats.*
script: google.appengine.ext.appstats.ui.app
# All other URLs use main.app
- url: /.*
script: main.app
inbound_services:
- mail
builtins:
- remote_api: on
- deferred: on
#- appstats: on
error_handlers:
- file: default_error.html
libraries:
- name: webapp2
version: latest
- name: jinja2
version: latest
- name: setuptools
version: latest
- name: markupsafe
version: latest
- name: django
version: latest
- name: PIL
version: latest
- name: webob
version: latest
- name: lxml
version: latest
- name: ssl
version: latest
答案 0 :(得分:1)
是的,您的app.yaml
文件是标准的env文件(它中没有vm:true
或env:flex
。)
是的,可以在同一个应用程序中混合和匹配不同语言和不同环境的服务/模块。您甚至可以在该模块的不同版本中切换相同模块的语言和环境。这是因为模块提供完整的代码隔离,请参阅Comparison of service isolation and project isolation。相关文章:Upload a Java and node.js project to Google AppEngine at once
我总是尝试在每个服务的子网站中构建一个多服务/模块应用程序,如Can a default service/module in a Google App Engine app be a sibling of a non-default one in terms of folder structure?
中所述首先,我要创建应用目录的default
子目录,并将所有现有的default
模块特定文件移入其中,但应用级配置除外,我和#39; d保持在default
目录中的顶级和符号链接,如该帖子中所述。然后我验证default
模块是否仍按预期工作。
然后,我为每个需要添加的新模块创建一个新的子目录,并根据需要为其添加代码。
附注:如上文所述,通过符号链接共享代码适用于标准环境模块,但它可能无法使用灵活的代码,请参阅Sharing code between modules in a GAE project < / p>