Eine App Engine Applikation kann verschiedene Konfigurationsdateien besitzen.
Die Konfiguration zur Applikation ist zwingend, die Konfiguration für Indexes wird automatisch erstellt.
app.yaml
Die Datei ist für jede Applikation zwingend erforderlich.
application: <app-id> version: 1 runtime: python api_version: 1 handlers: - url: .* script: main.py
cron.yaml
Die Konfigurationsdatei wird genutzt um zeitgesteuert Prozesse auszuführen.
cron: - description: daily mail job url: /mail schedule: every 24 hours
Informationen zu dem Prozess kann man sich auch auf der Konsole anzeigen lassen.
appcfg cron_info /projects/gaeapp daily mail job: URL: /mail Schedule: every 24 hours 2011-07-07 20:14:06, 1 day, 0:00:00 from now 2011-07-08 20:14:06, 2 days, 0:00:00 from now 2011-07-09 20:14:06, 3 days, 0:00:00 from now 2011-07-10 20:14:06, 4 days, 0:00:00 from now 2011-07-11 20:14:06, 5 days, 0:00:00 from now
index.yaml
Der App Engine Datastore nutzt Indexes für jede Abfrage die die Applikation macht. Die Indexes verändert sich sobald sich eine Entität verändert, durch die Nutzung von Indexes können die Ergebnisse schneller zurück gegeben werden.
Dazu muss der Datastore natürlich genau wissen welche Abfragen die Applikation stellen wird. Diese Indexes können über die Konfigurationsdatei index.yaml spezifiziert werden.
Einfache Indexes für einfache Abfragen oder einzelne Properties werden automatisch erstellt, wenn man den Datastore benutzt wird die index.yaml automatisch erstellt. Komplexe Indexes müssen in der Konfigurationsdatei selbst definiert werden.
Die Datei wird mit den anderen Dateien der Applikation hochgeladen. Sie besitzt eine indexes Anweisung, jedes folgende Element repräsentiert dann für sich einen Index.
Ein Index muss ein kind Element enthalten dieses ist der Name der Model Klasse. Anschliessend folgt eine Anweisung properties dieser werden die Eigenschaften mit name und der Sortierung direction übergeben.
indexes:
- kind: Cat
ancestor: no
properties:
- name: name
- name: age
direction: desc
- kind: Cat
properties:
- name: name
direction: asc
- name: whiskers
direction: desc
Mit dem appcfg Skript ist auch möglich ein update nur auf Konfigurationsdateien zu machen.
appcfg update_indexes /projects/gaeapp Application: gaeapp Host: appengine.google.com Uploading index definitions. Email: name@googlemail.com Password for name@googlemail.com:
dos.yaml
Die App Engine bietet einen DoS (Denial of Service) Protection Service an. Es können IP-Adressen oder Subnetze in eine Blacklist geschrieben werden, ankommende Requests von diesen Adressen werden abgelehnt bevor die Applikation Ressourcen nutzt.
blacklist: - subnet: 1.2.3.4 description: a single IP address - subnet: 1.2.3.4/24 description: an IPv4 subnet - subnet: abcd::123:4567 description: an IPv6 address - subnet: abcd::123:4567/48 description: an IPv6 subnet