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 Autonomous Database-Instanz aus auf Google Cloud Run-Funktionen zuzugreifen, verwenden Sie Ihren Google-Serviceaccount. 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 dieCLOUD_INTEGRATIONS
-Ansicht 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
in dercloud_params
ist die Projekt-ID der Google Cloud Platform (GCP).Dadurch wird der
GCP_DEMO_CATALOG
-Katalog erstellt und alle Funktionen der 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
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:
BEGIN
DBMS_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_FUNCTION
aufruft.
Beispiel für das 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 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
DESCRIBE
aufrufen und sie 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. Beispiel: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. Beispiel: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