我想为GAE(php运行时)创建非常标准的设置:2个具有特定URL的模块(路由):
关于doc(https://cloud.google.com/appengine/docs/php/modules/和https://cloud.google.com/appengine/docs/php/modules/routing)我创建了3个.yaml配置文件:
dispatch.yaml
application: ABC
dispatch:
- url: "*/oli/*"
module: module-oli
- url: "*/"
module: module-api
的app.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处理方面的更改,但我总是得到的错误是“重复模块:module-api ”。
你能帮帮我吗?提前谢谢..答案 0 :(得分:0)
我不知道为什么,但是(在我的计算机上)它只能从googleAppEngineLauncher.app( OSX 10.11.3,googleAppEngineLauncher 1.9.32版)起作用,但如果我使用命令行工具,它可以工作:
dev_appserver.py app.yaml module-oli.yaml
并且仅当我不使用param --skip_sdk_update_check(无关紧要)时
更多关于命名模块(并使用默认模块或不使用)..即使我命名具有特定名称的默认模块(当然,如果没有将所有请求分派到模块,则会导致错误。
更多关于调度到模块;它有效(,因为它记录了here )。当然,它不能在本地开发环境中工作,因为每个模块都在不同的端口运行(比调度不起作用,如果有一个带有manual_scaling的模块,则_ah / start无法处理,作为err500,它停止了开始)
这里是所有设置文件,以及如何运行它:
的app.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
dispatch.yaml
dispatch:
- url: "*/oli/*"
module: module-oli
- url: "*/*"
module: default
在本地开发环境中运行: dev_appserver.py app.yaml module-oli.yaml ..(没有自动路由,实例在不同的端口上运行)< / p>
将所有内容部署到gcloud并更新调度(appcfg.py -A wellfedcat-1221 update_dispatch。),它的工作原理如下:
当您想使用我们自己的域映射到gcloud时,调度是必要的。
谢谢@Tom寻求帮助!