0

我想为 GAE(php 运行时)创建非常标准的设置:2 个具有特定 URL 的模块(路由):

  • 用于 REST API的模块API
  • 用于后端静态进程的module-oli ..

关于文档(https://cloud.google.com/appengine/docs/php/modules/https://cloud.google.com/appengine/docs/php/modules/routing)我创建了 3 .yaml配置文件:

调度.yaml

application: ABC

dispatch:
- url: "*/oli/*"
  module: module-oli

- url: "*/"
  module: module-api

应用程序.yaml

application: ABC
version: v1
module: module-api
runtime: php55
api_version: 1

handlers:
- url: /.*
  script: public/api.php

模块-oli.yaml

application: ABC
version: v1
module: module-oli
runtime: php55
api_version: 1

manual_scaling:
  instances: 1

handlers:
  - url: /.*
    script: public/oli.php

我还尝试了 URL 处理的许多更改,但我总是得到的错误是“ Duplicate module: module-api ”。

你能帮我吗?先感谢您 ..

4

1 回答 1

0

我不知道为什么,但是(在我的计算机上)它不能仅从 googleAppEngineLauncher.app (OSX 10.11.3,googleAppEngineLauncher 版本 1.9.32)工作,但如果我使用命令行工具它可以工作:

dev_appserver.py app.yaml 模块-oli.yaml

并且仅当我不使用参数 --skip_sdk_update_check (价值无关紧要)

更多关于命名模块以及是否使用默认模块)..即使我用特定名称命名默认模块,它也能正常工作(当然,当并非所有请求都发送到模块时会导致错误)。

更多关于分派到模块;它有效(因为它记录在这里)。当然,它在本地开发环境中不起作用,因为每个单独的模块都在不同的端口上运行(而不是调度不起作用,并且如果有一个带有手动缩放的模块,则_ah / start无法处理并且作为err500它停止开始

这是所有设置文件,以及如何运行它:

应用程序.yaml

application: <APPLICATION-ID>
module: default
version: v1
runtime: php55
api_version: 1
threadsafe: yes

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: blablabla.php

模块-oli.yaml

application: <APPLICATION-ID>
version: v1
module: module-oli
runtime: php55
api_version: 1
threadsafe: yes

instance_class: B1

manual_scaling:
  instances: 1

handlers:
  - url: /oli/.*
    script: blebleble-oli.php

调度.yaml

dispatch:
  - url: "*/oli/*"
    module: module-oli

  - url: "*/*"
    module: default

在本地开发环境中运行:dev_appserver.py app.yaml module-oli.yaml ..(没有自动路由,实例在不同的端口上运行

一个一切都部署到 gcloud 并更新调度(appcfg.py -A wellfedcat-1221 update_dispatch 。),它的工作原理如下:

  • APPLICATION-ID.appspot.com/*:由默认模块提供服务..
  • APPLICATION-ID.appspot.com/oli/*:由 module-oli 提供服务 ..

当您想使用我们自己的域映射到 gcloud 时,调度是必要的。

谢谢@Tom 的帮助!

于 2016-02-16T19:50:50.367 回答