非灵活环境应用程序的自定义运行时?

时间:2017-02-26 13:34:09

标签: python-2.7 google-app-engine erlang

我不认为我的gae python应用程序有一个灵活的环境,因为我多年前创建它。现在我想尝试创建一个具有另一个运行时而不是python的模块,并保持python应用程序与新的运行时,自定义或另一个运行python。也许混合PHP和python或类似。我不需要它,但我想学习和探索可能性。我也有兴趣学习Erlang并使用appengine部署Erlang代码。我已经看到有关于它的问题

erlang on google app engine?

issue 125 in the tracker

但我们应该怎么做呢?如果我们提供允许的自己的运行时。

我的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

1 个答案:

答案 0 :(得分:1)

是的,您的app.yaml文件是标准的env文件(它中没有vm:trueenv: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>