

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création et gestion de fonctions
<a name="monetization-functions-managing"></a>

Cette page explique comment créer, joindre, mettre à jour et supprimer des fonctions à l'aide de la MediaTailor console. Les fonctions vous permettent de personnaliser le comportement des sessions et les demandes publicitaires en exécutant la logique à des moments clés de la lecture.

## Configuration d'une fonction
<a name="monetization-functions-managing-setup"></a>

### Création d'une fonction à l'aide de la console
<a name="monetization-functions-managing-create-console"></a>

1. Ouvrez la MediaTailor console à l'adresse [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Dans le volet de navigation, choisissez **Fonctions**.

1. Choisissez **Créer une fonction**.

1. Dans le **champ Function ID**, entrez un nom unique pour la fonction (par exemple,`fetchIdentity`).

1. Pour **Type de fonction**`CUSTOM_OUTPUT`, sélectionnez`HTTP_REQUEST`, ou`SEQUENTIAL_EXECUTOR`. La console affiche les champs de configuration pour le type sélectionné.

1. Renseignez les champs de configuration spécifiques au type. Pour une description de chaque type de fonction et de ses champs, consultez[Types de fonctions et composition](monetization-functions-types.md).

1. Choisissez **Créer une fonction**.

### Associer une fonction à une configuration de lecture
<a name="monetization-functions-managing-attach"></a>

Une fonction ne s'exécute que lorsque vous l'associez à une configuration de lecture par le biais d'un mappage de fonctions (lien entre un hook du cycle de vie et une fonction). Le mappage des fonctions indique quel hook du cycle de vie déclenche la fonction.

1. Ouvrez la MediaTailor console.

1. Dans le volet de navigation, sélectionnez **Configurations**.

1. Choisissez la configuration de lecture que vous souhaitez mettre à jour.

1. Dans la section **Cartographie des fonctions**, choisissez **Modifier**.

1. Pour chaque hook du cycle de vie, sélectionnez la fonction à associer :
   + **Hook d'initialisation de session** — Choisissez une fonction à exécuter une fois au début de la session.
   + **Hook de demande publicitaire** — Choisissez une fonction à exécuter avant chaque demande ADS.

1. Choisissez **Enregistrer**.

## Gestion des fonctions
<a name="monetization-functions-managing-ops"></a>

### Fonctions de visualisation
<a name="monetization-functions-managing-view"></a>

Accédez à **Fonctions** pour voir toutes les fonctions de votre compte. Choisissez le nom d'une fonction pour visualiser sa configuration.

### Mettre à jour une fonction existante
<a name="monetization-functions-managing-update"></a>

Pour mettre à jour une fonction, accédez à **Fonctions**, choisissez la fonction et modifiez la configuration. La mise à jour remplace la définition complète de la fonction.

**Astuce**  
Enregistrez une copie de la configuration de vos fonctions avant d'apporter des modifications. Il n'existe pas de gestion des versions ou de restauration intégrées pour les fonctions.

## Supprimer une fonction
<a name="monetization-functions-managing-remove"></a>

### Détacher une fonction d'une configuration de lecture
<a name="monetization-functions-managing-detach"></a>

Avant de supprimer une fonction, supprimez-la de toutes les configurations de lecture qui y font référence.

1. Ouvrez la MediaTailor console.

1. Dans le volet de navigation, sélectionnez **Configurations**.

1. Choisissez la configuration de lecture.

1. Dans la section **Cartographie des fonctions**, choisissez **Modifier**.

1. Supprimez la fonction du hook du cycle de vie.

1. Choisissez **Enregistrer**.

### Suppression d'une fonction
<a name="monetization-functions-managing-delete"></a>

Accédez à **Fonctions**, sélectionnez la fonction, puis choisissez **Supprimer**.

### Règles de blocage des suppressions
<a name="monetization-functions-managing-delete-blocking"></a>

MediaTailor vous empêche de supprimer une fonction toujours en cours d'utilisation.


| Condition | Résultat | 
| --- | --- | 
| La fonction est associée à une configuration de lecture via le mappage des fonctions | La suppression est bloquée. Détachez d'abord la fonction. | 
| La fonction est référencée dans un SEQUENTIAL\_EXECUTOR | La suppression est bloquée. Supprimez d'abord la référence de la fonction parent. | 
| La fonction n'est référencée nulle part | La suppression réussit. | 

## Règles de validation
<a name="monetization-functions-managing-validation"></a>

MediaTailor valide votre fonction lorsque vous la créez ou la mettez à jour. Les contrôles suivants sont effectués :
+ **Syntaxe des expressions** — Toutes les expressions doivent être des JSonata valides.
+ **Fonctions restreintes** — Les expressions ne peuvent pas appeler des fonctions JSonata restreintes. Consultez [Référence d'expression JSonata](monetization-functions-jsonata.md) la liste complète.
+ **Préfixes de clé de sortie** : toutes les clés de sortie doivent commencer par un préfixe d'espace de noms reconnu. Pour la liste des préfixes acceptés, voir[Hooks de cycle de vie](monetization-functions-hooks.md).
+ **Références de fonctions** : tous les identifiants de fonction d'un `FunctionList` doivent faire référence à des fonctions existantes.
+ **Références circulaires** : une fonction ne peut pas se référencer elle-même, directement ou indirectement.
+ **Profondeur d'imbrication** — A `SEQUENTIAL_EXECUTOR` peut appeler d'autres fonctions, mais ces fonctions ne peuvent pas elles-mêmes être `SEQUENTIAL_EXECUTOR` s.

Pour les valeurs spécifiques et les limites de taille, voir[Restrictions](monetization-functions-limits.md).

## Référence des API
<a name="monetization-functions-managing-api-ref"></a>

Pour gérer les fonctions par programmation, consultez la référence des [AWS Elemental MediaTailor API](https://docs.aws.amazon.com/mediatailor/latest/apireference/).