Etapes d'appel de fonctions Azure en tant que fonctions SQL
Affiche les étapes permettant d'appeler des fonctions distantes Azure en tant que fonctions SQL dans la base de données à l'aide du déclencheur HTTP.
Pour appeler la fonction Azure en tant que fonctions SQL, créez un catalogue de fonctions wrapper SQL qui référencent et appellent leur fonction cloud respective via leurs adresses d'API. Avant de créer ce catalogue, il est supposé que vous avez créé les fonctions Azure nécessaires à référencer par ce catalogue.
- Pour accéder aux fonctions Azure, vous devez utiliser le principal de service Azure avec la base de données d'IA autonome. Vous devez accorder le rôle Contributeur de site Web au principal de service Azure pour l'application de fonction Azure sous son contrôle d'accès (IAM).Pour plus d'informations, reportez-vous à :
- Création d'un catalogue
Un catalogue est un ensemble de fonctions de wrapper qui référencent et appellent leurs fonctions cloud respectives via leurs adresses d'API.
Exemple permettant de créer un catalogue pour les fonctions Azure.
BEGINDBMS_CLOUD_FUNCTION.CREATE_CATALOG( credential_name => 'AZURE$PA', catalog_name => 'AZURE_DEMO_CATALOG', service_provider => 'AZURE', cloud_params => '{"subscription_id":"XXXXXXXXXXXXXXXXXXXXXXXX_example"}' ); END; /La valeur
SUBSCRIPTION_IDdansCLOUD_PARAMSest la valeur subscription_id de l'application de fonction Azure.Cela crée le catalogue
AZURE_DEMO_CATALOGet catalogue toutes les fonctions de l'élémentSUBSCRIPTION_IDfourni.Pour plus d'informations, reportez-vous à Procédure CREATE_CATALOG. Vous pouvez interroger les vues DBA_CLOUD_FUNCTION_CATALOG View et USER_CLOUD_FUNCTION_CATALOG View pour extraire la liste de tous les catalogues de la base de données.
- Vous pouvez répertorier les fonctions dans un catalogue.
Voici l'exemple pour répertorier les fonctions Azure :
VAR function_list CLOB; BEGINDBMS_CLOUD_FUNCTION.LIST_FUNCTIONS( credential_name => 'AZURE$PA', catalog_name => 'AZURE_DEMO_CATALOG', function_list => :function_list ); END; / SELECT JSON_QUERY (:function_list, '$' RETURNING VARCHAR2(32676) pretty) AS search_results FROM dual;Pour plus d'informations, reportez-vous à Procédure LIST_FUNCTIONS.
- Exécutez
DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONSpour créer des fonctions SQL de wrapper. Vous pouvez utiliser l'une des méthodes suivantes pour créer les fonctions SQL wrapper dans le catalogue, qui appellent leurs fonctions cloud respectives :-
SYNC_FUNCTIONS :
SYNC_FUNCTIONSest la méthode la plus rapide et la plus simple, qui synchronise automatiquement (crée ou supprime) les fonctions de wrapper du catalogue avec la liste complète des fonctions Azure. Par exemple :
BEGINDBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS( catalog_name => 'AZURE_DEMO_CATALOG' ); END; /Cela crée un wrapper PL/SQL pour ajouter de nouvelles fonctions au catalogue et enlever des wrappers pour les fonctions qui ont été supprimées du catalogue.
Remarque
Lorsqu'une fonction Azure est ajoutée, supprimée ou désactivée dans l'application de fonction Azure, vous devez exécuterSYNC_FUNCTIONSpour mettre à jour les wrappers PL/SQL correspondants dans le catalogue.Exécutez la requête suivante pour vérifier la synchronisation.
SELECT object_name FROM sys.all_objects WHERE owner='TEST_USER' AND object_type='FUNCTION';Remarque
Notez l'utilisateur en cours pour exécuter cette commande.Pour plus d'informations, reportez-vous à Procédure SYNC_FUNCTIONS.
- Vous pouvez créer manuellement une fonction
SQLdans votre catalogue qui appelle sa fonction Azure respective à l'aide deAZURE_DEMO_CATALOG.
Exemple permettant de créer une fonction dans le catalogue
AZURE_DEMO_CATALOG.BEGINDBMS_CLOUD_FUNCTION.CREATE_FUNCTION( credential_name => 'AZURE$PA', catalog_name => 'AZURE_DEMO_CATALOG', function_name => 'azure_testfunc', function_id => 'function_id_path', input_args => :function_args ); END; /Remarque
La longueur maximale du nom de fonction est limitée à 100 caractères.La fonction
AZURE_TESTFUNCest ainsi créée dans le catalogueAZURE_DEMO_CATALOG.La fonction
AZURE_TESTFUNCdu catalogue est une référence à la fonction Azure correspondante dont l'abonnement est référencé par le paramètreFUNCTION_ID. Appeler la fonction dans le catalogue avec ses arguments exécute la fonction Azure correspondante et fournit la sortie renvoyée par la fonction.Vous pouvez interroger les vues DBA_CLOUD_FUNCTION View et USER_CLOUD_FUNCTION View pour extraire la liste de toutes les fonctions de la base de données.
Pour plus d'informations, reportez-vous à Procédure CREATE_FUNCTION.
Pour plus d'informations, reportez-vous à Déclencheur HTTP Azure Functions.
-
- Une fois la fonction créée, vous pouvez
DESCRIBEet l'appeler.DESC AZURE_TESTFUNCSELECT AZURE_TESTFUNC(NULL) FROM dual;La fonction
AZURE_TESTFUNCest appelée en appelant la référence de fonction/subscriptions/44496e556-8ssp-4262-b389-0f15f685c879/resources/ADBStest/providers/Microsoft.Web/sites/AZUREADBS/functions/HttpTrigger_exampledans le catalogueAZURE_DEMO_CATALOG. - Vous pouvez supprimer une fonction existante en utilisant la procédure
DROP_FUNCTION. Par exemple :EXEC DBMS_CLOUD_FUNCTION.DROP_FUNCTION (CATALOG_NAME => 'AZURE_DEMO_CATALOG', FUNCTION_NAME => 'AZURE_TESTFUNC');La fonction
AZURE_TESTFUNCest supprimée du catalogueAZURE_DEMO_CATALOG.Pour plus d'informations, reportez-vous à Procédure DROP_FUNCTION.
- Vous pouvez supprimer un catalogue existant en utilisant la procédure
DROP_CATALOG. Par exemple :BEGINDBMS_CLOUD_FUNCTION.DROP_CATALOG( catalog_name => 'AZURE_DEMO_CATALOG' ); END; /Cette opération supprime
AZURE_DEMO_CATALOGde la base de données.Pour plus d'informations, reportez-vous à Procédure DROP_CATALOG.
Rubrique parent : Appel de fonctions définies par l'utilisateur