Fonctions Browserbase
Déployez l'automatisation de navigateur serverless avec le CLI officiel bb.
Prérequis
Obtenir la clé API et l'identifiant de projet sur : https://browserbase.com/settings
export BROWSERBASE_API_KEY="your_api_key"
export BROWSERBASE_PROJECT_ID="your_project_id"
Créer un projet Function
1. Initialiser
pnpm dlx @browserbasehq/sdk-functions init my-function
cd my-function
Cela crée :
my-function/
├── package.json
├── index.ts # Votre code de fonction
└── .env # Ajoutez vos identifiants ici
2. Ajouter les identifiants à .env
echo "BROWSERBASE_API_KEY=$BROWSERBASE_API_KEY" >> .env
echo "BROWSERBASE_PROJECT_ID=$BROWSERBASE_PROJECT_ID" >> .env
3. Installer les dépendances
pnpm install
Structure de la fonction
import { defineFn } from "@browserbasehq/sdk-functions";
import { chromium } from "playwright-core";
defineFn("my-function", async (context) => {
const { session, params } = context;
// Connect to browser
const browser = await chromium.connectOverCDP(session.connectUrl);
const page = browser.contexts()[0]!.pages()[0]!;
// Your automation
await page.goto(params.url || "https://example.com");
const title = await page.title();
// Return JSON-serializable result
return { success: true, title };
});
Objets clés :
context.session.connectUrl- endpoint CDP pour connecter Playwrightcontext.params- paramètres d'entrée de l'invocation
Flux de développement
1. Démarrer le serveur de développement
pnpm bb dev index.ts
Le serveur s'exécute sur http://127.0.0.1:14113
2. Tester localement
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. Itérer
Le serveur de développement se recharge automatiquement lors de modifications de fichiers. Utilisez console.log() pour déboguer - la sortie s'affiche dans le terminal.
Déployer
pnpm bb publish index.ts
Sortie :
Function published successfully
Build ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Function ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Enregistrez l'identifiant de fonction - vous en aurez besoin pour invoquer.
Référence rapide
| Commande | Description |
|---|---|
pnpm dlx @browserbasehq/sdk-functions init <name> |
Créer un nouveau projet |
pnpm bb dev <file> |
Démarrer le serveur de développement local |
pnpm bb publish <file> |
Déployer sur Browserbase |
Pour des exemples d'invocation, des motifs courants et du dépannage, voir REFERENCE.md.