functions

functions

热门

使用 Browserbase 将无服务器浏览器自动化部署为云函数。当用户想要将浏览器自动化部署为按计划或 cron 运行、为浏览器任务创建 webhook 端点、在云端而非本地运行自动化,或询问 Browserbase Functions 时使用。

3666Star
232Fork
更新于 2026/7/30
SKILL.md
readonly只读
name
functions
description

使用 Browserbase 将无服务器浏览器自动化部署为云函数。当用户想要将浏览器自动化部署为按计划或 cron 运行、为浏览器任务创建 webhook 端点、在云端而非本地运行自动化,或询问 Browserbase Functions 时使用。

Browserbase Functions

使用官方 browse CLI 部署无服务器浏览器自动化。

前提条件

https://browserbase.com/settings 获取 API 密钥。

export BROWSERBASE_API_KEY="your_api_key"

创建函数项目

1. 初始化

browse functions init my-function
cd my-function

这将创建:

my-function/
├── package.json
├── index.ts        # 你的函数代码
└── .env            # 在此添加凭据

2. 向 .env 添加凭据

echo "BROWSERBASE_API_KEY=$BROWSERBASE_API_KEY" >> .env

3. 安装依赖

pnpm install

函数结构

import { defineFn } from "@browserbasehq/sdk-functions";
import { chromium } from "playwright-core";

defineFn("my-function", async (context) => {
  const { session, params } = context;

  // 连接到浏览器
  const browser = await chromium.connectOverCDP(session.connectUrl);
  const page = browser.contexts()[0]!.pages()[0]!;

  // 你的自动化
  await page.goto(params.url || "https://example.com");
  const title = await page.title();

  // 返回 JSON 可序列化的结果
  return { success: true, title };
});

关键对象:

  • context.session.connectUrl - 用于连接 Playwright 的 CDP 端点
  • context.params - 调用时的输入参数

开发工作流

1. 启动开发服务器

browse functions dev index.ts

服务器运行在 http://127.0.0.1:14113

2. 本地测试

curl -X POST http://127.0.0.1:14113/v1/functions/my-function/invoke \
  -H "Content-Type: application/json" \
  -d '{"params": {"url": "https://news.ycombinator.com"}}'

3. 迭代

开发服务器会在文件更改时自动重新加载。使用 console.log() 进行调试 - 输出会显示在终端中。

部署

browse functions publish index.ts

输出:

Function published successfully
Build ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Function ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

保存函数 ID - 调用时需要它。

快速参考

命令 描述
browse functions init <name> 创建新项目
browse functions dev <file> 启动本地开发服务器
browse functions publish <file> 部署到 Browserbase

有关调用示例、常见模式和故障排除,请参阅 REFERENCE.md