浏览全部文档 · 20/37

功能简介

Functions 管理 Function、Deployment 与 Execution,可由 SDK/HTTP、事件或计划触发。代码构建和执行依赖 Builder、Executor、Runtime 与对象存储等实例组件,因此 API 存在不等于目标环境已经能完成部署。

当前支持范围

  • 云函数(SUPPORTED):创建、部署和执行函数,并按事件或计划触发计算任务;运行时需要实例配置构建器与执行器。

适用场景

  • 实现受控的服务端业务逻辑。
  • 响应数据库、存储、账号或消息事件。
  • 运行计划任务或异步处理。

前置条件

  • 实例已配置可用 Builder、Executor 与 Runtime。
  • Function 已创建,并有 active Deployment。
  • 执行身份拥有 functions.read/execute 或管理 Scope。

Console 操作路径

Console → Project → Functions。可从模板、仓库或手动方式创建 Function,进入 Deployments、Executions、Domains、Settings 与 Usage;具体部署方式取决于实例 VCS 和构建能力。

SDK 示例

SDK · TypeScript
import { Client } from 'appbase-web-sdk';

const client = new Client()
  .setEndpoint('https://<APPBASE_HOST>/v1')
  .setProject('<PROJECT_ID>');
import { Functions, ExecutionMethod } from 'appbase-web-sdk';
const functions = new Functions(client);

const execution = await functions.createExecution({
  functionId: '<FUNCTION_ID>',
  body: JSON.stringify({ action: 'ping' }),
  async: false,
  method: ExecutionMethod.POST,
  headers: { 'content-type': 'application/json' }
});

REST 示例

REST · Bash
curl 'https://<APPBASE_HOST>/v1/functions/<FUNCTION_ID>/executions' \
  -X POST \
  -H 'X-Appwrite-Project: <PROJECT_ID>' \
  -H 'X-Appwrite-JWT: <USER_JWT>' \
  -H 'Content-Type: application/json' \
  --data '{"body":"{\"action\":\"ping\"}","async":false,"method":"POST"}'

权限模型

创建/部署 Function 通常要求服务端管理 Scope;执行可按 Function execute 权限接受用户身份或 Key。Function 内获得的动态凭据和环境变量必须限制 Scope,并避免写入日志。

常见错误

现象处理建议
Deployment build failed查看构建日志、Runtime、入口命令和依赖,不要只重试。
Execution failed/timeout检查 Function 日志、timeout、资源规格和下游依赖。
404 function_not_foundFunction 不存在、未启用或当前身份不可见。
Executor unavailable修复部署组件;不要把基础设施故障伪装成业务 404。

当前限制

  • 运行时、规格和并发受实例配置限制。
  • 事件投递至少一次时,Function 业务逻辑需要幂等。
  • Functions 不是统一 Agent Runtime;它只是可组合计算能力。

Appwrite 兼容说明

Function、Deployment、Execution 与 Runtime 术语保持兼容;实际支持的 Runtime 以目标实例返回为准。

AppBase 增强说明

AppBase Functions 可组合 LLM Gateway、Knowledge Base、Memory 与 Moderation 来承载 Agent 业务流程。

发布状态和验证 Commit

origin/main 已核验。验证 Commit:0363062a1c7ea08741975bb5ba0c3361663c9353

权威来源文件列表

  • backend-candidate:src/Appwrite/Platform/Modules/Functions/Http/Functions/
  • backend-candidate:tests/e2e/Services/Functions/FunctionsCustomServerTest.php
  • frontend-candidate:console/src/routes/(console)/project-[region]-[project]/functions/

Appwrite taxonomy 仅作信息架构参考:https://appwrite.io/docs/products/functions。上游页面不是 AppBase 实现证据。

继续阅读