Supabase Edge Functions
Supabase ist eine quelloffene Alternative zu Firebase und bietet ähnliche Werkzeuge, darunter Datenbank, Authentifizierung, Speicher und inzwischen auch Serverless-Funktionen.
Supabase Edge Functions sind serverseitige TypeScript-Funktionen, die weltweit verteilt werden und näher an deinen Nutzern laufen, um die Leistung zu verbessern. Diese Funktionen werden mit Deno entwickelt. Das bietet unter anderem verbesserte Sicherheit und eine moderne JavaScript-/TypeScript-Laufzeitumgebung.
So kannst du mit Supabase Edge Functions beginnen:
1. Einrichtung
Voraussetzungen
Stelle zunächst sicher, dass die Supabase-CLI installiert ist. Falls du sie noch nicht installiert hast, folge der Anleitung in der offiziellen Dokumentation.
Ein neues Projekt erstellen
Öffne dein Terminal oder deine Eingabeaufforderung.
Erstelle mit dem folgenden Befehl ein neues Supabase-Projekt in einem Verzeichnis auf deinem lokalen Computer:
supabase initDieser Befehl initialisiert ein neues Supabase-Projekt im aktuellen Verzeichnis.
Eine Edge Function hinzufügen
- Erstelle in deinem Supabase-Projekt eine neue Edge Function namens
hello-world:
supabase functions new hello-worldDieser Befehl erstellt eine neue Edge Function mit dem angegebenen Namen in deinem Projekt.
2. Hello World
Bearbeite die Funktion hello-world, indem du die Datei supabase/functions/hello-world/index.ts anpasst:
import { Hono } from 'jsr:@hono/hono'
// change this to your function name
const functionName = 'hello-world'
const app = new Hono().basePath(`/${functionName}`)
app.get('/hello', (c) => c.text('Hello from hono-server!'))
Deno.serve(app.fetch)3. Ausführen
Um die Funktion lokal auszuführen, verwende den folgenden Befehl:
- Starte die Funktion mit dem folgenden Befehl:
supabase start # start the supabase stack
supabase functions serve --no-verify-jwt # start the Functions watcherMit dem Flag --no-verify-jwt kannst du die JWT-Überprüfung während der lokalen Entwicklung überspringen.
- Sende mit cURL oder Postman eine GET-Anfrage an
http://127.0.0.1:54321/functions/v1/hello-world/hello:
curl --location 'http://127.0.0.1:54321/functions/v1/hello-world/hello'Diese Anfrage sollte den Text „Hello from hono-server!“ zurückgeben.
4. Bereitstellung
Mit einem einzigen Befehl kannst du alle deine Edge Functions in Supabase bereitstellen:
supabase functions deployAlternativ kannst du einzelne Edge Functions bereitstellen, indem du den Funktionsnamen im Bereitstellungsbefehl angibst:
supabase functions deploy hello-worldWeitere Bereitstellungsmethoden findest du in der Supabase-Dokumentation unter Bereitstellung in der Produktionsumgebung.