Étapes d'appel des fonctions d'exécution de Google Cloud en tant que fonctions SQL
Affiche les étapes d'appel des fonctions Google Cloud Run en tant que fonctions SQL dans votre base de données.
Pour appeler les fonctions Google Cloud Run en tant que fonctions SQL, vous créez une bibliothèque de fonctions de wrapper SQL qui référencent et appellent leurs fonctions cloud respectives. Avant de créer ce catalogue, il est supposé que vous avez créé les fonctions en nuage nécessaires pour être référencées par ce catalogue. Pour plus d'informations, voir Créer une fonction d'exécution en nuage à l'aide de la console Google Cloud.
- Pour accéder aux fonctions Google Cloud Run à partir d'une instance Autonomous AI Database, utilisez votre compte de service Google. Vous devez accorder l'autorisation
cloudfunctions.functions.listet les rôlesCloud Functions InvokeretCloud Run Invokerau compte de service Google pour l'application Google Cloud Platform (GCP). - création d'un catalogue; Pour créer un catalogue pour les fonctions d'exécution Google Cloud avec un utilisateur autre que
ADMIN, vous devez accorder à cet utilisateur des privilèges de lecture sur la vueCLOUD_INTEGRATIONS.Un catalogue est une collection de fonctions d'encapsuleur qui référencent et appellent leurs fonctions en nuage respectives à l'aide de leurs points d'extrémité d'API.
BEGINDBMS_CLOUD_FUNCTION.CREATE_CATALOG( credential_name => 'GCP$PA', catalog_name => 'GCP_DEMO_CATALOG', service_provider => 'GCP', cloud_params => '{"project_id":"example_XXXXXX"}' ); END; /La valeur
project_iddanscloud_paramsest l'ID projet de la plate-forme Google Cloud (GCP).Cela crée le catalogue
GCP_DEMO_CATALOGet catalogue toutes les fonctions deproject_idfournies.Pour plus d'informations, voir ProcédureCREATE_CATALOG. Vous pouvez interroger les vues Vue DBA_CLOUD_FUNCTION_CATALOG et Vue USER_CLOUD_FUNCTION_CATALOG pour extraire la liste de tous les catalogues de votre base de données.
- Répertoriez les fonctions d'un catalogue.
Voici l'exemple pour lister les fonctions Google Cloud Run :
VAR function_list CLOB; BEGINDBMS_CLOUD_FUNCTION.LIST_FUNCTIONS( credential_name => 'GCP$PA', catalog_name => 'GCP_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, voir ProcédureLIST_FUNCTIONS.
- Exécutez
DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONSpour créer des fonctions SQL d'encapsuleur. Vous pouvez utiliser l'une des méthodes suivantes pour créer les fonctions SQL du wrapper dans le catalogue, qui appellent leurs fonctions cloud respectives :-
SYNC_FUNCTIONS : La méthode
SYNC_FUNCTIONSpour créer une fonction SQL d'encapsulation est la méthode la plus rapide et la plus simple, qui synchronise automatiquement (crée ou supprime) les fonctions d'encapsulation dans le catalogue avec la liste complète des fonctions en nuage définies dans la région, le compartiment et la location avec lesquels le catalogue a été créé. Exemple :
BEGINDBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS( catalog_name => 'GCP_DEMO_CATALOG' ); END; /Cela crée un wrapper PL/SQL permettant d'ajouter de nouvelles fonctions au catalogue et de supprimer des wrappers pour les fonctions qui ont été supprimées du catalogue.
Exécutez l'interrogation suivante pour vérifier la synchronisation.
SELECT object_name FROM sys.all_objects WHERE owner='TEST_USER' AND object_type='FUNCTION';Note
Conservez une note de l'utilisateur courant pour exécuter cette commande.Pour plus d'informations, voir ProcédureSYNC_FUNCTIONS.
- Vous pouvez créer manuellement une fonction
SQLdans votre catalogue qui appelle sa fonction en nuage respective à l'aide deDBMS_CLOUD.CREATE_FUNCTION.
Exemple pour créer une fonction dans le catalogue
GCP_DEMO_CATALOG.EXEC :function_args := TO_CLOB('{"name": "VARCHAR2"}');BEGINDBMS_CLOUD_FUNCTION.CREATE_FUNCTION( credential_name => 'GCP$PA', catalog_name => 'GCP_DEMO_CATALOG', function_name => 'gcp_testfunc', function_id => 'function_id_path', input_args => :function_args ); END; /Cela crée la fonction
GCP_TESTFUNCdans le catalogueGCP_DEMO_CATALOG.La fonction
GCP_TESTFUNCdans le catalogue est une référence à la fonction Google Cloud Run respective dont l'ID projet est référencé par le paramètreFUNCTION_ID. L'appel de la fonction dans le catalogue avec ses arguments exécute la fonction Google Cloud Run correspondante et fournit la sortie retournée par la fonction.Vous pouvez interroger les vues Vue DBA_CLOUD_FUNCTION et Vue USER_CLOUD_FUNCTION pour extraire la liste de toutes les fonctions de votre base de données.
Pour plus d'informations, voir ProcédureCREATE_FUNCTION.
-
- Une fois la fonction créée, vous pouvez
DESCRIBEet l'appeler.DESC GCP_TESTFUNC COLUMN STATUS format a30 COLUMN OUTPUT format a30SELECT GCP_TESTFUNC(NULL) FROM dual;Cela appelle la fonction
GCP_TESTFUNCen appelant la référence de fonction spécifiée dans le paramètrefunction_id. - Vous pouvez supprimer une fonction existante à l'aide de la procédure
DROP_FUNCTION. Exemple :EXEC DBMS_CLOUD_FUNCTION.DROP_FUNCTION (CATALOG_NAME => 'GCP_DEMO_CATALOG', FUNCTION_NAME => 'GCP_TESTFUNC');Cette action supprime la fonction
GCP_TESTFUNCdu catalogueGCP_DEMO_CATALOG.Pour plus d'informations, voir ProcédureDROP_FUNCTION.
- Vous pouvez supprimer un catalogue existant à l'aide de la procédure
DROP_CATALOG. Exemple :BEGINDBMS_CLOUD_FUNCTION.DROP_CATALOG( catalog_name => 'GCP_DEMO_CATALOG' ); END; /Cette action supprime
GCP_DEMO_CATALOGde la base de données.Pour plus d'informations, voir ProcédureDROP_CATALOG.
Rubrique parent : Appeler des fonctions définies par l'utilisateur