Skip to content

エッジ関数

サーバーサイドコード実行

エッジ関数は、サーバー上で実行されるJavaScript関数で、ブラウザで実行すべきでない、または実行できないロジックを実装できます。AIは、サーバーサイド処理、外部API統合、または強化されたセキュリティが必要な機能を説明すると、これらの関数を作成します。

エッジ関数が可能にすること

  • 検証と外部API呼び出しを使用したフォーム処理
  • メール送信、支払い処理、AI API呼び出しなどのサービス統合
  • ブラウザコードで表示されるべきでない機密ロジックの保護
  • ユーザーに公開せずにシークレットに安全にアクセス
  • ブラウザには遅すぎるまたはリソース集約的すぎる複雑な操作の実行

関数の仕組み

AIがエッジ関数を作成すると:

  1. JavaScriptコードを書く - 説明したタスクを実行するため
  2. アクセス制御を設定 - 誰が関数を呼び出せるかを決定
  3. シークレットアクセスを構成 - 関数が外部API資格情報を必要とする場合
  4. 関数をテスト - 正しく動作することを確認
  5. URLを提供 - アプリケーションが関数を実行するために呼び出すことができる

関数は隔離された安全な環境で実行されます。各実行は、タイミング情報、エラー、トリガーしたユーザーとともにログに記録されます。管理インターフェースでこれらのログを表示して、関数のパフォーマンスを監視し、問題をデバッグできます。

関数のアクセス制御

データベーステーブルと同様に、エッジ関数には誰が実行できるかを制御するセキュリティポリシーがあります。AIは構築しているものに基づいてこれらを設定します:

パブリック関数

ログインしなくても誰でも呼び出すことができます。Webhook ハンドラー(Stripe支払い通知など)、パブリックAPI、またはヘルスチェックエンドポイントに使用されます。

認証済み関数

ログインしたユーザーのみが呼び出せます。ほとんどの関数はこのポリシーを使用します — ユーザー向け機能、フォーム送信、またはアプリケーションのデータフェッチに適しています。

グループベースアクセス

特定のグループ(「admin」など)のユーザーのみが関数を呼び出せます。管理操作、モデレーションツール、またはチーム固有の機能に最適です。

メタデータベースアクセス

カスタムユーザー属性に基づくアクセス。たとえば、department = "engineering"のユーザーのみが特定の関数を呼び出せます。これにより、柔軟でカスタムな権限スキームが可能になります。

関数ができること

データベースアクセス

関数は、すべて同じセキュリティルールが適用された状態でデータベースをクエリおよび変更できます。行レベルセキュリティを尊重しながら、レコードの作成、読み取り、更新、または削除ができます。

外部API呼び出し

関数は、保存されたシークレットを使用して外部サービスと通信できます。AIは必要な認証とリクエストフォーマットを含みます。

複雑なロジック

関数は、ブラウザには複雑すぎる計算、データ変換、検証、またはマルチステップワークフローを実行できます。

メールと通知

ユーザーアクションに応答してトランザクションメール、SMSメッセージ、またはプッシュ通知を送信します。

支払い処理

Stripeなどのサービスで、支払いフロー、Webhook処理、またはサブスクリプション管理を処理します。

AI統合

コンテンツを生成したり、データを分析したり、インテリジェント機能を提供するために、OpenAIやAnthropicなどのAI APIを呼び出します。

シナリオ例

お問い合わせフォーム処理

ユーザーがお問い合わせフォームを送信すると、エッジ関数が入力を検証し、データベースに保存し、チームにメール通知を送信します — すべて単一の関数呼び出しでトリガーされます。

AIコンテンツ生成

ユーザーがAI生成コンテンツをリクエストすると、関数は保存された資格情報を使用してOpenAIまたはAnthropic APIを呼び出し、コンテンツを生成し、データベースに保存し、ユーザーに返します。

支払い処理

関数は支払いフロー全体を処理します:Stripeで支払いインテントを作成し、支払いが完了したときにWebhookを処理し、データベースの注文ステータスを更新し、確認メールを送信します。

データエクスポート

認証された関数がデータベースをクエリし、データをCSVまたはExcelとしてフォーマットし、ダウンロード用に返します — すべてユーザー権限とセキュリティルールを尊重しながら。

監視とログ

すべての関数実行は自動的に以下でログに記録されます:

  • いつ誰によって呼び出されたか
  • 実行にかかった時間
  • 成功したかエラーが発生したか
  • コンソール出力またはエラーメッセージ
  • 返された応答

これらのログは管理インターフェースで利用可能で、関数のパフォーマンスを監視したり、問題をデバッグしたり、アプリケーションの使用状況を理解したりするのが簡単です。

ベストプラクティス

明確に説明する - AIに関数の作成を依頼するときは、何をすべきか、誰が呼び出せるべきかを具体的に説明してください。

ログを監視する - 関数実行ログをチェックして、パフォーマンスを理解し、エラーを早期に発見します。

シークレットマネージャーにシークレットを保持する - AIは、関数にハードコーディングするのではなく、保存されたシークレットを使用します。

機密操作を公開しない - AIに適切なアクセス制御を構成させます。管理機能を公開してはいけません。


関連ドキュメント:

Built by Kliv with VitePress