スーパーベースエッジ機能

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-03 04:31:21424ブラウズ

Supabase Edge Functions

Supabase でのエッジ機能の使用と Cron ジョブでのスケジュール設定に関するステップバイステップ ガイド
Supabase のエッジ機能を使用すると、エッジで実行されるサーバー側ロジックをデプロイできるため、高速でスケーラブルな操作が可能になります。エッジ機能を作成してデプロイし、cron ジョブでスケジュールする方法は次のとおりです:

1- Supabase CLI をインストールします:

Supabase CLI をダウンロードしてインストールします。これは、プロジェクトの管理とエッジ機能のデプロイに使用されます。
npm 経由でインストールします:
npm install -g supabase

Supabase で認証する:
スーパーベースログイン

ローカルで Supabase プロジェクトを初期化します:

ターミナルでプロジェクト ディレクトリに移動します。
実行:
スーパーベース初期化

2.エッジ関数を作成する
新しい関数を生成します:

CLI を使用して新しいエッジ関数を生成します:

supabase 関数の新しい my-function
my-function を関数の名前に置き換えます。
関数ロジックを作成します:

functions/my-function/index.ts ファイルに移動します。
ロジックを追加します。例:
JavaScript
`import {serve } from 'https://deno.land/std@0.168.0/http/server.ts';

serve(async (req) => {
return new Response('Hello, world!', {
ヘッダー: { 'Content-Type': 'text/plain' },
});
});`
ローカルでテスト:

関数をローカルで開始します:
supabase 関数は my-function
を提供します http://localhost:54321/functions/v1/my-function にある関数にアクセスします。
関数をデプロイします:

関数を Supabase にデプロイします:
supabase 関数は my-function
をデプロイします このためには、Docker がインストールされており、開いている必要があります!

  1. デプロイされた関数をテストする 関数の URL を取得します:

Supabase ダッシュボードで、[関数] > [機能] に移動します。私の関数。
デプロイされた関数の URL をコピーします。
関数を呼び出します:

curl、Postman、JavaScript フェッチなどのツールを使用して、デプロイされた関数をテストします。
カール https://your-project-id.supabase.co/functions/v1/my-function

4. Cron ジョブを使用して関数をスケジュールする
Supabase
に pg_cron をインストールして有効にする Supabase プロジェクトにアクセスします:

Supabase ダッシュボードにログインし、プロジェクトを開きます。
pg_cron 拡張機能を有効にする:

データベースに移動 >拡張機能。
pg_cron を検索し、トグルをクリックして有効にします。
インストールの確認:

SQL エディタを開いて次のコマンドを実行します。
SELECT * FROM pg_available_extensions WHERE name = 'pg_cron';

Edge 関数を呼び出す Postgres 関数を追加します
HTTP を使用して Supabase Edge 関数を呼び出す PostgreSQL 関数を作成する必要があります。

Postgres 関数を作成します:

SQL エディターで、次のように記述して実行します。

`関数の作成または置換 call_edge_function()
void AS $$
を返します 宣言
応答 jsonb;
始めてください
-- Edge 関数に HTTP リクエストを送信します
SELECT INTO 応答
http_post(
'https://your-project-id.supabase.co/functions/v1/my-function', -- Edge 関数の URL に置き換えます
'{}', -- オプションの JSON ペイロード (必要に応じて調整)
'Authorization=Bearer your-anon-key; Content-Type=application/json' -- Supabase anon キーに置き換えます
);

-- オプションで応答をログに記録します (デバッグ用)
通知を上げる '応答: %'、応答;
終了;
$$ 言語 plpgsql;`
置換:

your-project-id を Supabase プロジェクト ID に置き換えます。
your-anon-key を Supabase anon キーに置き換えます (ダッシュボードの [設定] > [API] で利用可能)。
Postgres 関数をテストします:

関数を手動で呼び出して、機能することを確認します。

SELECT call_edge_function();
出力にエラーがないか確認してください。

  1. pg_cron を使用して関数をスケジュールする Cron ジョブを作成します:

SQL エディターで、次のように記述して実行します。

SELECT cron.schedule(
'call_edge_function_job', -- ジョブの一意の名前
'0 * * * *', -- Cron 式 (例: 1 時間ごと)
$$ SELECT call_edge_function(); $$
);
cron 式を希望のスケジュールに置き換えます。例:

毎分: * * * * *
毎時: 0 * * * *
毎日午前0時: 0 0 * * *
スケジュールされたジョブのリスト:

ジョブが作成されたことを確認します:
SELECT * FROM cron.job;
Cron ジョブの削除または更新:

ジョブを削除するには:

SELECT cron.unschedule('call_edge_function_job');

これらの手順に従うことで、完全に機能するエッジ機能が Supabase にデプロイされ、cron ジョブで希望の間隔で実行されるようにスケジュール設定されます。

以上がスーパーベースエッジ機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。