> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firecrawl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# AWS Lambda

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

<div id="prerequisites">
  ## Prérequis
</div>

* Un compte AWS avec accès à Lambda
* Une clé API Firecrawl — [obtenez-en une gratuitement](https://www.firecrawl.dev/app/api-keys)

<div id="setup">
  ## Configuration
</div>

```bash theme={null}
mkdir firecrawl-lambda && cd firecrawl-lambda
npm init -y
npm install firecrawl
```

<div id="search-the-web">
  ## Recherche sur le web
</div>

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

```javascript theme={null}
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" }) };
}
```

<div id="scrape-a-page">
  ## Scraper une page
</div>

Ajoutez une action `scrape` dans le même gestionnaire :

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

<div id="interact-with-a-page">
  ## Interact avec une page
</div>

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 :

```javascript theme={null}
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 }),
  };
}
```

<div id="deploy">
  ## Déployer
</div>

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

```bash theme={null}
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
```

<Note>
  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.
</Note>

<div id="next-steps">
  ## Étapes suivantes
</div>

<CardGroup cols={2}>
  <Card title="Documentation de recherche" icon="magnifying-glass" href="/fr/features/search">
    Effectuez une recherche sur le web et obtenez le contenu complet des pages
  </Card>

  <Card title="Documentation scraper" icon="file-lines" href="/fr/features/scrape">
    Toutes les options de scrape, y compris les formats, les actions et les proxys
  </Card>

  <Card title="Documentation Interact" icon="hand-pointer" href="/fr/features/interact">
    Cliquez, remplissez des formulaires et extrayez du contenu dynamique
  </Card>

  <Card title="Référence Node SDK" icon="node" href="/fr/sdks/node">
    Référence complète du SDK avec crawl, cartographie, extraction par lot et plus encore
  </Card>
</CardGroup>
