Pasos para llamar a las funciones de ejecución de Google Cloud como funciones SQL
Muestra los pasos para llamar a las funciones de Google Cloud Run como funciones SQL en la base de datos.
Para llamar a las funciones de Google Cloud Run como funciones SQL, cree una biblioteca de funciones de envoltorio SQL que hagan referencia a sus respectivas funciones en la nube y las llamen. Antes de crear este catálogo, se supone que ha creado las funciones en la nube necesarias a las que puede hacer referencia este catálogo. Consulte Creación de una función de ejecución en la nube mediante la consola de Google Cloud para obtener más información.
- Para acceder a las funciones de Google Cloud Run desde una instancia de Autonomous AI Database, utilice su cuenta de servicio de Google. Debe otorgar el permiso
cloudfunctions.functions.listy los rolesCloud Functions InvokeryCloud Run Invokera la cuenta de servicio de Google para la aplicación Google Cloud Platform (GCP).Puede obtener más información en los siguientes enlaces: - Crear un catálogo. Para crear un catálogo para las funciones de Google Cloud Run con un usuario que no sea
ADMIN, debe otorgar privilegios de lectura en la vistaCLOUD_INTEGRATIONSa ese usuario.Un catálogo es una recopilación de funciones de envoltorio que hacen referencia a sus respectivas funciones en la nube y las llaman mediante sus puntos finales de 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; /El valor
project_iddecloud_paramses el ID de proyecto de Google Cloud Platform (GCP).Esto crea el catálogo
GCP_DEMO_CATALOGy cataloga todas las funciones delproject_idproporcionado.Consulte CREATE_CATALOG Procedure para obtener más información. Puede consultar las vistas DBA_CLOUD_FUNCTION_CATALOG View y USER_CLOUD_FUNCTION_CATALOG View para recuperar la lista de todos los catálogos de la base de datos.
- Mostrar las funciones de un catálogo.
A continuación, se muestra el ejemplo para enumerar las funciones de 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;Consulte LIST_FUNCTIONS Procedure para obtener más información.
- Ejecute
DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONSpara crear funciones SQL de envoltorio. Puede utilizar uno de los siguientes métodos para crear las funciones SQL de encapsulador en el catálogo, que llaman a sus respectivas funciones en la nube:-
SYNC_FUNCTIONS: el método
SYNC_FUNCTIONSpara crear la función SQL de encapsulador es el método más rápido y sencillo, que sincroniza automáticamente (crea o suprime) las funciones de encapsulador en el catálogo con la lista completa de funciones en la nube definidas en la región, el compartimento y el arrendamiento con los que se ha creado el catálogo. Por ejemplo:
BEGINDBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS( catalog_name => 'GCP_DEMO_CATALOG' ); END; /Esto crea un envoltorio PL/SQL para agregar nuevas funciones al catálogo y eliminar envoltorios para las funciones que se han suprimido del catálogo.
Ejecute la siguiente consulta para verificar la sincronización.
SELECT object_name FROM sys.all_objects WHERE owner='TEST_USER' AND object_type='FUNCTION';Nota
Tenga en cuenta el usuario actual para ejecutar este comando.Consulte SYNC_FUNCTIONS Procedure para obtener más información.
- Puede crear manualmente una función
SQLen el catálogo que llame a su función en la nube respectiva medianteDBMS_CLOUD.CREATE_FUNCTION.
Ejemplo para crear una función en el catálogo
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; /Esto crea la función
GCP_TESTFUNCen el catálogoGCP_DEMO_CATALOG.La función
GCP_TESTFUNCdel catálogo es una referencia a la función de ejecución de Google Cloud correspondiente a la que hace referencia el parámetroFUNCTION_IDal ID de proyecto. La llamada a la función en el catálogo junto con sus argumentos ejecuta la función correspondiente de Google Cloud Run y proporciona la salida devuelta por la función.Puede consultar las vistas DBA_CLOUD_FUNCTION View y USER_CLOUD_FUNCTION View para recuperar la lista de todas las funciones de la base de datos.
Consulte CREATE_FUNCTION Procedure para obtener más información.
-
- Después de crear la función, puede
DESCRIBEy llamarla.DESC GCP_TESTFUNC COLUMN STATUS format a30 COLUMN OUTPUT format a30SELECT GCP_TESTFUNC(NULL) FROM dual;Esto llama a la función
GCP_TESTFUNCllamando a la referencia de función especificada en el parámetrofunction_id. - Puede borrar una función existente mediante el procedimiento
DROP_FUNCTION. Por ejemplo:EXEC DBMS_CLOUD_FUNCTION.DROP_FUNCTION (CATALOG_NAME => 'GCP_DEMO_CATALOG', FUNCTION_NAME => 'GCP_TESTFUNC');Esto borra la función
GCP_TESTFUNCdel catálogoGCP_DEMO_CATALOG.Consulte DROP_FUNCTION Procedure para obtener más información.
- Puede borrar un catálogo existente mediante el procedimiento
DROP_CATALOG. Por ejemplo:BEGINDBMS_CLOUD_FUNCTION.DROP_CATALOG( catalog_name => 'GCP_DEMO_CATALOG' ); END; /Esto borra
GCP_DEMO_CATALOGde la base de datos.Consulte DROP_CATALOG Procedure para obtener más información.
Tema principal: Llamada a funciones definidas por el usuario