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 | 控制台会话(Studio) | 以下每条路线 |
任何其他路线都会回答 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 | ISO 8601 |
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替换整个变量集,并且是加密它们的唯一途径。请参阅 秘密。invoke或作业找不到带有is_active: false的函数。
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 是您的函数的状态。 logs 对于 deno为空。在原始模式下,响应是您的函数自己的:状态、 content-type、字节以及 x-aurabase-invoke-origin: function。
| 失败 | 状态 | error.code |
|---|---|---|
| 功能未找到或未激活 | 404 | NOT_FOUND |
| 运行时无法访问 | 503 | SERVICE_UNAVAILABLE |
平台停止等待运行时(在timeout_secs加上边距之后) | 504 | TIMEOUT |
| 计划配额已用完 | 403 | QUOTA_EXCEEDED |
| 一位客户的来电过多 | 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= |
值和行为: 警报。