【问题标题】:Custom runtime for non-flexible environment app?非灵活环境应用程序的自定义运行时?
【发布时间】:2017-02-26 13:34:09
【问题描述】:

我不认为我的 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

【问题讨论】:

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


    【解决方案1】:

    是的,您的app.yaml 文件是标准环境文件(其中没有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 模块特定文件移动到其中,除了应用程序级配置,我将保留在顶部如该帖子中所述,default 目录中的级别和符号链接。然后我会验证default 模块是否仍然按预期工作。

    然后,我会为需要添加的每个新模块创建一个新的子目录,并根据需要为其添加代码。

    旁注:通过上述帖子中描述的符号链接共享代码适用于标准环境模块,但它可能不适用于灵活的模块,请参阅Sharing code between modules in a GAE project

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-06
      • 1970-01-01
      • 2021-04-10
      • 1970-01-01
      • 1970-01-01
      • 2017-09-30
      • 2010-11-22
      • 2018-09-01
      相关资源
      最近更新 更多