Créer et compiler une function

Créez une function dans Studio, écrivez son gestionnaire, enregistrez un brouillon et compilez-la en version WebAssembly exécutable.

4 min de lecture

Au terme de ce guide, la function a le statut Prêt, mais rien ne la déclenche encore. Pour la relier, suivez la page de son type : événement de plateforme ou hook.

Avant de commencer

  • Votre rôle utilisateur doit être Admin. Les utilisateurs Contributor ne voient pas les écrans des functions.
  • Vous devez travailler dans l'organisation Global. L'onglet Fonctions n'apparaît que là.
  • Choisissez d'abord le type de la function. Il est définitif.
  • Si votre gestionnaire appelle une API externe, préparez les noms d'hôtes. Vous devrez les autoriser pour que les appels sortants aboutissent.

Ouvrir l'onglet Fonctions

  1. Dans le sélecteur d'organisation en haut de la barre latérale, choisissez Global.

    Sélecteur d'organisation ouvert, avec Global mis en évidence

  2. Dans la barre latérale, sélectionnez Paramètres Généraux.

    Menu de Studio sur Global, avec Paramètres Généraux mis en évidence

    La page Paramètres de l'Entreprise s'ouvre.

  3. Sélectionnez l'onglet Fonctions.

    Paramètres de l'Entreprise avec l'onglet Fonctions mis en évidence

Créer la function

Dans l'onglet Fonctions :

  1. Sélectionnez Nouvelle fonction.

    Onglet Fonctions avec le bouton Nouvelle fonction mis en évidence

  2. Dans le champ Nom à afficher, saisissez un nom, par exemple Loyalty award processor. L'identifiant est généré automatiquement.

    Fenêtre Créer une fonction avec le nom à afficher Loyalty award processor mis en évidence

  3. Sous Type, choisissez Événement de la plateforme ou Hook. Ce choix est définitif.

    Fenêtre Créer une fonction avec le type Événement de la plateforme sélectionné et mis en évidence

  4. (Hook uniquement) Sous Point d'accroche, choisissez le point d'accroche, ici contact.verify — Vérification du contact.

    Fenêtre Créer une fonction avec Hook choisi et le point d'accroche contact.verify mis en évidence

    Le champ Point d'accroche est prérempli avec contact.create.pre — Création de contact (pré). Ce choix est lui aussi définitif : la function ne pourra être liée qu'à ce point d'accroche.

  5. Sélectionnez Créer.

    Fenêtre Créer une fonction avec le bouton Créer mis en évidence

Tant que vous n'avez pas modifié le code vous-même, chaque type ou point d'accroche choisi insère un gestionnaire de départ fonctionnel dans le champ Source (TypeScript). OmniLab vérifie les types de la source et enregistre la function au statut Brouillon.

Écrire le gestionnaire et enregistrer le brouillon

  1. Sur la ligne de la function, sélectionnez Modifier.

    Onglet Fonctions avec le bouton Modifier mis en évidence sur la ligne Touchpoint completion logger

  2. Dans l'onglet Source, écrivez votre gestionnaire.

    Onglet Source avec le gestionnaire dans l'éditeur, mis en évidence

  3. Sélectionnez Enregistrer la source.

    Onglet Source avec le bouton Enregistrer la source mis en évidence

Votre fichier doit exporter le nom qui correspond à son type, sinon la sauvegarde échoue avec une erreur de typage. Le gestionnaire de départ exporte déjà le bon nom et se compile tel quel : vous pouvez le compiler sans le modifier pour vérifier la configuration.

Le gestionnaire de départ de contact.verify lit le secret brevo.api_key, en minuscules. Les clés de secrets sont sensibles à la casse : modifiez-la pour qu'elle corresponde à la clé que vous créez dans votre lot de secrets, par exemple brevo.API_KEY.

Des exemples fonctionnels pour chaque type, du hello world jusqu'à des cas plus complets, figurent dans les pages Functions d'événement de plateforme et Functions de type hook.

  • L'éditeur affiche en temps réel la taille de la source, plafonnée à 1 Mo. Le point d'entrée est user.ts.
  • Le bouton Enregistrer la source reste grisé tant que vous n'avez rien modifié.
  • La sauvegarde stocke votre code et en vérifie les types, sans rien déployer : une function en ligne continue d'exécuter sa version actuelle jusqu'à la prochaine compilation.
  • Si la vérification des types échoue, un panneau Échec du lint liste chaque problème avec son fichier, son numéro de ligne et sa colonne. Sélectionnez un problème pour accéder à l'endroit du code concerné. Rien n'est enregistré tant que la vérification échoue.

Compiler la function

Dans l'éditeur de la function :

  1. Sélectionnez l'onglet Construire.

    Éditeur de function avec l'onglet Construire mis en évidence

  2. Sélectionnez Construire.

    Onglet Construire avec le bouton Construire mis en évidence, et le build actuel au statut Prêt

Le statut passe à Build en cours, puis à Prêt, en général en moins d'une minute : le numéro de version augmente, et les champs SHA du WASM et Taille du WASM se remplissent. Si la compilation échoue, l'onglet affiche l'erreur et un journal de compilation tronqué. Recompiler une source inchangée aboutit presque aussitôt.

Vérifier qu'elle s'exécute

Avant de la relier, lancez une invocation de test depuis l'onglet Tester de la function.

En cas de blocage

  • L'onglet Fonctions n'apparaît pas : soit vous n'êtes pas Admin, soit vous n'êtes pas dans l'organisation Global. Changez d'organisation avec le sélecteur en haut de la barre latérale.
  • La sauvegarde signale une erreur de typage que vous ne comprenez pas : la cause la plus fréquente est le nom de l'export. Une function de type hook pour contact.create.pre doit exporter exactement onContactCreatePre ; une function d'événement de plateforme doit exporter onPlatformEvent. Le nom découle du type et du point d'accroche, et un écart est signalé comme un export manquant ou mal formé. Un gestionnaire qui ne correspond pas à son type déclaré échoue de la même façon : mauvais paramètre, mauvaise valeur de retour, ou import d'un type de gestionnaire qui ne correspond pas au type de la function. Comparez votre gestionnaire à l'exemple de la page de son type.
  • Le statut reste longtemps à Build en cours : une compilation bloquée est libérée au bout d'environ quinze minutes, et vous pouvez alors en lancer une autre. Si cela se reproduit, contactez le support avec l'ID du build affiché dans l'onglet Construire.
  • Votre gestionnaire n'arrive pas à joindre une API externe : une function sans hôte autorisé voit toutes ses requêtes sortantes refusées. Voir Configurer l'exécution et les secrets.
  • La function est au statut Prêt mais rien ne se passe : rien ne déclenche une function compilée tant que vous n'avez pas ajouté un abonnement ou une liaison de hook.

Étapes suivantes

Sur cette page