functions

Déployez l'automatisation de navigateur serverless sous forme de fonctions cloud avec Browserbase. À utiliser lorsque l'utilisateur souhaite déployer une automatisation de navigateur s'exécutant selon un planning ou un cron, créer un endpoint webhook pour des tâches de navigateur, exécuter une automatisation dans le cloud plutôt qu'en local, ou se renseigne sur les Browserbase Functions.

npx skills add https://github.com/browserbase/skills --skill functions

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 Playwright
  • context.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.

Skills similaires