---
title: "Exécuter des scripts Python personnalisés avec l'action Custom"
description: "Cet article concerne les actions qui utilisent le moteur de traitement de données Python de la Data Platform. Pour utiliser des clusters Apache Spark, voir Custom PySpark action"
url: https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-actions-custom
lang: fr
lastUpdated: 2026-09-14
---
> For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt.

# Exécuter des scripts Python personnalisés avec l'action Custom

## Objectif

:::info
Cet article concerne les actions qui utilisent le moteur de traitement de données Python de la Data Platform. Pour utiliser des clusters Apache Spark, voir [Custom PySpark action](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-actions-custom-pyspark.md).
:::

Une _action Custom_ vous permet d'exécuter des scripts Python personnalisés dans un environnement de cluster cloud évolutif.

En utilisant notre [Software Development Kit (SDK)](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/landing-page-developers-python-sdk.md) pour interagir facilement avec les différents composants de la platform, les _actions Custom_ peuvent être utilisées pour mettre en œuvre une variété de cas d'usage tels que :

- Exécuter un algorithme de manipulation ou une tâche ETL sur votre entrepôt de données
- Exécuter une analyse de données simple ou un algorithme de machine learning
- Extraire des données depuis des sources de données non disponibles sur la marketplace de la Data Platform sans avoir à créer de connecteurs pour cela
- Extraire des données en temps réel (comme MQTT, Kafka, etc.)

:::info
Les actions Custom bénéficient de l'ensemble des fonctionnalités du Data Processing Engine, typiquement la puissance de la [segmentation pour paralléliser l'exécution](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-jobs-segmentation.md) de votre algorithme ou l'orchestration au sein de [workflows](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-workflows.md) déclenchés immédiatement ou selon une planification.
:::

## Configurer une action Custom

Dans le Data Processing Engine de votre Projet, allez dans l'onglet Actions et cliquez sur le bouton **New Action**. Choisissez le type d'action _Custom_.

![Écran de création d'une action personnalisée](/images/public-cloud/data-platform/product/dpe/actions/custom/picts/custom-action.png)
Glissez-déposez votre script _.py_ dans la section « Drag and drop ».\
Sinon, sélectionnez l'option **Start with a boilerplate** pour démarrer directement sur l'interface Python de la Platform avec des exemples de snippets de code.

![Écran de création d'une action personnalisée](/images/public-cloud/data-platform/product/dpe/actions/custom/picts/action-creation.png)
Le nom de la fonction à exécuter **doit être saisi manuellement** en haut de l'écran dans le panneau Information (ici et par défaut : « customfunc »).

Vous pourrez modifier votre fichier source directement dans l'interface d'édition ou déposer un nouveau fichier si nécessaire. Lorsque vous développez vos propres actions personnalisées, vous pouvez utiliser n'importe quelle fonction fournie dans le [Software Development Kit (SDK)](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/landing-page-developers-python-sdk.md) pour interagir facilement avec les autres composants de la platform.\
Pour en savoir plus sur toutes les fonctions du SDK disponibles, consultez l'article ci-dessous :

[Découvrir toutes les méthodes du SDK](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/landing-page-developers-python-sdk.md)

:::info
Tout ce que votre script écrit sur la sortie standard ou l'erreur standard, y compris les simples appels à `print()`, apparaît dans les logs de la tâche aux côtés des messages émis via le module `logging`.
:::

## Utiliser le panneau d'aide

![Panneau d'aide de l'action DPE Custom](/images/public-cloud/data-platform/product/dpe/actions/custom/picts/custom-action-helper.png)
L'éditeur de l'action Custom inclut un panneau d'aide, vous permettant de trouver de l'assistance sans quitter votre script :

- **Scenarios** : scripts d'action prêts à l'emploi organisés par catégorie, à copier et adapter à votre cas d'usage.
- **SDK guides** : documentation des méthodes du [SDK](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/landing-page-developers-python-sdk.md) que vous pouvez appeler depuis votre script.
- **Data** : parcourez les données de votre projet directement depuis l'éditeur, pour vérifier les noms et les structures pendant que vous écrivez votre code.
- **FAQ** : réponses aux questions fréquentes sur l'action Custom.

:::info
Le contenu d'aide est le même catalogue en direct qui alimente la [Data Platform Extension](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-notebooks-data-platform-extension.md) dans les notebooks, il est donc toujours à jour.
:::

## Gérer les dépendances

### Définir la version du langage

Vous pouvez choisir la version de Python de votre action Custom parmi les suivantes :

- Python 3.11
- Python 3.9 _(option par défaut)_

:::info
Les [workflows](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-workflows.md) ne peuvent pas être exécutés avec plusieurs versions à la fois.
:::

:::info
Nous mettons régulièrement à jour les versions disponibles afin de vous fournir un framework de développement conforme aux meilleures pratiques. Votre travail existant n'est pas migré vers une nouvelle version tant que sa version de langage est encore prise en charge.
:::

### Installer des packages Python

Vous pourriez avoir besoin d'installer des packages spécifiques non inclus par défaut. Vous pouvez les ajouter dans le champ « Python Requirements » en respectant le format utilisé dans un fichier requirements basique pour « pip » (gestionnaire de packages Python), puis appuyer sur « ENTER » sur votre clavier.

Voici à quoi cela devrait ressembler une fois que vous avez appuyé sur « ENTER » :

![Écran de création d'une action personnalisée](/images/public-cloud/data-platform/product/dpe/actions/custom/picts/action-requirements.png)
:::info
Lorsque vous travaillez avec une action Custom dans un environnement d'exécution [Always-up](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-jobs-preferences.md#modes-dex%C3%A9cution), la mise à jour des dépendances déclenche un redéploiement de l'environnement pour appliquer les changements.
:::

### Installer des packages depuis un dépôt Git

Vous pouvez installer des packages Python directement depuis un dépôt GitHub ou GitLab en utilisant le préfixe `git+` dans vos requirements :

```
git+https://github.com/{OWNER}/{REPO}.git
```

Pour figer une version spécifique, ajoutez un tag ou un hash de commit :

```
git+https://github.com/{OWNER}/{REPO}.git@<tag>
```

#### Installer automatiquement la dernière version

Pour toujours installer la dernière version publiée sans suivre manuellement les tags de version, utilisez `@latest` :

```
git+https://github.com/{OWNER}/{REPO}.git@latest
```

La platform détecte le préfixe `git+` et le suffixe `@latest`, puis résout et substitue automatiquement le dernier tag de version avant l'installation.

:::info
Après avoir ajouté ou modifié une dépendance Git, cliquez sur **Force Build** pour réinstaller. Vous n'avez plus besoin de mettre à jour manuellement le tag ou le hash de commit à chaque publication d'une nouvelle version de votre module, mais notez que la dernière version n'est pas prise en compte automatiquement à l'exécution, un **Force Build** manuel est toujours requis.
:::

### Liste par défaut des dépendances

:::warning
La Data Platform bloque les versions mineures, ce qui permet l'installation des correctifs de bugs. Si vous avez besoin d'une version plus récente d'une bibliothèque, vous pouvez la surcharger manuellement en ajoutant le même package avec la nouvelle version dans le champ « Requirements ».
:::

Voici la liste de tous les packages et de leur version (tels que vous pourriez les trouver dans un fichier requirements pour pip) livrés avec les workers du Data Processing Engine :

[Découvrir tous les packages Python par défaut](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-actions-custom-default-packages.md)

## Exemples de scripts

### Exemple d'extraction d'un fichier suivi de son chargement dans le dataset par défaut

```python
import logging
import sys
from forepaas.dwh import connect
from forepaas.dwh import bulk_insert

def customfunc(event):
    logger = logging.getLogger(__name__)
    
    try:
        logger.info("Begin function")
        
        # Connect to the source connector
        connector = connect("dwh/dropbox_test/consommations.csv")
        
        # Upload raw file from the source connector
        connection_str = get_raw(connector)
        
        # Connect to the source
        source = connect(connection_str)
        
        # Connect to the destination connector
        destination = connect("dwh/default_dataset/consommations")
        
        # Extract dataframe from source and bulk insert into the destination
        for df in extract(source):
            stats, error = bulk_insert(destination, "consommations", df)
            logger.info(stats)
            logger.info(error)
        
        del connector, source, destination
        logger.info("END function")
        
    except Exception as e:
        raise Exception("err:{} L:{}".format(e, sys.exc_info()[2].tb_lineno))

```

### Exemple d'un transfert de données entre deux datasets

```python
import logging
import sys
from forepaas.dwh import connect
from forepaas.dwh import bulk_insert

def customfunc(event):
    logger = logging.getLogger(__name__)
    
    try:
        logger.info("Begin function")
        
        # Connection to a source datastore
        connector = connect("dwh/default_dataset/consommations")
        
        # Data extraction from the source by a SELECT
        lines = connector.select("consommations", {"filter_attribute": "2018-01-01"})
        
        del connector
        
        # Treatment of each line of the data
        for line in lines:
            line["new_insight"] = (line["factor1"] + line["factor2"] * 2) / 100
        
        # Connection to the destination datastore
        connector = connect("dwh/analytics_dataset/agr_consommations")
        
        # Bulk insert into the destination
        stats, err = bulk_insert(connector, "agr_consommations", lines)
        logger.info(stats)
        logger.info(err)
        
        del connector
        logger.info("END function")
        
    except Exception as e:
        raise Exception("err:{} L:{}".format(e, sys.exc_info()[2].tb_lineno))

```

## Aller plus loin

Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur [ce lien](https://www.ovhcloud.com/fr/professional-services/) pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe la Data Platform sur le [canal Discord](https://discord.gg/ovhcloud) dédié.

Si vous avez besoin d'une assistance concernant vos services OVHcloud, créez une demande depuis notre [centre d'aide](https://help.ovhcloud.com/csm?id=csm_get_help).

Rejoignez notre [communauté d'utilisateurs](https://community.ovhcloud.com/).
