Aller au contenu

Supabase Edge Functions ​

Supabase est une alternative open source à Firebase qui propose une suite d'outils aux fonctionnalités similaires : base de données, authentification, stockage et, désormais, fonctions serverless.

Les Supabase Edge Functions sont des fonctions TypeScript côté serveur distribuées dans le monde entier. Elles s'exécutent près de vos utilisateurs pour améliorer les performances. Ces fonctions sont développées avec Deno, qui offre notamment une sécurité renforcée et un environnement d'exécution JavaScript/TypeScript moderne.

Voici comment démarrer avec Supabase Edge Functions :

1. Configuration ​

Prérequis ​

Avant de commencer, assurez-vous que la CLI Supabase est installée. Sinon, suivez les instructions de la documentation officielle.

Créer un nouveau projet ​

  1. Ouvrez votre terminal ou votre invite de commandes.

  2. Créez un nouveau projet Supabase dans un répertoire de votre machine locale en exécutant :

bash
supabase init

Cette commande initialise un nouveau projet Supabase dans le répertoire courant.

Ajouter une Edge Function ​

  1. Dans votre projet Supabase, créez une Edge Function nommée hello-world :
bash
supabase functions new hello-world

Cette commande crée dans votre projet une Edge Function portant le nom indiqué.

2. Bonjour le monde ​

Modifiez la fonction hello-world en éditant le fichier supabase/functions/hello-world/index.ts :

ts
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. Exécution ​

Pour exécuter la fonction localement, utilisez la commande suivante :

  1. Utilisez la commande suivante pour servir la fonction :
bash
supabase start # start the supabase stack
supabase functions serve --no-verify-jwt # start the Functions watcher

L'option --no-verify-jwt permet de contourner la vérification JWT pendant le développement local.

  1. Envoyez une requête GET avec cURL ou Postman à http://127.0.0.1:54321/functions/v1/hello-world/hello :
bash
curl  --location  'http://127.0.0.1:54321/functions/v1/hello-world/hello'

Cette requête doit renvoyer le texte « Hello from hono-server! ».

4. Déploiement ​

Vous pouvez déployer toutes vos Edge Functions dans Supabase avec une seule commande :

bash
supabase functions deploy

Vous pouvez aussi déployer une Edge Function individuellement en indiquant son nom dans la commande de déploiement :

bash
supabase functions deploy hello-world

Pour d'autres méthodes de déploiement, consultez la documentation Supabase sur le déploiement en production.

Publié sous licence MIT.