モジュールは、すべての並べすることができます。各モジュールの<module>.yaml
は、モジュールディレクトリ内にあることができます。
このファイルに関するご意見は誤解を招く恐れがありますが、実際には単一モジュールのアプリケーションにのみ適用されます(マルチモジュールアプリケーションでは多くのドキュメントが更新されていません)。
default
モジュールの設定ファイルは、app.yaml
(またはdefault
と呼ばれる)という名前である必要はありません。私は最終的にデフォルト(または他の)モジュール(s)は、必要に応じて(いくつかのツールがそうでなければ文句を言うこと)にそれらをシンボリックリンク、トップレベルでのアプリレベルの設定ファイル(cron.yaml
、dispatch.yaml
、queue.yaml
とindex.yaml
)を維持するだろう。
はここでは、例えば、構造体は、私は(main
dirはdefault
モジュールが含まれています)私のアプリケーションのいずれかのに持っている:
cron.yaml
dispatch.yaml
queue.yaml
index.yaml
main/cron.yaml -> ../cron.yaml
main/index.yaml -> ../index.yaml
main/main.yaml
main/queue.yaml -> ../queue.yaml
buildin/buildin.yaml
buildin/index.yaml -> ../index.yaml
buildin/queue.yaml-> ../queue.yaml
あなただけの関連ツールを起動するときに注意を払う必要があります。これは、アプリケーションのディレクトリから実行、そのアプリケーションのための私のチートシート、である、それのいくつかはまた、pycharmプロジェクトの設定(私はpycharm内の開発サーバを実行している)に反映されます。devserverを実行するには
appcfg.py update main/main.yaml buildin/buildin.yaml
appcfg.py update_dispatch .
appcfg.py update_indexes -A <app-name> main
appcfg.py update_cron -A <app-name> .
appcfg.py update_queues -A <app-name> .
:
dev_appserver.py --host 0.0.0.0 --log_level=debug dispatch.yaml main/main.yaml buildin/buildin.yaml
更新:要求されたようは、私の設定ファイルの一部を追加しました。
dispatch.yaml
ファイル、appspotドメインと私のカスタムドメインの両方にbuildin
モジュールルーティングの世話をして(他のすべてが自動的にデフォルトのモジュールにルーティングされます):
application: <my_app>
dispatch:
- url: "buildin.my_domain.com/*"
module: buildin
- url: "buildin-dot-my_app.appspot.com/*"
module: buildin
- url: "*/buildin/*"
module: buildin
main.yaml
ファイル:
application: my_app
module: default
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /(.*\.min\.css)$
static_files: stylesheets/\1
upload: stylesheets/.*\.min\.css$
secure: always
- url: /(.*\.(ico|gif|png|jpg|svg))$
static_files: images/\1
upload: images/.*\.(ico|gif|png|jpg|svg)$
secure: always
- url: .*
script: main.app
secure: always
libraries:
- name: webapp2
version: "2.5.2"
- name: jinja2
version: "2.6"
- name: pycrypto
version: "2.6"
buildin.yaml
ファイル:
application: my_app
module: buildin
version: 1
runtime: python27
api_version: 1
threadsafe: true
instance_class: B2
handlers:
- url: /(.*\.min\.js)$
static_files: scripts/\1
upload: scripts/.*\.min\.js$
secure: always
- url: /(.*\.min\.css)$
static_files: stylesheets/\1
upload: stylesheets/.*\.min\.css$
secure: always
- url: /(.*\.(ico|gif|png|jpg|svg))$
static_files: images/\1
upload: images/.*\.(ico|gif|png|jpg|svg)$
secure: always
- url: /buildin/cron*
script: buildin.app
login: admin
- url: .*
script: buildin.app
secure: always
libraries:
- name: webapp2
version: "2.5.2"
- name: jinja2
version: "2.6"
- name: pycrypto
version: "2.6"
明確化し、チートシートとともに例を提供していただきありがとうございます。それは非常に便利です。 –
@dan、dispatch.yaml + main/main.yaml + buildin/buildin.yamlコードにペーストできますか? – WebQube
@ケビン・リー、私はまだこのエラーを得ることを理解することができません。 google.appengine.api.yaml_errors.EventError:AppInfoExternalタイプのオブジェクトに対する予期しない属性 'ディスパッチ'。 "./app.yaml"、行3、列3の 可能であれば、私に作業コードを教えてください。 [email protected] –