Passi per richiamare le funzioni di esecuzione di Google Cloud come funzioni SQL
Mostra i passi per richiamare le funzioni di esecuzione di Google Cloud come funzioni SQL nel database.
Per richiamare le funzioni di esecuzione di Google Cloud come funzioni SQL, si crea una libreria di funzioni wrapper SQL che fanno riferimento e richiamano le rispettive funzioni cloud. Prima di creare questo catalogo, si presume che siano state create le funzioni cloud necessarie a cui questo catalogo fa riferimento. Per ulteriori informazioni, vedere Creare una funzione di esecuzione cloud utilizzando la console di Google Cloud.
- Per accedere alle funzioni di esecuzione di Google Cloud da un'istanza di Autonomous Database, utilizzare l'account del servizio Google. È necessario concedere l'autorizzazione
cloudfunctions.functions.list
e i ruoliCloud Functions Invoker
eCloud Run Invoker
all'account del servizio Google per l'app Google Cloud Platform (GCP).Per ulteriori informazioni, vedere gli argomenti riportati di seguito. - Creare un listino. Per creare un catalogo per le funzioni di esecuzione di Google Cloud con un utente diverso da
ADMIN
, è necessario concedere privilegi di lettura sulla vistaCLOUD_INTEGRATIONS
a tale utente.Un catalogo è una raccolta di funzioni wrapper che fanno riferimento e richiamano le rispettive funzioni cloud utilizzando i propri endpoint API.
BEGIN
DBMS_CLOUD_FUNCTION.CREATE_CATALOG
( credential_name => 'GCP$PA', catalog_name => 'GCP_DEMO_CATALOG', service_provider => 'GCP', cloud_params => '{"project_id":"example_XXXXXX"}' ); END; /Il valore
project_id
nel filecloud_params
è l'ID del progetto della Google Cloud Platform (GCP).Questo crea il catalogo
GCP_DEMO_CATALOG
e cataloga tutte le funzioni delproject_id
fornito.Per ulteriori informazioni, vedere CREATE_CATALOG Procedure. È possibile eseguire una query sulle viste DBA_CLOUD_FUNCTION_CATALOG View e USER_CLOUD_FUNCTION_CATALOG View per recuperare la lista di tutti i cataloghi del database.
- Elenca le funzioni in un catalogo.
Di seguito è riportato l'esempio per elencare le funzioni di esecuzione di Google Cloud:
VAR function_list CLOB; BEGIN
DBMS_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;Per ulteriori informazioni, vedere LIST_FUNCTIONS Procedure.
- Eseguire
DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS
per creare funzioni SQL wrapper. È possibile utilizzare uno dei metodi seguenti per creare le funzioni SQL wrapper nel catalogo, che richiamano le rispettive funzioni cloud:-
SYNC_FUNCTIONS: il metodo
SYNC_FUNCTIONS
per creare la funzione SQL wrapper è il metodo più rapido e semplice, che sincronizza automaticamente le funzioni wrapper (crea o elimina) nel catalogo con la lista completa delle funzioni cloud definite nell'area, nel compartimento e nella tenancy con cui è stato creato il catalogo. Ad esempio:
BEGIN
DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS
( catalog_name => 'GCP_DEMO_CATALOG' ); END; /In questo modo viene creato un wrapper PL/SQL per l'aggiunta di nuove funzioni al catalogo e la rimozione di wrapper per le funzioni eliminate dal catalogo.
Eseguire la seguente query per verificare la sincronizzazione.
SELECT object_name FROM sys.all_objects WHERE owner='TEST_USER' AND object_type='FUNCTION';
Nota
Per eseguire questo comando, tenere presente l'utente corrente.Per ulteriori informazioni, vedere SYNC_FUNCTIONS Procedure.
- È possibile creare manualmente una funzione
SQL
nel catalogo che richiama la rispettiva funzione cloud utilizzandoDBMS_CLOUD.CREATE_FUNCTION
.
Esempio di creazione di una funzione nel catalogo
GCP_DEMO_CATALOG
.EXEC :function_args := TO_CLOB('{"name": "VARCHAR2"}');
BEGIN
DBMS_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; /In questo modo viene creata la funzione
GCP_TESTFUNC
nel catalogoGCP_DEMO_CATALOG
.La funzione
GCP_TESTFUNC
nel catalogo è un riferimento alla rispettiva funzione di esecuzione di Google Cloud il cui ID progetto viene utilizzato come riferimento dal parametroFUNCTION_ID
. Il richiamo della funzione nel catalogo insieme ai relativi argomenti esegue la funzione di esecuzione di Google Cloud corrispondente e fornisce l'output restituito dalla funzione.È possibile eseguire una query sulle viste DBA_CLOUD_FUNCTION View e USER_CLOUD_FUNCTION View per recuperare la lista di tutte le funzioni del database.
Per ulteriori informazioni, vedere CREATE_FUNCTION Procedure.
-
- Dopo aver creato la funzione, è possibile
DESCRIBE
e richiamarla.DESC GCP_TESTFUNC COLUMN STATUS format a30 COLUMN OUTPUT format a30
SELECT GCP_TESTFUNC(NULL) FROM dual;
Viene richiamata la funzione
GCP_TESTFUNC
richiamando il riferimento alla funzione specificato nel parametrofunction_id
. - È possibile eliminare una funzione esistente utilizzando la procedura
DROP_FUNCTION
. Ad esempio:EXEC DBMS_CLOUD_FUNCTION.DROP_FUNCTION (CATALOG_NAME => 'GCP_DEMO_CATALOG', FUNCTION_NAME => 'GCP_TESTFUNC');
Questa operazione elimina la funzione
GCP_TESTFUNC
dal catalogoGCP_DEMO_CATALOG
.Per ulteriori informazioni, vedere DROP_FUNCTION Procedure.
- È possibile eliminare un catalogo esistente utilizzando la procedura
DROP_CATALOG
. Ad esempio:BEGIN
DBMS_CLOUD_FUNCTION.DROP_CATALOG
( catalog_name => 'GCP_DEMO_CATALOG' ); END; /In questo modo
GCP_DEMO_CATALOG
viene eliminato dal database.Per ulteriori informazioni, vedere DROP_CATALOG Procedure.
Argomento padre: Richiama funzioni definite dall'utente