Schritte zum Aufrufen von Google Cloud Run Functions als SQL-Funktionen
Zeigt die Schritte zum Aufrufen von Google Cloud Run-Funktionen als SQL-Funktionen in Ihrer Datenbank an.
Um Google Cloud Run-Funktionen als SQL-Funktionen aufzurufen, erstellen Sie eine Bibliothek mit SQL-Wrapper-Funktionen, die ihre jeweiligen Cloud-Funktionen referenzieren und aufrufen. Bevor Sie diesen Katalog erstellen, wird hier davon ausgegangen, dass Sie die erforderlichen Cloud-Funktionen erstellt haben, die von diesem Katalog referenziert werden sollen. Weitere Informationen finden Sie unter Cloud-Ausführungsfunktion mit der Google Cloud-Konsole erstellen.
- Um von einer autonomen KI-Datenbankinstanz aus auf Google Cloud Run-Funktionen zuzugreifen, verwenden Sie Ihr Google-Servicekonto. Sie müssen dem Google-Serviceaccount für die Google Cloud Platform-(GCP-)App die Berechtigung
cloudfunctions.functions.listsowie die RollenCloud Functions InvokerundCloud Run Invokererteilen.In den folgenden Themen finden Sie weitere Informationen: - Katalog erstellen. Um einen Katalog für Google Cloud Run-Funktionen mit einem anderen Benutzer als
ADMINzu erstellen, müssen Sie diesem Benutzer Leseberechtigungen für dieCLOUD_INTEGRATIONS-Ansicht erteilen.Ein Katalog ist eine Sammlung von Wrapper-Funktionen, die ihre jeweiligen Cloud-Funktionen mit ihren API-Endpunkten referenzieren und aufrufen.
BEGINDBMS_CLOUD_FUNCTION.CREATE_CATALOG( credential_name => 'GCP$PA', catalog_name => 'GCP_DEMO_CATALOG', service_provider => 'GCP', cloud_params => '{"project_id":"example_XXXXXX"}' ); END; /Der Wert
project_idin dercloud_paramsist die Projekt-ID der Google Cloud Platform (GCP).Dadurch wird der
GCP_DEMO_CATALOG-Katalog erstellt und alle Funktionen der angegebenenproject_idkatalogisiert.Weitere Informationen finden Sie unter Prozedur CREATE_CATALOG. Sie können die Ansichten DBA_CLOUD_FUNCTION_CATALOG View und USER_CLOUD_FUNCTION_CATALOG View abfragen, um die Liste aller Kataloge in Ihrer Datenbank abzurufen.
- Listen Sie die Funktionen in einem Katalog auf.
Im Folgenden finden Sie ein Beispiel für die Auflistung der Google Cloud Run-Funktionen:
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;Weitere Informationen finden Sie unter Prozedur LIST_FUNCTIONS.
- Führen Sie
DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONSaus, um Wrapper-SQL-Funktionen zu erstellen. Mit einer der folgenden Methoden können Sie die Wrapper-SQL-Funktionen im Katalog erstellen, die ihre jeweiligen Cloud-Funktionen aufrufen:-
SYNC_FUNCTIONS: Die
SYNC_FUNCTIONS-Methode zum Erstellen einer Wrapper-SQL-Funktion ist die schnellste und einfachste Methode, die Wrapper-Funktionen im Katalog automatisch mit der vollständigen Liste der Cloud-Funktionen synchronisiert (erstellt oder löscht), die in der Region, dem Compartment und dem Mandanten definiert sind, mit dem der Katalog erstellt wurde. Beispiel:
BEGINDBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS( catalog_name => 'GCP_DEMO_CATALOG' ); END; /Dadurch wird ein PL/SQL-Wrapper erstellt, um dem Katalog neue Funktionen hinzuzufügen und Wrapper für Funktionen zu entfernen, die aus dem Katalog gelöscht wurden.
Führen Sie die folgende Abfrage aus, um die Synchronisierung zu überprüfen.
SELECT object_name FROM sys.all_objects WHERE owner='TEST_USER' AND object_type='FUNCTION';Hinweis
Notieren Sie sich den aktuellen Benutzer, um diesen Befehl auszuführen.Weitere Informationen finden Sie unter Prozedur SYNC_FUNCTIONS.
- Sie können manuell eine
SQL-Funktion in Ihrem Katalog erstellen, die ihre jeweilige Cloud-Funktion mitDBMS_CLOUD.CREATE_FUNCTIONaufruft.
Beispiel für das Erstellen einer Funktion im Katalog
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; /Dadurch wird die Funktion
GCP_TESTFUNCim KatalogGCP_DEMO_CATALOGerstellt.Die Funktion
GCP_TESTFUNCim Katalog ist ein Verweis auf die jeweilige Google Cloud Run-Funktion, deren Projekt-ID vom ParameterFUNCTION_IDreferenziert wird. Wenn Sie die Funktion im Katalog zusammen mit ihren Argumenten aufrufen, wird die entsprechende Google Cloud-Ausführungsfunktion ausgeführt und die von der Funktion zurückgegebene Ausgabe bereitgestellt.Sie können die Ansichten DBA_CLOUD_FUNCTION View und USER_CLOUD_FUNCTION View abfragen, um die Liste aller Funktionen in Ihrer Datenbank abzurufen.
Weitere Informationen finden Sie unter Prozedur CREATE_FUNCTION.
-
- Nachdem die Funktion erstellt wurde, können Sie
DESCRIBEaufrufen und sie aufrufen.DESC GCP_TESTFUNC COLUMN STATUS format a30 COLUMN OUTPUT format a30SELECT GCP_TESTFUNC(NULL) FROM dual;Dadurch wird die Funktion
GCP_TESTFUNCaufgerufen, indem die im Parameterfunction_idangegebene Funktionsreferenz aufgerufen wird. - Sie können eine vorhandene Funktion mit der Prozedur
DROP_FUNCTIONlöschen. Beispiel:EXEC DBMS_CLOUD_FUNCTION.DROP_FUNCTION (CATALOG_NAME => 'GCP_DEMO_CATALOG', FUNCTION_NAME => 'GCP_TESTFUNC');Dadurch wird die Funktion
GCP_TESTFUNCaus dem KatalogGCP_DEMO_CATALOGgelöscht.Weitere Informationen finden Sie unter Prozedur DROP_FUNCTION.
- Sie können einen vorhandenen Katalog mit der Prozedur
DROP_CATALOGlöschen. Beispiel:BEGINDBMS_CLOUD_FUNCTION.DROP_CATALOG( catalog_name => 'GCP_DEMO_CATALOG' ); END; /Dadurch wird
GCP_DEMO_CATALOGaus der Datenbank gelöscht.Weitere Informationen finden Sie unter Prozedur DROP_CATALOG.
Übergeordnetes Thema: Benutzerdefinierte Funktionen aufrufen