Edge Functions HTTP API リファレンス
各ルートに必要な役割を備えた、機能サービスの完全な HTTP サーフェス。
1. 規約
ベース URL。 プロジェクトの URL ( https://my-app.aurabase.cloudなど)。プロジェクトはホストによって識別されるため、以下のパスにはプロジェクト ID が含まれません。長い形式の /v1/functions/{project_id}/… も受け入れられます。
認証。 apikey ヘッダーでキーを送信します。サインインしているユーザーとして呼び出すための Authorization: Bearer <JWT> を追加します。 Studio は、コンソール セッション トークンを使用して同じルートを呼び出します。これにより、スタジオに admin ロールが与えられます。
| 役割 | どうやってそれを得るのか | 電話するかもしれない |
|---|---|---|
anon | プロジェクトの公開鍵 | POST …/invoke |
authenticated | 公開キーとユーザーの JWT | POST …/invoke |
service_role | service_role キー (サーバーのみ) | 以下の各ルート |
admin | コンソールセッション (スタジオ) | 以下の各ルート |
他のルートは、 403 から anon および authenticatedに応答します。
形式。 ボディは JSON であり、 Content-Type: application/jsonが必要です。成功は { "data": …, "meta": null }です。失敗は { "error": { "code", "message", "type", "request_id" } }です。
関数オブジェクト。
| フィールド | タイプ | |
|---|---|---|
id、 project_id、 name | 文字列 | |
runtime | "deno" または "wasm" | |
code | 文字列 | denoのソース。 wasm のコンパイル済みバイナリの Base64 |
code_hash | 文字列 | code の SHA-256 |
env_vars | オブジェクト | 価値への鍵 |
permissions | オブジェクト | allow_net (文字列配列)、memory_mb、timeout_secs |
is_active | ブール値 | |
created_at、updated_at | ISO8601 |
2. 機能
| メソッドとパス | 役割 | 本体 | 応答 |
|---|---|---|---|
GET /v1/functions | サービスの役割 | なし | 関数オブジェクトの配列 |
POST /v1/functions | サービスの役割 | { name, runtime, code, env_vars? } | 関数オブジェクト |
GET /v1/functions/{name} | サービスの役割 | なし | 関数オブジェクト。 {name} は名前、またはその名前を持つ関数がない場合は ID です。 |
PATCH /v1/functions/{name} | サービスの役割 | { code?, env_vars?, is_active?, permissions? } | 関数オブジェクト |
DELETE /v1/functions/{name} | サービスの役割 | なし | { "data": null } |
GET /v1/functions/{name}/code | サービスの役割 | なし | { "data": { "code": "…" } } |
GET /v1/functions/{name}/env | サービスの役割 | なし | { "data": [ { "key", "value" } ] }、値は復号化されました |
PUT /v1/functions/{name}/env | サービスの役割 | { "vars": [ { "key", "value" } ] } | { "data": null } |
注:
POSTはnameに対する更新/挿入です。既存の名前を投稿すると、そのコードが置き換えられます。その本体内のenv_varsフィールドは既存の変数を置き換えます。それらを保持するには省略します。PATCHでは、permissionsはフィールドごとにマージされます。{ "permissions": { "timeout_secs": 60 } }はallow_netとmemory_mbを保持します。境界外のフィールドは400を返します。PUT …/envは変数セット全体を置き換え、それらを暗号化する唯一のルートです。 シークレットを参照してください。is_active: falseを含む関数がinvokeまたはジョブで見つかりません。
3. 呼び出す
POST /v1/functions/{name}/invoke。役割: anon、 authenticated 、または service_role。
| フィールド | タイプ | デフォルト | |
|---|---|---|---|
method | 文字列 | POST | 関数によって認識される HTTP メソッド |
path | 文字列 | / | 関数によって認識されるパス |
headers | オブジェクト | なし | 関数に与えられるヘッダー。予約されたヘッダーは削除されます。 |
body | 任意の JSON | なし | 関数に与えられた本体 |
| リクエストヘッダー | |
|---|---|
apikey | 必須 |
Content-Type: application/json | 必須 |
Authorization: Bearer <JWT> | オプション: そのユーザーとして呼び出します |
X-Aurabase-Invoke-Mode: raw | オプション: 関数自体の応答を返します。 |
デフォルトの応答、常に 200:
status は関数のステータスです。 denoの場合、 logs は空です。 raw モードでは、応答は関数独自のものになります (ステータス、 content-type、バイト、および x-aurabase-invoke-origin: function)。
| 失敗 | ステータス | error.code |
|---|---|---|
| 機能が見つからないか、非アクティブです | 404 | NOT_FOUND |
| ランタイムに到達できません | 503 | SERVICE_UNAVAILABLE |
プラットフォームはランタイムの待機を停止しました (timeout_secs にマージンを加えた後) | 504 | TIMEOUT |
| プランのクォータが使い果たされた | 403 | QUOTA_EXCEEDED |
| 1 人のクライアントからの電話が多すぎる | 429 | rate_limit_exceeded |
| 約256 KiB以上の本体 | 503 | SERVICE_UNAVAILABLE |
4. ジョブと配信不能キュー
| メソッドとパス | 役割 | 本文またはクエリ | 応答 |
|---|---|---|---|
POST /v1/functions/jobs | サービスの役割 | { function_name, payload?, delay_secs?, max_attempts? } | 仕事 |
GET /v1/functions/jobs | サービスの役割 | ?status=&limit= (1 ~ 500、デフォルトは 50) | ジョブの配列 |
GET /v1/functions/jobs/{id} | サービスの役割 | なし | 仕事 |
POST /v1/functions/jobs/{id}/retry | サービスの役割 | なし | ジョブ、pending に戻る |
GET /v1/functions/jobs/dlq | サービスの役割 | ?limit= | 死んだジョブの配列 |
POST /v1/functions/jobs/dlq/requeue | サービスの役割 | なし | { "data": { "requeued": 1 } } |
ジョブ オブジェクト: id、 project_id、 function_name、 payload、 status (pending、 running、 completed、 failed、 dead)、 attempts、 max_attempts、 error、 scheduled_at、 started_at、 completed_at、 created_at。動作: ジョブ、cron、配信不能キュー。
5.クロン
| メソッドとパス | 役割 | 本体 | 応答 |
|---|---|---|---|
POST /v1/functions/cron | サービスの役割 | { name, schedule, function_name, payload? } | cron エントリ |
GET /v1/functions/cron | サービスの役割 | なし | エントリの配列 |
DELETE /v1/functions/cron/{name} | サービスの役割 | なし | { "data": null }、または不明な 名の場合は 404 |
エントリ: id、 project_id、 name、 schedule (6 つのフィールドで保存)、 function_name、 payload、 is_active、 last_run、 next_run、 created_at。
6. アラート
| メソッドとパス | 役割 | 本文またはクエリ |
|---|---|---|
POST /v1/functions/alerts | サービスの役割 | { name, metric, condition, threshold, channel, destination } |
GET /v1/functions/alerts | サービスの役割 | なし |
PATCH /v1/functions/alerts/{id} | サービスの役割 | { "enabled": true } |
DELETE /v1/functions/alerts/{id} | サービスの役割 | なし |
GET /v1/functions/alerts/{id}/events | サービスの役割 | ?limit=&offset= |
GET /v1/functions/alerts/events | サービスの役割 | ?limit=&offset= |
値と動作: アラート。