Créez une fonction Aviator dans DataService Studio pour traiter les paramètres de requête d'une API ou les données de réponse en tant que filtre.
Prérequis
Vous avez créé un workflow. Pour plus d'informations, consultez la rubrique Créer et gérer un workflow.
-
Vous avez acheté un groupe de ressources exclusif pour DataService Studio . Pour plus d'informations, consultez la rubrique Utiliser un groupe de ressources exclusif pour DataService Studio.
RemarqueLes fonctions Aviator doivent s'exécuter sur un groupe de ressources exclusif pour DataService Studio.
Contexte
Dans DataService Studio, vous pouvez créer, tester et déployer des fonctions. Une fois déployée, vous pouvez associer une fonction à une API en tant que filtre pour traiter les paramètres de requête ou les données de réponse, ce qui permet de mettre en œuvre une logique de requête complexe adaptée à divers scénarios métier. Pour des exemples de code, consultez la rubrique Bonnes pratiques : Utiliser une fonction Aviator comme filtre.
Limites
Les fonctions Aviator doivent s'exécuter sur un groupe de ressources exclusif pour DataService Studio.
Lorsque vous utilisez une fonction comme filtre d'API, le préfiltre et le postfiltre doivent être du même type. Sélectionnez soit Aviator, soit Python pour les deux.
Remarques sur l'utilisation
Pour des raisons de sécurité et de performances, les fonctions Aviator doivent s'exécuter sur un groupe de ressources exclusif pour DataService Studio. Par conséquent :
Lorsque vous modifiez ou testez une fonction, vous devez l'associer à un groupe de ressources exclusif pour DataService Studio. Pour plus d'informations, consultez la rubrique Gérer une fonction.
Lorsque vous activez un filtre et l'associez à la fonction cible lors du développement de l'API, vous devez associer l'API à un groupe de ressources exclusif pour DataService Studio. Pour plus d'informations, consultez la rubrique Générer une API à partir d'une source de données (API Gateway).
Structure de la fonction
Les fonctions Aviator utilisent le modèle intégré suivant. Pour plus de détails sur la syntaxe, consultez la page Syntaxe des fonctions Aviator.
## --- AviatorScript ---
## $0: the default name of the input param.
## Expressions must be separated by the semicolon ";".
## Example 1:
## $0.a: Get the attribute "a" from the input param "$0".
## $0.b[index]: Get the element at the specified index from the array "b" in the input param "$0". The index cannot be an expression or a variable.
## Example 2:
## Input: {"keyA":[1,2],"keyB":"value"}
## Function: $0.keyA[0]=3; $0.keyB="new_value"; return $0;
## Output: {"keyA":[3,2],"keyB":"new_value"}
return $0;
Modifiez la fonction en vous basant sur ce modèle.
Le nom par défaut du paramètre d'entrée d'une fonction Aviator est
$0et il ne peut pas être modifié. Vous pouvez utiliser$0pour obtenir l'intégralité de l'entrée de la fonction.Dans DataService Studio, les fonctions servent de filtres d'API pour traiter les paramètres de requête et les données de réponse. L'entrée de la fonction, représentée par
$0, est donc un objet JSON. Les paramètres de requête sont transmis sous forme de structure JSON plate (profondeur 1) et les données de réponse sous forme de structure JSON imbriquée (profondeur N).Lorsqu'une fonction est utilisée comme préfiltre d'API, le système convertit les paramètres de requête de l'API ou la sortie d'une fonction précédente d'une
key-value mapen un objet JSON et le transmet au paramètre$0. La valeur de chaque clé dans l'objet JSON doit être une chaîne.Lorsque la fonction est utilisée comme préfiltre d'API, sa sortie doit être une
key-value map. Cette sortie sert de paramètres d'entrée pour l'exécution de l'instruction SQL. Par conséquent, seule unekey-value mapplate avec une profondeur de un est prise en charge.
Accéder à DataService Studio
Connectez-vous à la console DataWorks. Dans la région cible, cliquez sur dans le volet de navigation de gauche. Sélectionnez un espace de travail dans la liste déroulante et cliquez sur Go to DataService Studio.
Créer une fonction
-
Sur la page Service Development, placez le curseur sur l'icône
et cliquez sur .Vous pouvez également rechercher le workflow cible, cliquer avec le bouton droit sur Function et choisir .
-
Dans la boîte de dialogue Create Aviator Function, configurez les paramètres.
Paramètre
Description
Function Name
Un nom unique pour la fonction, d'une longueur maximale de 256 caractères.
Function Template
Seul AviatorScript Standard v1 est pris en charge.
Function Description
Une brève description de la fonction, d'une longueur maximale de 512 caractères.
Location
Le répertoire de destination de la fonction.
RemarqueSélectionnez un workflow spécifique, un dossier ou une catégorie de fonction. Si aucun workflow n'existe, créez-en un d'abord.
Cliquez sur Determine.
Dans la zone Edit Code, saisissez le code de la fonction.
-
Configurez le groupe de ressources.
-
Dans le volet droit de la page d'édition de la fonction, cliquez sur Resource Group for DataService Studio. Dans la section Resource Group Type, configurez le type de groupe de ressources pour les appels d'API.
Vous ne pouvez sélectionner qu'un groupe de ressources exclusif pour DataService Studio.
RemarqueSi vous ne pouvez pas sélectionner le nom du groupe de ressources cible dans la liste, accédez à la console DataWorks et liez le groupe de ressources à votre espace de travail en utilisant Modify Workspace Ownership. Vous pouvez également cliquer sur Purchase Exclusive Resource Group for DataService Studio pour en acheter un nouveau. Pour plus d'informations, consultez la rubrique Utiliser un groupe de ressources exclusif pour DataService Studio.
-
Dans la section Environment Configuration, définissez les paramètres Memory et Timeout.
Le délai d'expiration recommandé pour la fonction est de 100 ms ou moins pour un groupe de ressources exclusif pour DataService Studio.
-
Cliquez sur l'icône
dans la barre d'outils pour enregistrer la fonction.
Après avoir créé la fonction, testez-la et déployez-la pour l'utiliser comme préfiltre ou postfiltre d'API.
Étapes suivantes
Après avoir créé la fonction, vous pouvez la tester et la déployer. Pour plus d'informations, consultez les rubriques Tester, déployer et utiliser une fonction et Déployer une fonction.
Une fois la fonction déployée, vous pouvez l'associer à une API et l'utiliser comme préfiltre ou postfiltre pour traiter les paramètres de requête et les données de réponse. Pour plus d'informations, consultez la rubrique Utiliser une fonction comme filtre d'API.