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

# AWS Lambda

> Utilisez Evocrawl 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 Evocrawl — [obtenez-en une gratuitement](https://www.evocrawl.com/app/api-keys)

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

```bash theme={null}
mkdir evocrawl-lambda && cd evocrawl-lambda
npm init -y
npm install @mendable/evocrawl-js
```

<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 Evocrawl from "@mendable/evocrawl-js";

const evocrawl = new Evocrawl({ apiKey: process.env.EVOCRAWL_API_KEY });

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

  if (body.action === "search") {
    const results = await evocrawl.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 evocrawl.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 evocrawl.scrape("https://www.amazon.com", {
    formats: ["markdown"],
  });
  const scrapeId = result.metadata?.scrapeId;

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

  await evocrawl.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 evocrawl-scraper \
  --runtime nodejs20.x \
  --handler index.handler \
  --zip-file fileb://function.zip \
  --role arn:aws:iam::YOUR_ACCOUNT:role/lambda-role \
  --environment Variables="{EVOCRAWL_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>
