Skip to content
Firecrawl Docs
Firecrawl Docs
Serverless

AWS Lambda

Utilisez Firecrawl avec AWS Lambda pour rechercher, extraire et interagir avec des données web dans des fonctions sans serveur.

mkdir firecrawl-lambda && cd firecrawl-lambda
npm init -y
npm install firecrawl

Créez le fichier index.mjs avec un gestionnaire de recherche :

import { Firecrawl } from "firecrawl";

const firecrawl = new Firecrawl({ apiKey: process.env.FIRECRAWL_API_KEY });

export async function handler(event) {
  const body = JSON.parse(event.body || "{}");

  if (body.action === "search") {
    const results = await firecrawl.search(body.query, { limit: 5 });
    return {
      statusCode: 200,
      body: JSON.stringify(results),
    };
  }

  return { statusCode: 400, body: JSON.stringify({ error: "Unknown action" }) };
}

Ajoutez une action scrape dans le même gestionnaire :

if (body.action === "scrape") {
  const result = await firecrawl.scrape(body.url);
  return {
    statusCode: 200,
    body: JSON.stringify(result),
  };
}

Ajoutez une action interact pour contrôler une session de navigateur en direct — pour cliquer sur des boutons, remplir des formulaires et extraire du contenu dynamique :

if (body.action === "interact") {
  const result = await firecrawl.scrape("https://www.amazon.com", {
    formats: ["markdown"],
  });
  const scrapeId = result.metadata?.scrapeId;

  await firecrawl.interact(scrapeId, {
    prompt: "Search for iPhone 16 Pro Max",
  });
  const response = await firecrawl.interact(scrapeId, {
    prompt: "Click on the first result and tell me the price",
  });

  await firecrawl.stopInteraction(scrapeId);
  return {
    statusCode: 200,
    body: JSON.stringify({ output: response.output }),
  };
}

Créez le package et déployez avec l’AWS CLI :

zip -r function.zip index.mjs node_modules/

aws lambda create-function \
  --function-name firecrawl-scraper \
  --runtime nodejs20.x \
  --handler index.handler \
  --zip-file fileb://function.zip \
  --role arn:aws:iam::YOUR_ACCOUNT:role/lambda-role \
  --environment Variables="{FIRECRAWL_API_KEY=fc-YOUR-API-KEY}" \
  --timeout 60

Définissez le délai d’expiration de Lambda sur au moins 30 secondes. Le scraping de pages dynamiques et les sessions Interact peuvent prendre plus de temps que le délai d’expiration par défaut de 3 secondes.

Was this page helpful?Suggest editsRaise issue