Weniger schreiben, mehr auf der Edge erreichen – wir stellen Ihnen expressly vor
Wünschten auch Sie, Compute@Edge würde wie das Ihnen bereits vertraute Framework funktionieren? Wir haben soeben expressly freigegeben, unseren minimalistischen Routing-Layer für auf Fastlys Compute@Edge ausgeführte JavaScript Apps. Er wurde vom populären Framework Express für Node.js inspiriert.
Da Compute@Edge ein maschinennahes Framework ist, können Entwickler mithilfe von Bibliotheken wie dieser sehr schnell und in ihrer bevorzugten Sprache auf dieses Framework aufbauen. Auch mein Kollege Kailan hat in seinem kürzlich veröffentlichten Blogpost eine Bibliothek für Edge Side Includes in Rust untersucht.
Dank expressly können Sie sich auf die Logik Ihrer Anwendung konzentrieren. Eine Reihe von hilfreichen Features machen den Einstieg in Compute@Edge in JavaScript so reibungslos wie möglich:
Vereinfachung komplexer Routing-Logik mithilfe von Express-artigen Pfad-Strings
Definition von Pfadparametern
Verwaltung von Cookies
Nutzung von Suchparametern
Steuerung des Anfrage-Flusses mithilfe von Middleware- und Fehlermanagement-Middleware-Funktionen
Vereinfachte Handhabung von Vary- und Surrogate Key-Headern
Und vieles mehr
Weniger schreiben, mehr erreichen
Nichts ist für mich schöner, als unnötigen Code wegzustreichen – was Ihnen mein Team durchaus bestätigen kann! Beim Umschreiben von Code mit expressly im Fastly Developer Hub strahlte ich wohl wie ein Honigkuchenpferd.
Um Ihnen einen kleinen Vorgeschmack darauf zu geben, wie viel Vergnügen es bereitet, Compute@Edge Apps mithilfe von expressly zu coden, habe ich mir folgendes Anwendungsszenario ausgedacht:
Bei Anfragen an
/base64/[etwas]
:soll ein Segment des URL-Pfads gelesen,
das Segment in ein Cookie geschrieben,
das Ganze decodiert und anschließend in den Antworttext integriert werden.
Schlägt die Decodierung fehl, wird Statuscode 500 (Internal Server Error) angezeigt und die Fehlermeldung in den Antworttext eingefügt.
Alle Anfragen an
/status/[etwas]
werden an einen Origin-Server weitergeleitet.In allen anderen Fällen wird Statuscode
405
(Method Not Allowed) oder Statuscode404
(Not Found) und die entsprechende Fehlermeldung angezeigt – je nachdem, was auf die jeweilige Situation zutrifft.
Ohne expressly würden Sie das alles wahrscheinlich so implementieren:
Und hier nochmal genau dieselbe Anwendungslogik, aber diesmal mit expressly:
Toll, oder? Mit dem Route-Matcher, dem integrierten Pfadparameter-Parser und der standardmäßigen Fehlermanagement-Middleware werden komplexe Szenarien zum Kinderspiel. Überzeugen Sie sich selbst!
Erste Schritte mit expressly
Falls Sie Node.js noch nicht eingerichtet und auch noch keinen JavaScript Compute@Edge Service konfiguriert haben, müssen Sie zuerst diese Installierungen vornehmen.
expressly installieren
Installieren Sie expressly aus der npm Registry:
npm i @fastly/expressly
Ihre erste expressly App
Ersetzen Sie den Code von src/index.js
in Ihrer Compute@Edge App durch den folgenden Code:
import { Router } from "@fastly/expressly";
const router = new Router();
router.get("/", async (req, res) => { return res.send("Hello world!");});
router.listen();
expressly erkunden
Starten Sie die App lokal:
fastly compute serve
Dadurch wird der Service über http://localhost:7676 gestartet.
Sind Sie bereit?
Dann lassen Sie sich inspirieren! Entwickler können expressly ab sofort mit @fastly/expressly@1.0.0-alpha.x
testen. Sehen Sie sich unsere stets wachsende Sammlung an expressly Codebeispielen im Fastly Developer Hub an.
Sie möchten das lieber erstmal einfach so ausprobieren, ohne Fastly Account? Kein Problem! Klonen Sie den zweiten Fiddle in diesem Blogpost und testen Sie ihn an Ihrem eigenen Origin-Server. Wenn dann später Ihre Komplett-Servicelösung weltweit live gehen soll, können Sie sich für ein kostenloses Probeabonnement von Compute@Edge registrieren und unmittelbar mit expressly loslegen.