functions

functions

熱門

使用 Browserbase 將無伺服器瀏覽器自動化部署為雲端函式。當使用者想要將瀏覽器自動化部署為排程或 cron 執行、為瀏覽器任務建立 webhook 端點、在雲端而非本機執行自動化,或詢問 Browserbase Functions 時使用。

3666星標
232分支
更新於 2026/7/30
SKILL.md
readonlyread-only
name
functions
description

使用 Browserbase 將無伺服器瀏覽器自動化部署為雲端函式。當使用者想要將瀏覽器自動化部署為排程或 cron 執行、為瀏覽器任務建立 webhook 端點、在雲端而非本機執行自動化,或詢問 Browserbase Functions 時使用。

Browserbase Functions

使用官方 browse CLI 部署無伺服器瀏覽器自動化。

先決條件

從以下位置取得 API 金鑰:https://browserbase.com/settings

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

儲存 Function ID - 呼叫時需要用到。

快速參考

指令 說明
browse functions init <name> 建立新專案
browse functions dev <file> 啟動本機開發伺服器
browse functions publish <file> 部署到 Browserbase

如需呼叫範例、常見模式與疑難排解,請參閱 REFERENCE.md