Konfiguration

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

Comments are closed.