Supabase Edge Functions
SupabaseはFirebaseのオープンソース代替であり、データベース、認証、ストレージ、そしてサーバーレス関数など、Firebaseの機能と同様のツールスイートを提供しています。
Supabase Edge Functionsは、グローバルに分散されたサーバーサイドのTypeScript関数であり、ユーザーの近くに配置されてパフォーマンスが向上します。これらの関数はDenoを使用して開発されており、セキュリティの向上と最新のJavaScript/TypeScriptランタイムなど、いくつかの利点があります。
Supabase Edge Functionsを使い始める方法は次のとおりです。
1. セットアップ
前提条件
始める前に、Supabase CLIがインストールされていることを確認してください。まだインストールしていない場合は、公式ドキュメントの手順に従ってください。
新しいプロジェクトの作成
ターミナルまたはコマンドプロンプトを開きます。
ローカルマシンのディレクトリに、次のコマンドを実行して新しいSupabaseプロジェクトを作成します。
supabase init
このコマンドは、現在のディレクトリに新しいSupabaseプロジェクトを初期化します。
Edge関数の追加
- Supabaseプロジェクト内で、`hello-world`という名前の新しいEdge関数を作成します。
supabase functions new hello-world
このコマンドは、プロジェクトに指定された名前の新しいEdge関数を作成します。
2. Hello World
`hello-world`関数を編集するには、`supabase/functions/hello-world/index.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. 実行
関数をローカルで実行するには、次のコマンドを使用します。
- 関数をサーブするには、次のコマンドを使用します
supabase start # start the supabase stack
supabase functions serve --no-verify-jwt # start the Functions watcher
`--no-verify-jwt`フラグを使用すると、ローカル開発中にJWT検証をバイパスできます。
- cURLまたはPostmanを使用して、`http://127.0.0.1:54321/functions/v1/hello-world/hello`にGETリクエストを送信します。
curl --location 'http://127.0.0.1:54321/functions/v1/hello-world/hello'
このリクエストは、「Hello from hono-server!」というテキストを返します。
4. デプロイ
SupabaseのすべてのEdge関数を1つのコマンドでデプロイできます。
supabase functions deploy
または、デプロイコマンドに関数の名前を指定することで、個々のEdge関数をデプロイできます。
supabase functions deploy hello-world
その他のデプロイ方法については、本番環境へのデプロイに関するSupabaseのドキュメントを参照してください。