Erweiterung schreiben: Difference between revisions

From WaveCDN Wiki
Jump to navigation Jump to search
(Created page with "= Einleitung = Wir empfehlen vorweg die FAQ durchlesen. Außerdem sollte man sich mit dem Anfragenmodell vertraut machen.")
 
No edit summary
Line 1: Line 1:
= Einleitung =
= Einleitung =
Bei Erweiterungen handelt es sich um Python-Skripts, die auf den WaveCDN-Edges bei der Anfragenabarbeitung aufgerufen werden. Die Erweiterungen können Daten auslesen und verändern.


Wir empfehlen vorweg die FAQ durchlesen. Außerdem sollte man sich mit dem [[Anfragenmodell]] vertraut machen.
Wir empfehlen vorweg die FAQ durchlesen. Außerdem sollte man sich mit dem [[Anfragenmodell]] vertraut machen.
= Schritte =
Das Anfragenmodell gibt an, welche Schritte WaveCDN ausführt, wenn ein Webuser eine Anfrage stellt. Konkret handelt es sich um folgende fünf Schritte:
* wavecdn_receive
* wavecdn_hit
* wavecdn_miss
* wavecdn_fetch
* wavecdn_deliver
Eine Erweiterung kann sich in die einzelnen Schritte einklinken, in dem sie eine Funktion mit dem jeweiligen Schrittnamen enthält. Damit eine Erweiterung beispielsweise im Schritt wavecdn_receive ausgeführt wird, muss eine Funktion "def wavecdn_receive()" im Python-Skript definiert werden.
= Die Environment-Klasse =
Wenn WaveCDN eine Funktion der Erweiterung aufruft, wird eine Instanz der Environment-Klasse übergeben. Aus ihr können Daten ausgelesen oder auch gespeichert werden. Im folgenden eine kurze Dokumentation der Environment-Klasse:
* get_client_ip(): Gibt die IP vom Webuser zurück.
* get_request_header(name): Gibt den Request-Header mit dem angegebenen Namen zurück.
* set_request_header(name, value): Setzt den Request-Header mit dem angegebenen Namen und Wert.
= Deployment =
Um die Erweiterungen auf den weltweiten Edges von WaveCDN zu deployen, muss man zunächst im Webpanel das CDN-Setup öffnen, in welchem die Erweiterung laufen soll. Im Tab "Erweiterungen" gibt es einen Button zum Hinzufügen einer Erweiterung. Nach Einfügen des Python-Codes und Abschicken des Formulars wird die Erweiterung weltweit installiert. Dies kann einige Minuten dauern.
= Troubleshooting =
In kurze verfügbar.

Revision as of 13:57, 29 December 2013

Einleitung

Bei Erweiterungen handelt es sich um Python-Skripts, die auf den WaveCDN-Edges bei der Anfragenabarbeitung aufgerufen werden. Die Erweiterungen können Daten auslesen und verändern.

Wir empfehlen vorweg die FAQ durchlesen. Außerdem sollte man sich mit dem Anfragenmodell vertraut machen.

Schritte

Das Anfragenmodell gibt an, welche Schritte WaveCDN ausführt, wenn ein Webuser eine Anfrage stellt. Konkret handelt es sich um folgende fünf Schritte:

  • wavecdn_receive
  • wavecdn_hit
  • wavecdn_miss
  • wavecdn_fetch
  • wavecdn_deliver

Eine Erweiterung kann sich in die einzelnen Schritte einklinken, in dem sie eine Funktion mit dem jeweiligen Schrittnamen enthält. Damit eine Erweiterung beispielsweise im Schritt wavecdn_receive ausgeführt wird, muss eine Funktion "def wavecdn_receive()" im Python-Skript definiert werden.

Die Environment-Klasse

Wenn WaveCDN eine Funktion der Erweiterung aufruft, wird eine Instanz der Environment-Klasse übergeben. Aus ihr können Daten ausgelesen oder auch gespeichert werden. Im folgenden eine kurze Dokumentation der Environment-Klasse:

  • get_client_ip(): Gibt die IP vom Webuser zurück.
  • get_request_header(name): Gibt den Request-Header mit dem angegebenen Namen zurück.
  • set_request_header(name, value): Setzt den Request-Header mit dem angegebenen Namen und Wert.

Deployment

Um die Erweiterungen auf den weltweiten Edges von WaveCDN zu deployen, muss man zunächst im Webpanel das CDN-Setup öffnen, in welchem die Erweiterung laufen soll. Im Tab "Erweiterungen" gibt es einen Button zum Hinzufügen einer Erweiterung. Nach Einfügen des Python-Codes und Abschicken des Formulars wird die Erweiterung weltweit installiert. Dies kann einige Minuten dauern.

Troubleshooting

In kurze verfügbar.