コンテンツにスキップ

Supabase Edge Functions

SupabaseはFirebaseのオープンソース代替であり、データベース、認証、ストレージ、そしてサーバーレス関数など、Firebaseの機能と同様のツールスイートを提供しています。

Supabase Edge Functionsは、グローバルに分散されたサーバーサイドのTypeScript関数であり、ユーザーの近くに配置されてパフォーマンスが向上します。これらの関数はDenoを使用して開発されており、セキュリティの向上と最新のJavaScript/TypeScriptランタイムなど、いくつかの利点があります。

Supabase Edge Functionsを使い始める方法は次のとおりです。

1. セットアップ

前提条件

始める前に、Supabase CLIがインストールされていることを確認してください。まだインストールしていない場合は、公式ドキュメントの手順に従ってください。

新しいプロジェクトの作成

  1. ターミナルまたはコマンドプロンプトを開きます。

  2. ローカルマシンのディレクトリに、次のコマンドを実行して新しいSupabaseプロジェクトを作成します。

bash
supabase init

このコマンドは、現在のディレクトリに新しいSupabaseプロジェクトを初期化します。

Edge関数の追加

  1. Supabaseプロジェクト内で、`hello-world`という名前の新しいEdge関数を作成します。
bash
supabase functions new hello-world

このコマンドは、プロジェクトに指定された名前の新しいEdge関数を作成します。

2. Hello World

`hello-world`関数を編集するには、`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. 実行

関数をローカルで実行するには、次のコマンドを使用します。

  1. 関数をサーブするには、次のコマンドを使用します
bash
supabase start # start the supabase stack
supabase functions serve --no-verify-jwt # start the Functions watcher

`--no-verify-jwt`フラグを使用すると、ローカル開発中にJWT検証をバイパスできます。

  1. cURLまたはPostmanを使用して、`http://127.0.0.1:54321/functions/v1/hello-world/hello`にGETリクエストを送信します。
bash
curl  --location  'http://127.0.0.1:54321/functions/v1/hello-world/hello'

このリクエストは、「Hello from hono-server!」というテキストを返します。

4. デプロイ

SupabaseのすべてのEdge関数を1つのコマンドでデプロイできます。

bash
supabase functions deploy

または、デプロイコマンドに関数の名前を指定することで、個々のEdge関数をデプロイできます。

bash
supabase functions deploy hello-world

その他のデプロイ方法については、本番環境へのデプロイに関するSupabaseのドキュメントを参照してください。

MITライセンスの下でリリースされています。