2017-02-10 3 views
0

Я хочу создать очень стандартную установку для GAE (PHP во время выполнения): 2 модуля с конкретными URL-адресов (маршрутизацией):Google App Engine - Не удалось найти конфигурацию диспетчерская

  • модуль-апи для REST API
  • модуль-приложение для веб-приложения базы

Я создал 4 .yaml конфигурационные файлы:
app.yaml

application: ABC 
version: 1 
runtime: php55 
api_version: 1 
threadsafe: yes 

automatic_scaling: 
    max_idle_instances: 20 

handlers: 
- url: /.* 
    script: api/web/index.php 

dispatch.yaml

application: ABC 

dispatch: 
- url: "*/app/*" 
    module: web-based 

- url: "*/*" 
    module: default 

web_based.yaml

application: ABC 
module: web-based 
version: 1 
runtime: php55 
api_version: 1 
threadsafe: yes 

automatic_scaling: 
    min_idle_instances: 2 
    max_pending_latency: 1s 

handlers: 
- url: /(.*\.(gif|png|jpg|css|js|otf)) 
    static_files: /\1 
    upload: /(.*\.(gif|png|jpg|js|css|otf)) 

api.yaml

application: ABC 
module: default 
version: 1 
runtime: php55 
api_version: 1 
threadsafe: yes 

manual_scaling: 
    instances: 1 

handlers: 
- url: /(.*\.(gif|png|jpg|css|js|otf)) 
    static_files: web/\1 
    upload: web/(.*\.(gif|png|jpg|js|css|otf)) 

- url: /assets/(.+) 
    static_files: web/assets/\1 
    upload: web/assets/(.+) 

- url: /.* 
    script: web/index.php 

структура каталогов:

- api/api.yaml 
- app/web_base.yaml 
- app.yaml 
- dispatch 

Когда я пробую update_dispatch, я получаю конфигурационный файл отправки не найден. Кто-нибудь может мне помочь?

ответ

0

В многомодульном приложении нет ни одного уровня приложения app.yaml, есть только один файл .yaml для каждого модуля и все.

Так что избавитесь от верхнего уровня app.yaml (при необходимости объедините его соответствующий контент в файл api.yaml, который является одним для вашего модуля default). Эти два файла сталкиваются и могут запутать операцию update_dispatch. Затем разверните модуль по умолчанию - часто его нужно развернуть до конфигураций на уровне приложения (например, файл dispatch.yaml), а другие модули могут быть развернуты.

Возможно, загляните в Can a default service/module in a Google App Engine app be a sibling of a non-default one in terms of folder structure?, это приложение для python, но там есть много вещей, таких как структура app dir, конфигурации приложений (например, диспетчеризация) и развертывание, а также для php.

Боковые ноты:

  • вы также отсутствует динамический обработчик внутри web_based.yaml.
  • вы не необходимости правила отправки для default модуля - вот где запросы без каких-либо маршрутов отправляются в любом случае
  • лично я хотел бы сделать веб-приложению модуль по умолчанию и REST оном не- по умолчанию один - мне бы не хотелось, чтобы всякий мусор попадал в модуль REST по умолчанию ...
+0

Благодарим вас за ответ. Я удалил app.yaml из корневой папки и обновил оба модуля. Все еще получаю эту ошибку. Есть идеи? –

+0

Какой именно CMD вы используете и в каком каталоге? –

+0

Кстати, ваш файл на самом деле называется 'dispatch.yaml', а не' dispatch', как вы упоминаете в структуре каталогов, правильно? –

 Смежные вопросы

  • Нет связанных вопросов^_^