Schritte zum Aufrufen von Google Cloud Run-Funktionen 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 Library 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 über eine Autonomous Database-Instanz 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.list
sowie die RollenCloud Functions Invoker
undCloud Run Invoker
erteilen.In den folgenden Themen finden Sie weitere Informationen: - Katalog erstellen Um einen Katalog für Google Cloud Run-Funktionen mit einem anderen Benutzer als
ADMIN
zu erstellen, müssen Sie diesem Benutzer Leseberechtigungen für die AnsichtCLOUD_INTEGRATIONS
erteilen.Ein Katalog ist eine Sammlung von Wrapper-Funktionen, die ihre jeweiligen Cloud-Funktionen mit ihren API-Endpunkten referenzieren und aufrufen.
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; /Der Wert
project_id
incloud_params
ist die Projekt-ID der Google Cloud Platform (GCP).Dadurch wird der
GCP_DEMO_CATALOG
-Katalog erstellt und alle Funktionen des angegebenenproject_id
katalogisiert.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; 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;Weitere Informationen finden Sie unter Prozedur LIST_FUNCTIONS.
- Führen Sie
DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS
aus, 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 Methode
SYNC_FUNCTIONS
zum Erstellen der Wrapper-SQL-Funktion ist die schnellste und einfachste Methode, mit der Wrapper-Funktionen im Katalog automatisch mit der vollständigen Liste der Cloud-Funktionen synchronisiert (erstellt oder gelöscht) werden, die in der Region, dem Compartment und dem Mandanten definiert sind, mit denen der Katalog erstellt wurde. Beispiele:
BEGIN
DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS
( catalog_name => 'GCP_DEMO_CATALOG' ); END; /Dadurch wird ein PL/SQL-Wrapper erstellt, mit dem Sie dem Katalog neue Funktionen hinzufügen und Wrapper für Funktionen entfernen können, die aus dem Katalog gelöscht wurden.
Führen Sie die folgende Abfrage aus, um die Synchronisierung zu prü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 eine
SQL
-Funktion in Ihrem Katalog manuell erstellen, die ihre jeweilige Cloud-Funktion mitDBMS_CLOUD.CREATE_FUNCTION
aufruft.
Beispiel zum Erstellen einer Funktion im Katalog
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; /Dadurch wird die Funktion
GCP_TESTFUNC
im KatalogGCP_DEMO_CATALOG
erstellt.Die Funktion
GCP_TESTFUNC
im Katalog ist ein Verweis auf die jeweilige Google Cloud Run-Funktion, deren Projekt-ID vom ParameterFUNCTION_ID
referenziert wird. Wenn Sie die Funktion im Katalog zusammen mit den zugehörigen Argumenten aufrufen, wird die entsprechende Google Cloud Run-Funktion 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 der Datenbank abzurufen.
Weitere Informationen finden Sie unter Prozedur CREATE_FUNCTION.
-
- Nachdem die Funktion erstellt wurde, können Sie
DESCRIBE
aufrufen.DESC GCP_TESTFUNC COLUMN STATUS format a30 COLUMN OUTPUT format a30
SELECT GCP_TESTFUNC(NULL) FROM dual;
Dadurch wird die Funktion
GCP_TESTFUNC
aufgerufen, indem die im Parameterfunction_id
angegebene Funktionsreferenz aufgerufen wird. - Sie können eine vorhandene Funktion mit der Prozedur
DROP_FUNCTION
löschen. Beispiele:EXEC DBMS_CLOUD_FUNCTION.DROP_FUNCTION (CATALOG_NAME => 'GCP_DEMO_CATALOG', FUNCTION_NAME => 'GCP_TESTFUNC');
Dadurch wird die Funktion
GCP_TESTFUNC
aus dem KatalogGCP_DEMO_CATALOG
gelöscht.Weitere Informationen finden Sie unter Prozedur DROP_FUNCTION.
- Sie können einen vorhandenen Katalog mit der Prozedur
DROP_CATALOG
löschen. Beispiele:BEGIN
DBMS_CLOUD_FUNCTION.DROP_CATALOG
( catalog_name => 'GCP_DEMO_CATALOG' ); END; /Dadurch wird
GCP_DEMO_CATALOG
aus der Datenbank gelöscht.Weitere Informationen finden Sie unter Prozedur DROP_CATALOG.
Übergeordnetes Thema: Benutzerdefinierte Funktionen aufrufen